2 \@writefile{toc}{\author{Guillaume Laville}{}}
3 \@writefile{toc}{\author{Christophe Lang}{}}
4 \@writefile{toc}{\author{Kamel Mazouzi}{}}
5 \@writefile{toc}{\author{Nicolas Marilleau}{}}
6 \@writefile{toc}{\author{B\IeC {\'e}n\IeC {\'e}dicte Herrmann}{}}
7 \@writefile{toc}{\author{Laurent Philippe}{}}
8 \@writefile{loa}{\addvspace {10\p@ }}
9 \@writefile{toc}{\contentsline {chapter}{\numberline {17}Implementing Multi-Agent Systems on GPU}{397}}
10 \@writefile{lof}{\addvspace {10\p@ }}
11 \@writefile{lot}{\addvspace {10\p@ }}
12 \newlabel{chapter17}{{17}{398}}
13 \@writefile{toc}{\contentsline {section}{\numberline {17.1}Introduction}{398}}
14 \newlabel{ch17:intro}{{17.1}{398}}
15 \@writefile{toc}{\contentsline {section}{\numberline {17.2}Running Agent-Based Simulations}{399}}
16 \newlabel{ch17:ABM}{{17.2}{399}}
17 \@writefile{toc}{\contentsline {subsection}{\numberline {17.2.1}Multi-agent systems and parallelism}{399}}
18 \@writefile{toc}{\contentsline {subsection}{\numberline {17.2.2}MAS Implementation on GPU}{401}}
19 \newlabel{ch17:subsec:gpu}{{17.2.2}{401}}
20 \@writefile{toc}{\contentsline {section}{\numberline {17.3}A first practical example}{402}}
21 \newlabel{ch17:sec:1stmodel}{{17.3}{402}}
22 \@writefile{toc}{\contentsline {subsection}{\numberline {17.3.1}The Collembola model}{402}}
23 \newlabel{ch17:subsec:collembolamodel}{{17.3.1}{402}}
24 \@writefile{lof}{\contentsline {figure}{\numberline {17.1}{\ignorespaces Evolution algorithm of Collembola model\relax }}{403}}
25 \newlabel{ch17:fig:collem_algorithm}{{17.1}{403}}
26 \@writefile{toc}{\contentsline {subsection}{\numberline {17.3.2}Collembola Implementation}{403}}
27 \newlabel{ch17:listing:collembola-diffuse}{{17.1}{404}}
28 \@writefile{lol}{\contentsline {lstlisting}{\numberline {17.1}Collembola OpenCL Diffusion kernel}{404}}
29 \newlabel{ch17:listing:collembola-reduc}{{17.2}{404}}
30 \@writefile{lol}{\contentsline {lstlisting}{\numberline {17.2}Collembola OpenCL reduction kernel}{404}}
31 \@writefile{toc}{\contentsline {subsection}{\numberline {17.3.3}Collembola performance}{405}}
32 \@writefile{lof}{\contentsline {figure}{\numberline {17.2}{\ignorespaces Performance of the Collembola model on CPU and GPU\relax }}{406}}
33 \newlabel{ch17:fig:mior_perfs_collem}{{17.2}{406}}
34 \@writefile{toc}{\contentsline {section}{\numberline {17.4}Second example}{406}}
35 \newlabel{ch17:sec:2ndmodel}{{17.4}{406}}
36 \@writefile{toc}{\contentsline {subsection}{\numberline {17.4.1}The MIOR model}{406}}
37 \newlabel{ch17:subsec:miormodel}{{17.4.1}{406}}
38 \@writefile{loa}{\contentsline {algocf}{\numberline {21}{\ignorespaces Evolution step of each Meta-Mior (microbial colony) agent\relax }}{407}}
39 \newlabel{ch17:seqalgo}{{21}{407}}
40 \@writefile{toc}{\contentsline {subsection}{\numberline {17.4.2}MIOR Implementation}{407}}
41 \@writefile{lof}{\contentsline {figure}{\numberline {17.3}{\ignorespaces Execution distribution retained on GPU\relax }}{408}}
42 \newlabel{ch17:fig:gpu_distribution}{{17.3}{408}}
43 \@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.1}Execution mapping on GPU}{408}}
44 \@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.2}Data structures translation}{409}}
45 \newlabel{ch17:subsec:datastructures}{{17.4.2.2}{409}}
46 \newlabel{ch17:listing:mior_data_structures}{{17.3}{409}}
47 \@writefile{lol}{\contentsline {lstlisting}{\numberline {17.3}Main data structures used in a MIOR simulation}{409}}
48 \@writefile{lof}{\contentsline {figure}{\numberline {17.4}{\ignorespaces Compact representation of the topology of a MIOR simulation\relax }}{410}}
49 \newlabel{ch17:fig:csr_representation}{{17.4}{410}}
50 \@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.3}Critical resources access management}{410}}
51 \newlabel{ch17:subsec:concurrency}{{17.4.2.3}{410}}
52 \newlabel{ch17:listing:mior_kernels}{{17.4}{411}}
53 \@writefile{lol}{\contentsline {lstlisting}{\numberline {17.4}Main MIOR kernel}{411}}
54 \newlabel{ch17:fig:mior_launcher}{{17.5}{412}}
55 \@writefile{lol}{\contentsline {lstlisting}{\numberline {17.5}MIOR simulation launcher}{412}}
56 \@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.4}Termination detection}{412}}
57 \@writefile{toc}{\contentsline {subsection}{\numberline {17.4.3}Performance of MIOR implementations}{413}}
58 \newlabel{ch17:subsec:miorexperiments}{{17.4.3}{413}}
59 \@writefile{lof}{\contentsline {figure}{\numberline {17.5}{\ignorespaces CPU and GPU performance on a Tesla C1060 node\relax }}{414}}
60 \newlabel{ch17:fig:mior_perfs_tesla}{{17.5}{414}}
61 \@writefile{lof}{\contentsline {figure}{\numberline {17.6}{\ignorespaces CPU and GPU performance on a personal computer with a Geforce 8800GT\relax }}{415}}
62 \newlabel{ch17:fig:mior_perfs_8800gt}{{17.6}{415}}
63 \@writefile{toc}{\contentsline {section}{\numberline {17.5}Analysis and recommendations}{415}}
64 \newlabel{ch17:analysis}{{17.5}{415}}
65 \@writefile{lof}{\contentsline {figure}{\numberline {17.7}{\ignorespaces Execution time of one multi-simulation kernel on the Tesla platform\relax }}{416}}
66 \newlabel{ch17:fig:monokernel_graph}{{17.7}{416}}
67 \@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 }}{416}}
68 \newlabel{ch17:fig:multikernel_graph}{{17.8}{416}}
69 \@writefile{toc}{\contentsline {subsection}{\numberline {17.5.1}Analysis}{416}}
70 \@writefile{toc}{\contentsline {subsection}{\numberline {17.5.2}MAS execution workflow}{417}}
71 \@writefile{toc}{\contentsline {subsection}{\numberline {17.5.3}Implementation challenges}{418}}
72 \@writefile{toc}{\contentsline {subsection}{\numberline {17.5.4}MCSMA}{418}}
73 \newlabel{ch17:Mcsma}{{17.5.4}{418}}
74 \@writefile{toc}{\contentsline {section}{\numberline {17.6}Conclusion}{419}}
75 \newlabel{ch17:conclusion}{{17.6}{419}}
76 \@writefile{toc}{\contentsline {section}{Bibliography}{420}}
77 \@setckpt{Chapters/chapter17/ch17}{
78 \setcounter{page}{424}
79 \setcounter{equation}{0}
81 \setcounter{enumii}{0}
82 \setcounter{enumiii}{0}
83 \setcounter{enumiv}{25}
84 \setcounter{footnote}{1}
85 \setcounter{mpfootnote}{0}
87 \setcounter{chapter}{17}
88 \setcounter{section}{6}
89 \setcounter{subsection}{0}
90 \setcounter{subsubsection}{0}
91 \setcounter{paragraph}{0}
92 \setcounter{subparagraph}{0}
93 \setcounter{figure}{8}
95 \setcounter{numauthors}{0}
96 \setcounter{parentequation}{4}
97 \setcounter{subfigure}{0}
98 \setcounter{lofdepth}{1}
99 \setcounter{subtable}{0}
100 \setcounter{lotdepth}{1}
101 \setcounter{lstnumber}{21}
102 \setcounter{ContinuedFloat}{0}
103 \setcounter{AlgoLine}{17}
104 \setcounter{algocfline}{21}
105 \setcounter{algocfproc}{21}
106 \setcounter{algocf}{21}
107 \setcounter{nprt@mantissa@digitsbefore}{0}
108 \setcounter{nprt@mantissa@digitsafter}{0}
109 \setcounter{nprt@exponent@digitsbefore}{0}
110 \setcounter{nprt@exponent@digitsafter}{0}
111 \setcounter{nprt@digitsfirstblock}{0}
112 \setcounter{nprt@blockcnt}{0}
113 \setcounter{nprt@cntprint}{0}
114 \setcounter{proposition}{1}
115 \setcounter{theorem}{0}
116 \setcounter{exercise}{0}
117 \setcounter{example}{0}
118 \setcounter{definition}{0}
119 \setcounter{proof}{1}
120 \setcounter{lstlisting}{5}