Changeset 144 for liacs/SCA2010/nQueens


Ignore:
Timestamp:
Jul 1, 2010, 8:23:16 PM (14 years ago)
Author:
Rick van der Zwet
Message:

Spelling fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • liacs/SCA2010/nQueens/report.tex

    r143 r144  
    1818\floatname{algoritm}{Algoritme}
    1919
    20 \title{\emph{n-Queens} minimale dominatie verzamelingen \\
     20\title{\emph{n-Queens} minimale dominantie verzamelingen \\
    2121\large{Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik}}
    2222\author{Rick van der Zwet\\
     
    4242  \label{fig:patroon}
    4343\end{figure}
    44 Vanwege het het feit dat \emph{n-Queens} een algemeen geaccepteerde termiologie
     44Vanwege het het feit dat \emph{n-Queens} een algemeen geaccepteerde terminologie
    4545is, voor het plaatsen van $n$ koningen op een $n*n$ schaakbord zodanig dat de
    4646koningen elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald
    47 worden. Verder zal in de tekst op diverse plekken de orginele engelse bewoordinging
    48 staan om zo terugzoeken en refereren in het orginele paper~\cite{CDGPU2006}
     47worden. Verder zal in de tekst op diverse plekken de originele Engelse bewoording
     48staan om zo terugzoeken en refereren in het originele paper~\cite{CDGPU2006}
    4949makkelijker te maken.
    5050
    5151
    52 \section{Minimale dominatie verzameling}
    53 De minimale dominatie verzameling ({\emph{Minimum domination set}}) is
    54 een setup waarbij zo weinig mogelijk koninginnen wordt gembruikt om elk vakje
     52\section{Minimale dominantie verzameling}
     53De minimale dominantie verzameling ({\emph{Minimum domination set}}) is
     54een opstelling waarbij zo weinig mogelijk koninginnen wordt gebruikt om elk vakje
    5555van het schaakbord door ten minste 1 koningin geslagen kan worden of dat er een
    5656koningin op staat. Omdat een koningin een karakteristiek patroon kan staan (zie
     
    6161\label{eq:ondergrens}
    6262\end{equation}
    63 Als het een 'gewone' dominatie verzameling is dan hoeft het aantal koninginnen
    64 niet per-se minimaal zijn.
     63Als het een 'gewone' dominantie verzameling is dan hoeft het aantal koninginnen
     64niet perse minimaal zijn.
    6565
    6666
     
    6969  \centering
    7070  \includegraphics[width=0.4\textwidth]{pasted1.png}
    71   \caption{\emph{GPU} werking. De verschillende \emph{GPU} processorblokken
     71  \caption{\emph{GPU} werking. De verschillende \emph{GPU} processor-blokken
    7272worden \emph{kernels} genoemd. De data wordt getransporteerd door verschillende
    73 datakanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke
     73data-kanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke
    7474intern als $n * m$ array gezien kan worden. Een \emph{kernel} kan toegepast
    7575worden om een (deel van de) \emph{framebuffer}.}
     
    7979\emph{GPU}) heeft speciale electronica om ervoor te zorgen dat deze snel de
    8080\emph{RGB} waardes van alle beeldpunten kan berekenen in complexe beeldsystemen
    81 met bijvoorbeeld ingewikkende (lees: tijdrovende) berekeningen voor schaduw,
    82 reflextie en intensiteit. Om deze grote hoeveelheid gegevens te verwerken maakt
    83 de \emph{GPU} gebruik een grote hoeveelheid parralelle processoren, welke alle
     81met bijvoorbeeld ingewikkelde (lees: tijdrovende) berekeningen voor schaduw,
     82reflectie en intensiteit. Om deze grote hoeveelheid gegevens te verwerken maakt
     83de \emph{GPU} gebruik een grote hoeveelheid parallelle processoren, welke alle
    8484individueel een deel van de berekeningen op zich nemen.
    8585
    86 Recente (electronica) onwikkelingen zoals \emph{CUDA}\footnote{\url{http://en.wikipedia.org/wiki/CUDA}} en (meer generieke implementaties)
     86Recente (elektronica) ontwikkelingen zoals \emph{CUDA}\footnote{\url{http://en.wikipedia.org/wiki/CUDA}} en (meer generieke implementaties)
    8787\emph{OpenCL}\footnote{\url{http://en.wikipedia.org/wiki/OpenCL}} hebben ertoe
    8888geleid dat de GPU ook door de geprogrammeerd kan worden om specifieke
     
    9292(dus) zeer kleine buffers en instructie set heeft. Verder is het ook cruciaal
    9393te weten dat de \emph{GPU} \textit{niet} direct gebruik gebruik kan maken van
    94 het hoofdgeheugen van de \emph{CPU}, maak dat de invoer en uitvoer altijd eerst
     94het hoofd-geheugen van de \emph{CPU}, maak dat de invoer en uitvoer altijd eerst
    9595naar/van de \emph{GPU} verplaatst zal moeten worden.
    9696
    9797\section{Aanpak}
    98 Het zoeken van geldige minimale dominatie verzamelingen is een stevige klus,
     98Het zoeken van geldige minimale dominantie verzamelingen is een stevige klus,
    9999welke we (in het optimale geval) $n$ koninginnen hebben die we op een $n * n$
    100100schaakbord kunnen plaatsen. Dat levert $(n * n)! - ((n * n)-n)!$ mogelijkheden op.
    101101De \emph{GPU} zal gebruikt worden om oplossingen sneller te controleren en zal
    102 niet gebruikt worden om effientere oplossingen te vinden. De kracht zit hem in
     102niet gebruikt worden om effici"{e}ntie oplossingen te vinden. De kracht zit hem in
    103103het feit dat meer oplossingen getest kunnen worden en dus potentieel betere
    104104oplossingen tussen kunnen zitten, welke ook te zien in in
    105 algoritme~\ref{alg:overzicht}. De genereerde potentieele oplossingen die aan de
     105algoritme~\ref{alg:overzicht}. De genereerde potenti"{e}le oplossingen die aan de
    106106\emph{GPU} ter controle aangeboden worden respecteren de boven- en ondergrens.
    107107
     
    11011001: klaar=nee
    11111102: doe
    112 03: ..bereken potentieel minimale dominatie verzamelingen
     11203: ..bereken potentieel minimale dominantie verzamelingen
    11311304: ..plaats in framebuffer
    11411405: ..als (alle pixels zijn gemarkeerd) dan
     
    11611608: totdat (klaar=ja)
    117117\end{verbatim}
    118 \caption{evalueren minimale dominatie set}
     118\caption{evalueren minimale dominantie set}
    119119\label{alg:overzicht}
    120120\end{algoritm}
     
    130130eigenschap waar een \emph{GPU} in uitblinkt; het '\emph{stempelen}' van objecten in
    131131een raster (welke in traditionele beeldbewerking gebruikt wordt om texturen te
    132 maken). Elk schaakstuk heeft zijn eigen stempelpatroon zoals te zien in
     132maken). Elk schaakstuk heeft zijn eigen stempel-patroon zoals te zien in
    133133figuur~\ref{fig:stempels}. Hierbij moet opgemerkt worden dat de stempels
    134134allemaal op hun eigen manier schalen.
     
    138138    \includegraphics[width=0.4\textwidth]{pasted5.pdf}
    139139  \end{center}
    140   \caption{Door slim te coderen kunnen meerdere potentiele oplossingen tegelijk
     140  \caption{Door slim te coderen kunnen meerdere potenti"{e}le oplossingen tegelijk
    141141bekeken worden. Hier wordt gebruik gemaakt van (a) het feit dat de ruimte groter
    142142is dan het 'schaakbord' welke bekeken wordt en (b) een pixel gecodeerd is uit
    143 vier onafhankele kleuren}
     143vier onafhankelijke kleuren}
    144144  \label{fig:raster}
    145145\end{figure}
     
    147147gemaakt wordt, namelijk kleur en het verschil in grootte van het bord en de
    148148geaccepteerde invoer. Door slim te combineren ---zie figuur~\ref{fig:raster}---
    149 kan het aantal potentiele oplossingen die getest kan worden gemaximaliseerd
     149kan het aantal potenti"{e}le oplossingen die getest kan worden gemaximaliseerd
    150150worden.
    151151
    152 De individule \emph{kernels} volgen het algoritme~\ref{alg:kernel}, de test of
     152De individuele \emph{kernels} volgen het algoritme~\ref{alg:kernel}, de test of
    153153alle punten gemarkeerd zijn lijkt om het eerste gezicht een lus en test over
    154154alle beeldpunten, echter de \emph{GPU} heeft specifieke instructies om dit
    155 effienter uit te voeren.
     155effici"{e}ntie uit te voeren.
    156156Voor het plaatsen van de stempels moet er gegaan worden voor de grafische
    157157equivalent van een \texttt{OF} operatie. Als een \texttt{INVERSE} operatie gebruikt zou
     
    16616604: ..oplossing=ja
    167167\end{verbatim}
    168 \caption{evalueren minimale dominatie set door individuele kernel}
     168\caption{evalueren minimale dominantie set door individuele kernel}
    169169\label{alg:kernel}
    170170\end{algoritm}
     
    175175  \includegraphics[width=0.4\textwidth]{pasted6.pdf}
    176176  \caption{
    177   Uitvoer tijden (logaritmische schaal) van de \emph{CPU} en \emph{GPU} gebaseerde minimale dominatie implementaties welke $y(Q_{n})$ uitrekenen. Hoe groter $n$ wordt, de beter de \emph{GPU} gaan presteren boven de \emph{CPU}}
     177  Uitvoer tijden (logaritmische schaal) van de \emph{CPU} en \emph{GPU} gebaseerde minimale dominantie implementaties welke $y(Q_{n})$ uitrekenen. Hoe groter $n$ wordt, de beter de \emph{GPU} gaan presteren boven de \emph{CPU}}
    178178  \label{fig:uitvoertijd}
    179179\end{figure}
    180 Door het toepassen van de \emph{GPU} in het \emph{n-Queens} probeem kunnen
    181 winsten geboekt worden zoals te zien in figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen experiment niet opnieuw uitgevoerd}.
    182 Het toepassen van \emph{GPU} dominatie textuur technieken technieken lijkt voor dit
     180Door het toepassen van de \emph{GPU} in het \emph{n-Queens} probleem kunnen
     181winsten geboekt worden zoals te zien in figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}.
     182Het toepassen van \emph{GPU} dominantie textuur technieken technieken lijkt voor dit
    183183specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld en
    184184de \emph{GPU} wereld. De stempels bieden tevens meer vrijheden om alternatieve
     
    186186\subsection{Verder werk}
    187187Er zal gekeken worden of de generatie van nieuwe oplossingen ook op de
    188 \emph{GPU} gedaan kan worden om zo het probeem van de langzame context
     188\emph{GPU} gedaan kan worden om zo het probleem van de langzame context
    189189wisselingen op te lossen.
    190190Verder zal er gekeken worden of de codering van de borden op nog een slimmere
    191 manier aangepakt kan worden, in plaats van de kleur in 4 basiskleuren uit te
     191manier aangepakt kan worden, in plaats van de kleur in 4 basis-kleuren uit te
    192192splitsen zouden ook de volledige 32 bits (elke kleur is 8 bit) kunnen worden om
    193193nog meer(combinaties) van oplossingen te coderen.
     
    197197grafieken. Beiden lijken erg dicht bij elkaar te blijven en ik zie niet waarom
    198198dit plots veel beter zou worden bij grotere $n$ waarden.
    199 De 'tegelmethode' van figuur~\ref{fig:raster} lijkt in theorie leuk, maar als
     199De 'tegel-methode' van figuur~\ref{fig:raster} lijkt in theorie leuk, maar als
    200200de $n$ groter wordt is er grote kans dat de tegels niet meer (goed) passen. Als
    201201de $n$ groter wordt dan in mogelijke invoer is het helemaal niet meer mogelijk.
Note: See TracChangeset for help on using the changeset viewer.