Changeset 178 for liacs/SCA2010/nQueens


Ignore:
Timestamp:
Sep 7, 2010, 12:56:06 PM (14 years ago)
Author:
Rick van der Zwet
Message:

Corrected whole bunch of useful changes

Location:
liacs/SCA2010/nQueens
Files:
2 edited

Legend:

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

    r168 r178  
    1919
    2020\title{\emph{n-Queens} minimale dominantie verzamelingen \\
    21 \large{Chessboard Domination on Programmable Graphics Hardware door Nathan Cournik}}
     21\large{Chessboard Domination on Programmable Graphics Hardware door Nathan Cournia}}
    2222\author{Rick van der Zwet\\
    2323  \texttt{<hvdzwet@liacs.nl>}}
     
    2828\maketitle
    2929\begin{abstract}
    30 Dit schrijven zal het paper van Nathan Cournik \emph{Chessboard Domination on
    31 Programmable Graphics Hardware}~\cite{CDGPU2006} ---en in het speciaal de
    32 gepresenteerde n-Queens oplossing--- vrij samenvatten in het nederlands en zal
     30Dit schrijven zal het paper van Nathan Cournia \emph{Chessboard Domination on
     31Programmable Graphics Hardware}~\cite{CDGPU2006} ---en in het bijzonder de
     32gepresenteerde $n$-Queens oplossing--- vrij samenvatten in het Nederlands en zal
    3333de mening van de ondergetekende op het geheel geven.
    3434\end{abstract}
     
    3939    \includegraphics[width=0.5\textwidth]{pasted1.pdf}
    4040  \end{center}
    41   \caption{Links; koningin kan dit patroon slaan. Rechts; ongeldige \emph{n-Queens} oplossing, opdat de koninginnen rechtsonder elkaar kunnen slaan}
     41  \caption{Links: koningin kan dit patroon slaan. Rechts: ongeldige \emph{n-Queens} oplossing, omdat de koninginnen rechtsonder elkaar kunnen slaan.}
    4242  \label{fig:patroon}
    4343\end{figure}
    4444Vanwege het feit dat \emph{n-Queens} een algemeen geaccepteerde terminologie
    45 is voor het plaatsen van $n$ koningen op een $n*n$ schaakbord zodanig dat de
    46 koningen elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald
     45is voor het plaatsen van $n$ koninginnen op een $n*n$ schaakbord zodanig dat de
     46koninginnen elkaar niet kunnen slaan, zal dit in het schrijven niet vertaald
    4747worden. Verder zal in de tekst op diverse plekken de originele Engelse bewoording
    48 staan om zo terugzoeken en refereren in het originele paper~\cite{CDGPU2006}
     48staan om zo terugzoeken in en refereren naar het originele paper~\cite{CDGPU2006}
    4949makkelijker te maken.
    5050
     
    5353De minimale dominantie verzameling ({\emph{Minimum domination set}}) is
    5454een opstelling waarbij met zo weinig mogelijk koninginnen elk vakje
    55 van het schaakbord a) door ten minste 1 koningin geslagen kan worden of b) dat er een
    56 koningin op staat. Omdat een koningin een karakteristiek patroon kan staan (zie
     55van het schaakbord a) door ten minste 1 koningin direct bereikt kan worden of b) bezet is
     56door een koningin. Omdat een koningin een \emph{karakteristiek patroon} kan slaan (zie
    5757Figuur~\ref{fig:patroon}) kan het minimale aantal koninginnen wat nodig is ook
    58 bepaald worden dmv van formule~\ref{eq:ondergrens}. 
     58bepaald worden door middel van Formule~\ref{eq:ondergrens}: 
    5959\begin{equation}
    6060y(Q_{n})\geq\frac{n-1}{2}, n\geq1
    6161\label{eq:ondergrens}
    6262\end{equation}
    63 Als het een 'gewone' dominantie verzameling is dan hoeft het aantal koninginnen
    64 niet perse minimaal zijn.
    65 
    66 
    67 \section{Grafische Verwerking Eenheid}
     63Waarbij in Formule~\ref{eq:ondergrens} $n$ het de grootte van het bord is ($n
     64\times n$). De knopen van $Q_{n}$ zijn genomen van een $n \times n$ bord met
     65$n^{2}$ als de knopen. Als knoop $a$ door middel van het \emph{karakteristiek
     66patroon} van een koningin vanuit $b$ bereikt kan worden, wordt er een tak
     67tussen deze knopen gevormd. Dit geheel (de knopen en takken) is $Q_{n}$. $y(G)$
     68is de minimum of a domination set of $G$. $y(Q_{n})$ is dan het minimalel
     69aantal koninginnen die men kan plaatsen en zodaning de minimale dominantie
     70verzameling te bereiken. Als het een ``gewone'' dominantie verzameling is dan
     71hoeft het aantal koninginnen niet perse minimaal zijn.
     72
     73
     74\section{Grafische Verwerkings Eenheid}
    6875\begin{figure}
    6976  \centering
     
    7380data-kanalen (\emph{streams}) en heeft de vorm van een \emph{framebuffer}, welke
    7481intern als $n * m$ array gezien kan worden. Een \emph{kernel} kan toegepast
    75 worden op een (deel van de) \emph{framebuffer}.}
     82worden op een (deel van de) \emph{framebuffer}. Illustratie uit \cite{WPCUDA}.}
    7683  \label{fig:werking}
    7784\end{figure}
    78 De Grafische Verwerking Eenheid (\emph{Graphics Processing Unit} ook bekend als
     85De Grafische Verwerkings Eenheid (\emph{Graphics Processing Unit}, ook bekend als
    7986\emph{GPU}) heeft speciale electronica om ervoor te zorgen dat deze snel de
    8087\emph{RGB} waardes van alle beeldpunten kan berekenen in complexe beeldsystemen
     
    9097stappen zien die uitgevoerd moeten worden om de \emph{GPU} aan te sturen. Het
    9198is belangrijk om te beseffen dat de \emph{GPU} een heel simpele processor is en
    92 (dus) zeer kleine buffers en instructie set heeft. Verder is het ook cruciaal
     99(dus) zeer kleine buffers en instructieset heeft. Verder is het ook cruciaal
    93100te weten dat de \emph{GPU} \textit{niet} direct gebruik gebruik kan maken van
    94 het hoofd-geheugen van de \emph{CPU}, maak dat de invoer en uitvoer altijd eerst
     101het hoofd-geheugen van de \emph{CPU}, maar dat de invoer en uitvoer altijd eerst
    95102naar/van de \emph{GPU} verplaatst zal moeten worden.
    96103
    97 \section{Aanpak emph{n-Queens} probleem op de \emph{GPU}}
     104\section{Aanpak $n$-Queens probleem op de \emph{GPU}}
    98105Het zoeken van geldige minimale dominantie verzamelingen is een stevige klus,
    99 waarvoor minimaal (en dus optimale geval) $n$ koninginnen nodig zijn die we op een $n * n$
     106waarvoor minimaal (in het optimale geval) $n$ koninginnen nodig zijn die we op een $n \times n$
    100107schaakbord kunnen plaatsen. Dat levert $(n * n)! - ((n * n)-n)!$ mogelijkheden op.
    101108De \emph{GPU} zal gebruikt worden om oplossingen sneller te controleren en zal
    102 niet gebruikt worden om effici"{e}ntie oplossingen te vinden. De kracht zit hem in
    103 het feit dat meer oplossingen getest kunnen worden en dus potentieel betere
    104 oplossingen tussen kunnen zitten, welke ook te zien in in
    105 algoritme~\ref{alg:overzicht}. De genereerde potenti"{e}le oplossingen die aan de
    106 \emph{GPU} ter controle aangeboden worden respecteren de boven- en ondergrens.
     109niet gebruikt worden om effici"{e}nte oplossingen te vinden. De kracht zit hem in
     110het feit dat meer oplossingen getest kunnen worden en er dus potentieel betere
     111oplossingen tussen kunnen zitten, wat ook te zien is in
     112Algoritme~\ref{alg:overzicht}. De genereerde potenti"{e}le oplossingen die aan de
     113\emph{GPU} ter controle aangeboden worden respecteren eventuele bekende boven-
     114en ondergrenzen zoals Formule~\ref{eq:ondergrens}. \footnote{Zie voor meer
     115bekende boven- en ondergrenzen onder andere de papers genoemd in \cite[CDGPU2006]{sectie 2, pagina 62}.}
     116
    107117
    108118\begin{algoritm}
     
    124134  \centering
    125135  \includegraphics[width=0.4\textwidth]{pasted4.pdf}
    126   \caption{Stempels van verschillende schaakstukken, de verschillende groottes zijn noodzakelijk om aan te geven hoe de stempel vergroot of verkleint moet worden
     136  \caption{Stempels van verschillende schaakstukken, de verschillende groottes zijn noodzakelijk om aan te geven hoe het stempel vergroot of verkleind moet worden.
    127137  \label{fig:stempels}
    128138\end{figure}
    129139Om snelle detectie mogelijk te maken, wordt er gebruikt gemaakt van een
    130 eigenschap waar een \emph{GPU} in uitblinkt; het '\emph{stempelen}' van objecten in
     140eigenschap waar een \emph{GPU} in uitblinkt: het ``\emph{stempelen}'' van objecten in
    131141een raster (welke in traditionele beeldbewerking gebruikt wordt om texturen te
    132142maken). Elk schaakstuk heeft zijn eigen stempel-patroon zoals te zien in
     
    140150  \caption{Door slim te coderen kunnen meerdere potenti"{e}le oplossingen tegelijk
    141151bekeken worden. Hier wordt gebruik gemaakt van (a) het feit dat de ruimte groter
    142 is dan het 'schaakbord' welke bekeken wordt en (b) een pixel gecodeerd is uit
    143 vier onafhankelijke kleuren}
     152is dan het ``schaakbord'' dat bekeken wordt en (b) een pixel gecodeerd is uit
     153vier onafhankelijke kleuren.}
    144154  \label{fig:raster}
    145155\end{figure}
    146156Er zijn nog twee eigenschappen van de \emph{GPU} waar dankbaar gebruik van
    147157gemaakt wordt, namelijk kleur en het verschil in grootte van het bord en de
    148 geaccepteerde invoer. Door slim te combineren ---zie figuur~\ref{fig:raster} op pagina~\pageref{fig:raster}---
     158geaccepteerde invoer. Door slim te combineren ---zie Figuur~\ref{fig:raster} op pagina~\pageref{fig:raster}---
    149159kan het aantal potenti"{e}le oplossingen dat getest kan worden gemaximaliseerd
    150160worden.
    151161
    152 De individuele \emph{kernels} volgen het algoritme~\ref{alg:kernel}. De test of
     162De individuele \emph{kernels} volgen Algoritme~\ref{alg:kernel}. De test of
    153163alle punten gemarkeerd zijn lijkt op het eerste gezicht een lus/loop die test over
    154164alle beeldpunten, echter de \emph{GPU} heeft specifieke instructies om dit
     
    161171\begin{algoritm}
    162172\begin{verbatim}
    163 01: voor elke stempels in stempel locatie
     17301: voor alle stempels in stempel locatie
    16417402: ..plaats stempel
    16517503: als (alle punten gemarkeerd) dan
     
    175185  \includegraphics[width=0.4\textwidth]{pasted6.pdf}
    176186  \caption{
    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 des te beter de \emph{GPU} gaan presteren in vergelijking met de \emph{CPU}}
     187  Uitvoertijden (logaritmische schaal) van de \emph{CPU} en \emph{GPU} gebaseerde minimale dominantie implementaties welke $y(Q_{n})$ uitrekenen. Hoe groter $n$ wordt des te beter de \emph{GPU} gaat presteren in vergelijking met de \emph{CPU}.}
    178188  \label{fig:uitvoertijd}
    179189\end{figure}
    180 Door het toepassen van de \emph{GPU} in het \emph{n-Queens} probleem kunnen
    181 winsten geboekt worden zoals te zien in figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}.
     190Door het toepassen van de \emph{GPU} op het \emph{n-Queens} probleem kunnen
     191winsten geboekt worden zoals te zien is in Figuur~\ref{fig:uitvoertijd}\footnote{Gegevens direct uit \cite{CDGPU2006} overgenomen, experiment niet opnieuw uitgevoerd}.
    182192Het toepassen van \emph{GPU} dominantie textuur technieken lijkt voor dit
    183 specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld en
    184 de \emph{GPU} wereld. De stempels bieden tevens meer vrijheden om alternatieve
    185 'schaakstukken' te onderzoeken.
     193specifieke geval een goede vertaling van de traditionele \emph{CPU} wereld naar
     194een implementatie in de  \emph{GPU} wereld. De stempels bieden tevens meer
     195vrijheden om alternatieve ``schaakstukken'' te onderzoeken.
    186196\subsection{Verder werk}
    187197Er zal gekeken worden of de generatie van nieuwe oplossingen ook op de
    188 \emph{GPU} gedaan kan worden om zo het probleem van de langzame context
    189 wisselingen op te lossen.
    190 Verder 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 basis-kleuren uit te
    192 splitsen zouden ook de volledige 32 bits (elke kleur is 8 bit) kunnen worden om
    193 nog meer(combinaties) van oplossingen te coderen.
     198\emph{GPU} gedaan kan worden om zo het probleem van de langzame
     199contextwisselingen op te lossen.  Verder zal er gekeken worden of de codering
     200van de borden op nog een slimmere
     201manier aangepakt kan worden: in plaats van de kleur in 4 basis-kleuren uit te
     202splitsen zouden ook de volledige 32 bits (elke kleur heeft 8 bits) kunnen worden om
     203nog meer (combinaties) van oplossingen te coderen.
    194204
    195205\subsection{Discussie}
    196 De claim dat de \emph{GPU} 'veel' sneller is lijkt me niet gefundeerd in de
    197 grafieken. Beiden lijken erg dicht bij elkaar te blijven en ik zie niet waarom
     206De claim dat de \emph{GPU} ``veel'' sneller is lijkt niet gefundeerd in de
     207grafieken. Beide lijken erg dicht bij elkaar te blijven en ik zie niet waarom
    198208dit plots veel beter zou worden bij grotere $n$ waarden.
    199 De 'tegel-methode' van figuur~\ref{fig:raster} lijkt in theorie leuk, maar als
    200 de $n$ groter wordt is er grote kans dat de tegels niet meer (goed) passen. Als
    201 de $n$ groter wordt dan in mogelijke invoer is het helemaal niet meer mogelijk.
    202 
    203 
    204 
    205 \begin{thebibliography}{2}
     209De ``tegel-methode'' van Figuur~\ref{fig:raster} lijkt in theorie leuk, maar als
     210 $n$ groter wordt is er grote kans dat de tegels niet meer (goed) passen. Als
     211 $n$ groter wordt dan in mogelijke invoer ---de maximale grootte van een bord
     212die in in het geheugen van de de \emph{GPU} past is gelimiteerd aan de hoeveelheid geheugen iin de \emph{GPU} en op welke manier dit geheugen ingedeeld is--- is het helemaal niet meer
     213mogelijk.
     214
     215
     216
     217\begin{thebibliography}{3}
    206218\bibitem[DM2003]{DM2003}E. J. Cockayne, emph{Chessboard domination
    207219problems}, \emph{Discrete Math}, 86:1320, 1990.
     
    210222on Programmable Graphics Hardware}, \emph{ACM SE'06 March
    21122310-­12, 2006}. Melbourne, Florida, USA
     224
     225\bibitem[WPCUDA]{WPCUDA}Wikipedia, CUDA, \url{http://en.wikipedia.org/wiki/CUDA}
     226(as of Sept. 7, 2010, 12:03 GMT).
     227
    212228\end{thebibliography}
    213229\newpage
Note: See TracChangeset for help on using the changeset viewer.