2 \@writefile{toc}{\author{Guillaume Laville, Christophe Lang, Kamel Mazouzi, Nicolas Marilleau, B\IeC {\'e}n\IeC {\'e}dicte Herrmann, Laurent Philippe}{}}
3 \@writefile{loa}{\addvspace {10\p@ }}
4 \@writefile{toc}{\contentsline {chapter}{\numberline {16}Implementing MAS on GPU}{363}}
5 \@writefile{lof}{\addvspace {10\p@ }}
6 \@writefile{lot}{\addvspace {10\p@ }}
7 \newlabel{chapter17}{{16}{363}}
8 \@writefile{toc}{\contentsline {section}{\numberline {16.1}Introduction}{363}}
9 \newlabel{ch17:intro}{{16.1}{363}}
10 \@writefile{toc}{\contentsline {section}{\numberline {16.2}Running Agent-Based Simulations}{365}}
11 \newlabel{ch17:ABM}{{16.2}{365}}
12 \@writefile{toc}{\contentsline {subsection}{\numberline {16.2.1}Multi-agent systems and parallelism}{365}}
13 \@writefile{toc}{\contentsline {subsection}{\numberline {16.2.2}MAS Implementation on GPU}{366}}
14 \newlabel{ch17:subsec:gpu}{{16.2.2}{366}}
15 \@writefile{toc}{\contentsline {section}{\numberline {16.3}A first practical example}{368}}
16 \newlabel{ch17:sec:1stmodel}{{16.3}{368}}
17 \@writefile{toc}{\contentsline {subsection}{\numberline {16.3.1}The Collembola model}{368}}
18 \newlabel{ch17:subsec:collembolamodel}{{16.3.1}{368}}
19 \@writefile{lof}{\contentsline {figure}{\numberline {16.1}{\ignorespaces Evolution algorithm of Collembola model\relax }}{369}}
20 \newlabel{ch17:fig:collem_algorithm}{{16.1}{369}}
21 \@writefile{toc}{\contentsline {subsection}{\numberline {16.3.2}Collembola Implementation}{369}}
22 \newlabel{ch17:listing:collembola-diffuse}{{16.1}{369}}
23 \@writefile{lol}{\contentsline {lstlisting}{\numberline {16.1}Collembola OpenCL Diffusion kernel}{369}}
24 \newlabel{ch17:listing:collembola-reduc}{{16.2}{370}}
25 \@writefile{lol}{\contentsline {lstlisting}{\numberline {16.2}Collembola OpenCL reduction kernel}{370}}
26 \@writefile{toc}{\contentsline {subsection}{\numberline {16.3.3}Collembola performance}{371}}
27 \@writefile{lof}{\contentsline {figure}{\numberline {16.2}{\ignorespaces Performance of the Collembola model on CPU and GPU\relax }}{371}}
28 \newlabel{ch17:fig:mior_perfs_collem}{{16.2}{371}}
29 \@writefile{toc}{\contentsline {section}{\numberline {16.4}Second example}{372}}
30 \newlabel{ch17:sec:2ndmodel}{{16.4}{372}}
31 \@writefile{toc}{\contentsline {subsection}{\numberline {16.4.1}The MIOR model}{372}}
32 \newlabel{ch17:subsec:miormodel}{{16.4.1}{372}}
33 \@writefile{loa}{\contentsline {algocf}{\numberline {16}{\ignorespaces Evolution step of each Meta-Mior (microbial colony) agent\relax }}{373}}
34 \newlabel{ch17:seqalgo}{{16}{373}}
35 \@writefile{toc}{\contentsline {subsection}{\numberline {16.4.2}MIOR Implementation}{373}}
36 \@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.1}Execution mapping on GPU}{373}}
37 \@writefile{lof}{\contentsline {figure}{\numberline {16.3}{\ignorespaces Execution distribution retained on GPU\relax }}{374}}
38 \newlabel{ch17:fig:gpu_distribution}{{16.3}{374}}
39 \@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.2}Data structures translation}{374}}
40 \newlabel{ch17:subsec:datastructures}{{16.4.2.2}{374}}
41 \newlabel{ch17:listing:mior_data_structures}{{16.3}{375}}
42 \@writefile{lol}{\contentsline {lstlisting}{\numberline {16.3}Main data structures used in a MIOR simulation}{375}}
43 \@writefile{lof}{\contentsline {figure}{\numberline {16.4}{\ignorespaces Compact representation of the topology of a MIOR simulation\relax }}{376}}
44 \newlabel{ch17:fig:csr_representation}{{16.4}{376}}
45 \@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.3}Critical resources access management}{376}}
46 \newlabel{ch17:subsec:concurrency}{{16.4.2.3}{376}}
47 \newlabel{ch17:listing:mior_kernels}{{16.4}{376}}
48 \@writefile{lol}{\contentsline {lstlisting}{\numberline {16.4}Main MIOR kernel}{376}}
49 \newlabel{ch17:fig:mior_launcher}{{16.5}{377}}
50 \@writefile{lol}{\contentsline {lstlisting}{\numberline {16.5}MIOR simulation launcher}{377}}
51 \@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.4}Termination detection}{378}}
52 \@writefile{toc}{\contentsline {subsection}{\numberline {16.4.3}Performance of MIOR implementations}{378}}
53 \newlabel{ch17:subsec:miorexperiments}{{16.4.3}{378}}
54 \@writefile{lof}{\contentsline {figure}{\numberline {16.5}{\ignorespaces CPU and GPU performance on a Tesla C1060 node\relax }}{380}}
55 \newlabel{ch17:fig:mior_perfs_tesla}{{16.5}{380}}
56 \@writefile{lof}{\contentsline {figure}{\numberline {16.6}{\ignorespaces CPU and GPU performance on a personal computer with a Geforce 8800GT\relax }}{381}}
57 \newlabel{ch17:fig:mior_perfs_8800gt}{{16.6}{381}}
58 \@writefile{toc}{\contentsline {section}{\numberline {16.5}Analysis and recommendations}{381}}
59 \newlabel{ch17:analysis}{{16.5}{381}}
60 \@writefile{toc}{\contentsline {subsection}{\numberline {16.5.1}Analysis}{381}}
61 \@writefile{lof}{\contentsline {figure}{\numberline {16.7}{\ignorespaces Execution time of one multi-simulation kernel on the Tesla platform\relax }}{382}}
62 \newlabel{ch17:fig:monokernel_graph}{{16.7}{382}}
63 \@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}}
64 \newlabel{ch17:fig:multikernel_graph}{{16.8}{382}}
65 \@writefile{toc}{\contentsline {subsection}{\numberline {16.5.2}MAS execution workflow}{382}}
66 \@writefile{toc}{\contentsline {subsection}{\numberline {16.5.3}Implementation challenges}{383}}
67 \@writefile{toc}{\contentsline {subsection}{\numberline {16.5.4}MCSMA}{384}}
68 \newlabel{ch17:Mcsma}{{16.5.4}{384}}
69 \@writefile{toc}{\contentsline {section}{\numberline {16.6}Conclusion}{385}}
70 \newlabel{ch17:conclusion}{{16.6}{385}}
71 \@writefile{toc}{\contentsline {section}{Bibliography}{386}}
72 \@setckpt{Chapters/chapter17/ch17}{
73 \setcounter{page}{389}
74 \setcounter{equation}{0}
76 \setcounter{enumii}{0}
77 \setcounter{enumiii}{0}
78 \setcounter{enumiv}{25}
79 \setcounter{footnote}{1}
80 \setcounter{mpfootnote}{0}
82 \setcounter{chapter}{16}
83 \setcounter{section}{6}
84 \setcounter{subsection}{0}
85 \setcounter{subsubsection}{0}
86 \setcounter{paragraph}{0}
87 \setcounter{subparagraph}{0}
88 \setcounter{figure}{8}
90 \setcounter{numauthors}{0}
91 \setcounter{parentequation}{4}
92 \setcounter{subfigure}{0}
93 \setcounter{lofdepth}{1}
94 \setcounter{subtable}{0}
95 \setcounter{lotdepth}{1}
96 \setcounter{lstnumber}{21}
97 \setcounter{ContinuedFloat}{0}
98 \setcounter{AlgoLine}{17}
99 \setcounter{algocfline}{16}
100 \setcounter{algocfproc}{16}
101 \setcounter{algocf}{16}
102 \setcounter{nprt@mantissa@digitsbefore}{0}
103 \setcounter{nprt@mantissa@digitsafter}{0}
104 \setcounter{nprt@exponent@digitsbefore}{0}
105 \setcounter{nprt@exponent@digitsafter}{0}
106 \setcounter{nprt@digitsfirstblock}{0}
107 \setcounter{nprt@blockcnt}{0}
108 \setcounter{nprt@cntprint}{0}
109 \setcounter{proposition}{1}
110 \setcounter{theorem}{0}
111 \setcounter{exercise}{0}
112 \setcounter{example}{0}
113 \setcounter{definition}{0}
114 \setcounter{proof}{1}
115 \setcounter{lstlisting}{5}