X-Git-Url: https://bilbo.iut-bm.univ-fcomte.fr/and/gitweb/book_gpu.git/blobdiff_plain/b58ebfcbf7790d1cc47a03e023929dd3819832ee..b7e61e1f68e950462bff7221fe17c38d2ce7b3c0:/BookGPU/Chapters/chapter17/ch17.aux diff --git a/BookGPU/Chapters/chapter17/ch17.aux b/BookGPU/Chapters/chapter17/ch17.aux index 3fb7c46..4f932bd 100644 --- a/BookGPU/Chapters/chapter17/ch17.aux +++ b/BookGPU/Chapters/chapter17/ch17.aux @@ -1,76 +1,81 @@ \relax -\@writefile{toc}{\author{Guillaume Laville, Christophe Lang, Kamel Mazouzi, Nicolas Marilleau, B\IeC {\'e}n\IeC {\'e}dicte Herrmann, Laurent Philippe}{}} +\@writefile{toc}{\author{Guillaume Laville}{}} +\@writefile{toc}{\author{Christophe Lang}{}} +\@writefile{toc}{\author{Kamel Mazouzi}{}} +\@writefile{toc}{\author{Nicolas Marilleau}{}} +\@writefile{toc}{\author{B\IeC {\'e}n\IeC {\'e}dicte Herrmann}{}} +\@writefile{toc}{\author{Laurent Philippe}{}} \@writefile{loa}{\addvspace {10\p@ }} -\@writefile{toc}{\contentsline {chapter}{\numberline {16}Implementing MAS on GPU}{363}} +\@writefile{toc}{\contentsline {chapter}{\numberline {17}Implementing Multi-Agent Systems on GPU}{399}} \@writefile{lof}{\addvspace {10\p@ }} \@writefile{lot}{\addvspace {10\p@ }} -\newlabel{chapter17}{{16}{363}} -\@writefile{toc}{\contentsline {section}{\numberline {16.1}Introduction}{363}} -\newlabel{ch17:intro}{{16.1}{363}} -\@writefile{toc}{\contentsline {section}{\numberline {16.2}Running Agent-Based Simulations}{365}} -\newlabel{ch17:ABM}{{16.2}{365}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.2.1}Multi-agent systems and parallelism}{365}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.2.2}MAS Implementation on GPU}{366}} -\newlabel{ch17:subsec:gpu}{{16.2.2}{366}} -\@writefile{toc}{\contentsline {section}{\numberline {16.3}A first practical example}{368}} -\newlabel{ch17:sec:1stmodel}{{16.3}{368}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.1}The Collembola model}{368}} -\newlabel{ch17:subsec:collembolamodel}{{16.3.1}{368}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.1}{\ignorespaces Evolution algorithm of Collembola model\relax }}{369}} -\newlabel{ch17:fig:collem_algorithm}{{16.1}{369}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.2}Collembola Implementation}{369}} -\newlabel{ch17:listing:collembola-diffuse}{{16.1}{369}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.1}Collembola OpenCL Diffusion kernel}{369}} -\newlabel{ch17:listing:collembola-reduc}{{16.2}{370}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.2}Collembola OpenCL reduction kernel}{370}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.3}Collembola performance}{371}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.2}{\ignorespaces Performance of the Collembola model on CPU and GPU\relax }}{371}} -\newlabel{ch17:fig:mior_perfs_collem}{{16.2}{371}} -\@writefile{toc}{\contentsline {section}{\numberline {16.4}Second example}{372}} -\newlabel{ch17:sec:2ndmodel}{{16.4}{372}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.4.1}The MIOR model}{372}} -\newlabel{ch17:subsec:miormodel}{{16.4.1}{372}} -\@writefile{loa}{\contentsline {algocf}{\numberline {16}{\ignorespaces Evolution step of each Meta-Mior (microbial colony) agent\relax }}{373}} -\newlabel{ch17:seqalgo}{{16}{373}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.4.2}MIOR Implementation}{373}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.1}Execution mapping on GPU}{373}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.3}{\ignorespaces Execution distribution retained on GPU\relax }}{374}} -\newlabel{ch17:fig:gpu_distribution}{{16.3}{374}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.2}Data structures translation}{374}} -\newlabel{ch17:subsec:datastructures}{{16.4.2.2}{374}} -\newlabel{ch17:listing:mior_data_structures}{{16.3}{375}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.3}Main data structures used in a MIOR simulation}{375}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.4}{\ignorespaces Compact representation of the topology of a MIOR simulation\relax }}{376}} -\newlabel{ch17:fig:csr_representation}{{16.4}{376}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.3}Critical resources access management}{376}} -\newlabel{ch17:subsec:concurrency}{{16.4.2.3}{376}} -\newlabel{ch17:listing:mior_kernels}{{16.4}{376}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.4}Main MIOR kernel}{376}} -\newlabel{ch17:fig:mior_launcher}{{16.5}{377}} -\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.5}MIOR simulation launcher}{377}} -\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.4}Termination detection}{378}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.4.3}Performance of MIOR implementations}{378}} -\newlabel{ch17:subsec:miorexperiments}{{16.4.3}{378}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.5}{\ignorespaces CPU and GPU performance on a Tesla C1060 node\relax }}{380}} -\newlabel{ch17:fig:mior_perfs_tesla}{{16.5}{380}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.6}{\ignorespaces CPU and GPU performance on a personal computer with a Geforce 8800GT\relax }}{381}} -\newlabel{ch17:fig:mior_perfs_8800gt}{{16.6}{381}} -\@writefile{toc}{\contentsline {section}{\numberline {16.5}Analysis and recommendations}{381}} -\newlabel{ch17:analysis}{{16.5}{381}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.1}Analysis}{381}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.7}{\ignorespaces Execution time of one multi-simulation kernel on the Tesla platform\relax }}{382}} -\newlabel{ch17:fig:monokernel_graph}{{16.7}{382}} -\@writefile{lof}{\contentsline {figure}{\numberline {16.8}{\ignorespaces Total execution time for 1000 simulations on the Tesla platform, while varying the number of simulations for each kernel\relax }}{382}} -\newlabel{ch17:fig:multikernel_graph}{{16.8}{382}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.2}MAS execution workflow}{382}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.3}Implementation challenges}{383}} -\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.4}MCSMA}{384}} -\newlabel{ch17:Mcsma}{{16.5.4}{384}} -\@writefile{toc}{\contentsline {section}{\numberline {16.6}Conclusion}{385}} -\newlabel{ch17:conclusion}{{16.6}{385}} -\@writefile{toc}{\contentsline {section}{Bibliography}{386}} +\newlabel{chapter17}{{17}{400}} +\@writefile{toc}{\contentsline {section}{\numberline {17.1}Introduction}{400}} +\newlabel{ch17:intro}{{17.1}{400}} +\@writefile{toc}{\contentsline {section}{\numberline {17.2}Running Agent-Based Simulations}{401}} +\newlabel{ch17:ABM}{{17.2}{401}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.1}Multi-agent systems and parallelism}{401}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.2}MAS Implementation on GPU}{403}} +\newlabel{ch17:subsec:gpu}{{17.2.2}{403}} +\@writefile{toc}{\contentsline {section}{\numberline {17.3}A first practical example}{404}} +\newlabel{ch17:sec:1stmodel}{{17.3}{404}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.1}The Collembola model}{404}} +\newlabel{ch17:subsec:collembolamodel}{{17.3.1}{404}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.1}{\ignorespaces Evolution algorithm of Collembola model\relax }}{405}} +\newlabel{ch17:fig:collem_algorithm}{{17.1}{405}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.2}Collembola Implementation}{405}} +\newlabel{ch17:listing:collembola-diffuse}{{17.1}{406}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.1}Collembola OpenCL Diffusion kernel}{406}} +\newlabel{ch17:listing:collembola-reduc}{{17.2}{406}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.2}Collembola OpenCL reduction kernel}{406}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.3}Collembola performance}{407}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.2}{\ignorespaces Performance of the Collembola model on CPU and GPU\relax }}{408}} +\newlabel{ch17:fig:mior_perfs_collem}{{17.2}{408}} +\@writefile{toc}{\contentsline {section}{\numberline {17.4}Second example}{408}} +\newlabel{ch17:sec:2ndmodel}{{17.4}{408}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.1}The MIOR model}{408}} +\newlabel{ch17:subsec:miormodel}{{17.4.1}{408}} +\@writefile{loa}{\contentsline {algocf}{\numberline {21}{\ignorespaces Evolution step of each Meta-Mior (microbial colony) agent\relax }}{409}} +\newlabel{ch17:seqalgo}{{21}{409}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.2}MIOR Implementation}{409}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.3}{\ignorespaces Execution distribution retained on GPU\relax }}{410}} +\newlabel{ch17:fig:gpu_distribution}{{17.3}{410}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.1}Execution mapping on GPU}{410}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.2}Data structures translation}{411}} +\newlabel{ch17:subsec:datastructures}{{17.4.2.2}{411}} +\newlabel{ch17:listing:mior_data_structures}{{17.3}{411}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.3}Main data structures used in a MIOR simulation}{411}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.4}{\ignorespaces Compact representation of the topology of a MIOR simulation\relax }}{412}} +\newlabel{ch17:fig:csr_representation}{{17.4}{412}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.3}Critical resources access management}{412}} +\newlabel{ch17:subsec:concurrency}{{17.4.2.3}{412}} +\newlabel{ch17:listing:mior_kernels}{{17.4}{413}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.4}Main MIOR kernel}{413}} +\newlabel{ch17:fig:mior_launcher}{{17.5}{414}} +\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.5}MIOR simulation launcher}{414}} +\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.4}Termination detection}{414}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.3}Performance of MIOR implementations}{415}} +\newlabel{ch17:subsec:miorexperiments}{{17.4.3}{415}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.5}{\ignorespaces CPU and GPU performance on a Tesla C1060 node\relax }}{416}} +\newlabel{ch17:fig:mior_perfs_tesla}{{17.5}{416}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.6}{\ignorespaces CPU and GPU performance on a personal computer with a Geforce 8800GT\relax }}{417}} +\newlabel{ch17:fig:mior_perfs_8800gt}{{17.6}{417}} +\@writefile{toc}{\contentsline {section}{\numberline {17.5}Analysis and recommendations}{417}} +\newlabel{ch17:analysis}{{17.5}{417}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.7}{\ignorespaces Execution time of one multi-simulation kernel on the Tesla platform\relax }}{418}} +\newlabel{ch17:fig:monokernel_graph}{{17.7}{418}} +\@writefile{lof}{\contentsline {figure}{\numberline {17.8}{\ignorespaces Total execution time for 1000 simulations on the Tesla platform, while varying the number of simulations for each kernel\relax }}{418}} +\newlabel{ch17:fig:multikernel_graph}{{17.8}{418}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.1}Analysis}{418}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.2}MAS execution workflow}{419}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.3}Implementation challenges}{420}} +\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.4}MCSMA}{420}} +\newlabel{ch17:Mcsma}{{17.5.4}{420}} +\@writefile{toc}{\contentsline {section}{\numberline {17.6}Conclusion}{421}} +\newlabel{ch17:conclusion}{{17.6}{421}} +\@writefile{toc}{\contentsline {section}{Bibliography}{422}} \@setckpt{Chapters/chapter17/ch17}{ -\setcounter{page}{389} +\setcounter{page}{426} \setcounter{equation}{0} \setcounter{enumi}{3} \setcounter{enumii}{0} @@ -79,7 +84,7 @@ \setcounter{footnote}{1} \setcounter{mpfootnote}{0} \setcounter{part}{6} -\setcounter{chapter}{16} +\setcounter{chapter}{17} \setcounter{section}{6} \setcounter{subsection}{0} \setcounter{subsubsection}{0} @@ -96,9 +101,9 @@ \setcounter{lstnumber}{21} \setcounter{ContinuedFloat}{0} \setcounter{AlgoLine}{17} -\setcounter{algocfline}{16} -\setcounter{algocfproc}{16} -\setcounter{algocf}{16} +\setcounter{algocfline}{21} +\setcounter{algocfproc}{21} +\setcounter{algocf}{21} \setcounter{nprt@mantissa@digitsbefore}{0} \setcounter{nprt@mantissa@digitsafter}{0} \setcounter{nprt@exponent@digitsbefore}{0}