\makeindex
- \includeonly{Chapters/chapter10/ch10}
+% \includeonly{Chapters/chapter10/ch10}
\begin{document}
\@writefile{toc}{\author{Rapha\IeC {\"e}l Couturier}{}}
\@writefile{toc}{\author{Jacques Bahi}{}}
\@writefile{loa}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {chapter}{\numberline {11}Solving sparse linear systems with GMRES and CG methods on GPU clusters}{259}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {12}Solving sparse linear systems with GMRES and CG methods on GPU clusters}{291}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{ch12}{{11}{259}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.1}Introduction}{259}}
-\newlabel{ch12:sec:01}{{11.1}{259}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.2}Krylov iterative methods}{260}}
-\newlabel{ch12:sec:02}{{11.2}{260}}
-\newlabel{ch12:eq:01}{{11.1}{260}}
-\newlabel{ch12:eq:02}{{11.2}{260}}
-\newlabel{ch12:eq:03}{{11.3}{260}}
-\newlabel{ch12:eq:11}{{11.4}{261}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.2.1}CG method}{261}}
-\newlabel{ch12:sec:02.01}{{11.2.1}{261}}
-\newlabel{ch12:eq:04}{{11.5}{261}}
-\newlabel{ch12:eq:05}{{11.6}{261}}
-\newlabel{ch12:eq:06}{{11.7}{261}}
-\newlabel{ch12:eq:07}{{11.8}{261}}
-\newlabel{ch12:eq:08}{{11.9}{261}}
-\newlabel{ch12:eq:09}{{11.10}{261}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {9}{\ignorespaces Left-preconditioned CG method\relax }}{262}}
-\newlabel{ch12:alg:01}{{9}{262}}
-\newlabel{ch12:eq:10}{{11.11}{262}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.2.2}GMRES method}{263}}
-\newlabel{ch12:sec:02.02}{{11.2.2}{263}}
-\newlabel{ch12:eq:12}{{11.12}{263}}
-\newlabel{ch12:eq:13}{{11.13}{263}}
-\newlabel{ch12:eq:14}{{11.14}{263}}
-\newlabel{ch12:eq:15}{{11.15}{263}}
-\newlabel{ch12:eq:16}{{11.16}{263}}
-\newlabel{ch12:eq:17}{{11.17}{263}}
-\newlabel{ch12:eq:18}{{11.18}{263}}
-\newlabel{ch12:eq:19}{{11.19}{263}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {10}{\ignorespaces Left-preconditioned GMRES method with restarts\relax }}{264}}
-\newlabel{ch12:alg:02}{{10}{264}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.3}Parallel implementation on a GPU cluster}{265}}
-\newlabel{ch12:sec:03}{{11.3}{265}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.3.1}Data partitioning}{265}}
-\newlabel{ch12:sec:03.01}{{11.3.1}{265}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.1}{\ignorespaces A data partitioning of the sparse matrix $A$, the solution vector $x$ and the right-hand side $b$ into four portions.\relax }}{266}}
-\newlabel{ch12:fig:01}{{11.1}{266}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.3.2}GPU computing}{266}}
-\newlabel{ch12:sec:03.02}{{11.3.2}{266}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {11.3.3}Data communications}{267}}
-\newlabel{ch12:sec:03.03}{{11.3.3}{267}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.2}{\ignorespaces Data exchanges between \textit {Node 1} and its neighbors \textit {Node 0}, \textit {Node 2} and \textit {Node 3}.\relax }}{268}}
-\newlabel{ch12:fig:02}{{11.2}{268}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.3}{\ignorespaces Columns reordering of a sparse sub-matrix.\relax }}{269}}
-\newlabel{ch12:fig:03}{{11.3}{269}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.4}Experimental results}{270}}
-\newlabel{ch12:sec:04}{{11.4}{270}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.4}{\ignorespaces General scheme of the GPU cluster of tests composed of six machines, each with two GPUs.\relax }}{270}}
-\newlabel{ch12:fig:04}{{11.4}{270}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.5}{\ignorespaces Sketches of sparse matrices chosen from the Davis collection.\relax }}{271}}
-\newlabel{ch12:fig:05}{{11.5}{271}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.1}{\ignorespaces Main characteristics of sparse matrices chosen from the Davis collection.\relax }}{271}}
-\newlabel{ch12:tab:01}{{11.1}{271}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.2}{\ignorespaces Performances of the parallel CG method on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{272}}
-\newlabel{ch12:tab:02}{{11.2}{272}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.3}{\ignorespaces Performances of the parallel GMRES method on a cluster 24 CPU cores vs. on cluster of 12 GPUs.\relax }}{272}}
-\newlabel{ch12:tab:03}{{11.3}{272}}
-\newlabel{ch12:eq:20}{{11.20}{273}}
-\@writefile{lof}{\contentsline {figure}{\numberline {11.6}{\ignorespaces Parallel generation of a large sparse matrix by four computing nodes.\relax }}{274}}
-\newlabel{ch12:fig:06}{{11.6}{274}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.4}{\ignorespaces Main characteristics of sparse banded matrices generated from those of the Davis collection.\relax }}{274}}
-\newlabel{ch12:tab:04}{{11.4}{274}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.5}{\ignorespaces Performances of the parallel CG method for solving linear systems associated to sparse banded matrices on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{275}}
-\newlabel{ch12:tab:05}{{11.5}{275}}
-\@writefile{toc}{\contentsline {section}{\numberline {11.5}Conclusion}{275}}
-\newlabel{ch12:sec:05}{{11.5}{275}}
-\@writefile{lot}{\contentsline {table}{\numberline {11.6}{\ignorespaces Performances of the parallel GMRES method for solving linear systems associated to sparse banded matrices on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{276}}
-\newlabel{ch12:tab:06}{{11.6}{276}}
-\@writefile{toc}{\contentsline {section}{Bibliography}{276}}
+\newlabel{ch12}{{12}{291}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.1}Introduction}{291}}
+\newlabel{ch12:sec:01}{{12.1}{291}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.2}Krylov iterative methods}{292}}
+\newlabel{ch12:sec:02}{{12.2}{292}}
+\newlabel{ch12:eq:01}{{12.1}{292}}
+\newlabel{ch12:eq:02}{{12.2}{292}}
+\newlabel{ch12:eq:03}{{12.3}{292}}
+\newlabel{ch12:eq:11}{{12.4}{293}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {12.2.1}CG method}{293}}
+\newlabel{ch12:sec:02.01}{{12.2.1}{293}}
+\newlabel{ch12:eq:04}{{12.5}{293}}
+\newlabel{ch12:eq:05}{{12.6}{293}}
+\newlabel{ch12:eq:06}{{12.7}{293}}
+\newlabel{ch12:eq:07}{{12.8}{293}}
+\newlabel{ch12:eq:08}{{12.9}{293}}
+\newlabel{ch12:eq:09}{{12.10}{293}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {12}{\ignorespaces Left-preconditioned CG method\relax }}{294}}
+\newlabel{ch12:alg:01}{{12}{294}}
+\newlabel{ch12:eq:10}{{12.11}{294}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {12.2.2}GMRES method}{295}}
+\newlabel{ch12:sec:02.02}{{12.2.2}{295}}
+\newlabel{ch12:eq:12}{{12.12}{295}}
+\newlabel{ch12:eq:13}{{12.13}{295}}
+\newlabel{ch12:eq:14}{{12.14}{295}}
+\newlabel{ch12:eq:15}{{12.15}{295}}
+\newlabel{ch12:eq:16}{{12.16}{295}}
+\newlabel{ch12:eq:17}{{12.17}{295}}
+\newlabel{ch12:eq:18}{{12.18}{295}}
+\newlabel{ch12:eq:19}{{12.19}{295}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {13}{\ignorespaces Left-preconditioned GMRES method with restarts\relax }}{296}}
+\newlabel{ch12:alg:02}{{13}{296}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.3}Parallel implementation on a GPU cluster}{297}}
+\newlabel{ch12:sec:03}{{12.3}{297}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {12.3.1}Data partitioning}{297}}
+\newlabel{ch12:sec:03.01}{{12.3.1}{297}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.1}{\ignorespaces A data partitioning of the sparse matrix $A$, the solution vector $x$ and the right-hand side $b$ into four portions.\relax }}{298}}
+\newlabel{ch12:fig:01}{{12.1}{298}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {12.3.2}GPU computing}{298}}
+\newlabel{ch12:sec:03.02}{{12.3.2}{298}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {12.3.3}Data communications}{299}}
+\newlabel{ch12:sec:03.03}{{12.3.3}{299}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.2}{\ignorespaces Data exchanges between \textit {Node 1} and its neighbors \textit {Node 0}, \textit {Node 2} and \textit {Node 3}.\relax }}{300}}
+\newlabel{ch12:fig:02}{{12.2}{300}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.3}{\ignorespaces Columns reordering of a sparse sub-matrix.\relax }}{301}}
+\newlabel{ch12:fig:03}{{12.3}{301}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.4}Experimental results}{302}}
+\newlabel{ch12:sec:04}{{12.4}{302}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.4}{\ignorespaces General scheme of the GPU cluster of tests composed of six machines, each with two GPUs.\relax }}{302}}
+\newlabel{ch12:fig:04}{{12.4}{302}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.5}{\ignorespaces Sketches of sparse matrices chosen from the Davis collection.\relax }}{303}}
+\newlabel{ch12:fig:05}{{12.5}{303}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.1}{\ignorespaces Main characteristics of sparse matrices chosen from the Davis collection.\relax }}{303}}
+\newlabel{ch12:tab:01}{{12.1}{303}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.2}{\ignorespaces Performances of the parallel CG method on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{304}}
+\newlabel{ch12:tab:02}{{12.2}{304}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.3}{\ignorespaces Performances of the parallel GMRES method on a cluster 24 CPU cores vs. on cluster of 12 GPUs.\relax }}{304}}
+\newlabel{ch12:tab:03}{{12.3}{304}}
+\newlabel{ch12:eq:20}{{12.20}{305}}
+\@writefile{lof}{\contentsline {figure}{\numberline {12.6}{\ignorespaces Parallel generation of a large sparse matrix by four computing nodes.\relax }}{306}}
+\newlabel{ch12:fig:06}{{12.6}{306}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.4}{\ignorespaces Main characteristics of sparse banded matrices generated from those of the Davis collection.\relax }}{306}}
+\newlabel{ch12:tab:04}{{12.4}{306}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.5}{\ignorespaces Performances of the parallel CG method for solving linear systems associated to sparse banded matrices on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{307}}
+\newlabel{ch12:tab:05}{{12.5}{307}}
+\@writefile{toc}{\contentsline {section}{\numberline {12.5}Conclusion}{307}}
+\newlabel{ch12:sec:05}{{12.5}{307}}
+\@writefile{lot}{\contentsline {table}{\numberline {12.6}{\ignorespaces Performances of the parallel GMRES method for solving linear systems associated to sparse banded matrices on a cluster of 24 CPU cores vs. on a cluster of 12 GPUs.\relax }}{308}}
+\newlabel{ch12:tab:06}{{12.6}{308}}
+\@writefile{toc}{\contentsline {section}{Bibliography}{308}}
\@setckpt{Chapters/chapter12/ch12}{
-\setcounter{page}{278}
+\setcounter{page}{310}
\setcounter{equation}{22}
-\setcounter{enumi}{4}
+\setcounter{enumi}{2}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{10}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{5}
-\setcounter{chapter}{11}
+\setcounter{chapter}{12}
\setcounter{section}{5}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{lstnumber}{50}
\setcounter{ContinuedFloat}{0}
\setcounter{AlgoLine}{29}
-\setcounter{algocfline}{10}
-\setcounter{algocfproc}{10}
-\setcounter{algocf}{10}
+\setcounter{algocfline}{13}
+\setcounter{algocfproc}{13}
+\setcounter{algocf}{13}
\setcounter{nprt@mantissa@digitsbefore}{0}
\setcounter{nprt@mantissa@digitsafter}{0}
\setcounter{nprt@exponent@digitsbefore}{0}
\@writefile{toc}{\author{H. Wang}{}}
\@writefile{toc}{\author{H. Yu}{}}
\@writefile{loa}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {chapter}{\numberline {15}GPU-Accelerated Envelope-Following Method}{343}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {16}GPU-Accelerated Envelope-Following Method}{375}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {section}{\numberline {15.1}Introduction}{343}}
-\newlabel{fig:ef1}{{15.1(a)}{345}}
-\newlabel{sub@fig:ef1}{{(a)}{345}}
-\newlabel{fig:ef2}{{15.1(b)}{345}}
-\newlabel{sub@fig:ef2}{{(b)}{345}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.1}{\ignorespaces Transient envelope-following analysis. (Both two figures reflect backward-Euler style envelope-following.)\relax }}{345}}
-\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Illustration of one envelope skip.}}}{345}}
-\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {The envelope changes in a slow time scale.}}}{345}}
-\newlabel{fig:ef_intro}{{15.1}{345}}
-\@writefile{toc}{\contentsline {section}{\numberline {15.2}The envelope-following method in a nutshell}{346}}
-\newlabel{sec:ef}{{15.2}{346}}
-\newlabel{eq:dae}{{15.1}{346}}
-\newlabel{eq:Newton}{{15.2}{347}}
-\newlabel{eq:A}{{15.3}{347}}
-\@writefile{toc}{\contentsline {section}{\numberline {15.3}New parallel envelope-following method}{348}}
-\newlabel{sec:gmres}{{15.3}{348}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {15.3.1}GMRES solver for Newton update equation}{348}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.2}{\ignorespaces The flow of envelope-following method.\relax }}{349}}
-\newlabel{fig:ef_flow}{{15.2}{349}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {14}{\ignorespaces Standard GMRES algorithm.\relax }}{350}}
-\newlabel{alg:GMRES}{{14}{350}}
-\newlabel{line:mvp}{{5}{350}}
-\newlabel{line:newnorm}{{11}{350}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {15.3.2}Parallelization on GPU platforms}{350}}
-\newlabel{sec:gpu}{{15.3.2}{350}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.3}{\ignorespaces GPU parallel solver for envelope-following update.\relax }}{351}}
-\newlabel{fig:gmres}{{15.3}{351}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {15.3.3}Gear-2 based sensitivity calculation}{352}}
-\newlabel{sec:gear}{{15.3.3}{352}}
-\newlabel{eq:BE}{{15.4}{352}}
-\newlabel{eq:sens1}{{15.5}{352}}
-\newlabel{eq:Gear_t2}{{15.6}{353}}
-\newlabel{eq:sens2}{{15.7}{353}}
-\newlabel{eq:Gear_t3}{{15.8}{353}}
-\newlabel{eq:sensM}{{15.9}{353}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {15}{\ignorespaces The matrix-free method for Krylov subspace construction.\relax }}{354}}
-\newlabel{alg:mf_Gear}{{15}{354}}
-\newlabel{line:mf_Gear_loop}{{4}{354}}
-\newlabel{line:shift}{{8}{354}}
-\@writefile{toc}{\contentsline {section}{\numberline {15.4}Numerical examples}{354}}
-\newlabel{sec:exp}{{15.4}{354}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.4}{\ignorespaces Diagram of a zero-voltage quasi-resonant flyback converter.\relax }}{355}}
-\newlabel{fig:flyback}{{15.4}{355}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.5}{\ignorespaces Illustration of power/ground network model.\relax }}{355}}
-\newlabel{fig:pg}{{15.5}{355}}
-\newlabel{fig:flybackWhole}{{15.6(a)}{356}}
-\newlabel{sub@fig:flybackWhole}{{(a)}{356}}
-\newlabel{fig:flybackZoom}{{15.6(b)}{356}}
-\newlabel{sub@fig:flybackZoom}{{(b)}{356}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.6}{\ignorespaces Flyback converter solution calculated by envelope-following. The red curve is traditional SPICE simulation result, and the back curve is the envelope-following output with simulation points marked.\relax }}{356}}
-\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The whole plot}}}{356}}
-\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Detail of one EF simulation period}}}{356}}
-\newlabel{fig:flyback_wave}{{15.6}{356}}
-\@writefile{lof}{\contentsline {figure}{\numberline {15.7}{\ignorespaces Buck converter solution calculated by envelope-following.\relax }}{357}}
-\newlabel{fig:buck_wave}{{15.7}{357}}
-\@writefile{lot}{\contentsline {table}{\numberline {15.1}{\ignorespaces CPU and GPU time comparisons (in seconds) for solving Newton update equation with the proposed Gear-2 sensitivity. \relax }}{357}}
-\newlabel{table:circuit}{{15.1}{357}}
-\@writefile{toc}{\contentsline {section}{\numberline {15.5}Summary}{358}}
-\newlabel{sec:summary}{{15.5}{358}}
-\@writefile{toc}{\contentsline {section}{\numberline {15.6}Glossary}{358}}
-\@writefile{toc}{\contentsline {section}{Bibliography}{358}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.1}Introduction}{375}}
+\newlabel{fig:ef1}{{16.1(a)}{377}}
+\newlabel{sub@fig:ef1}{{(a)}{377}}
+\newlabel{fig:ef2}{{16.1(b)}{377}}
+\newlabel{sub@fig:ef2}{{(b)}{377}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.1}{\ignorespaces Transient envelope-following analysis. (Both two figures reflect backward-Euler style envelope-following.)\relax }}{377}}
+\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {Illustration of one envelope skip.}}}{377}}
+\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {The envelope changes in a slow time scale.}}}{377}}
+\newlabel{fig:ef_intro}{{16.1}{377}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.2}The envelope-following method in a nutshell}{378}}
+\newlabel{sec:ef}{{16.2}{378}}
+\newlabel{eq:dae}{{16.1}{378}}
+\newlabel{eq:Newton}{{16.2}{379}}
+\newlabel{eq:A}{{16.3}{379}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.3}New parallel envelope-following method}{380}}
+\newlabel{sec:gmres}{{16.3}{380}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.1}GMRES solver for Newton update equation}{380}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.2}{\ignorespaces The flow of envelope-following method.\relax }}{381}}
+\newlabel{fig:ef_flow}{{16.2}{381}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {17}{\ignorespaces Standard GMRES algorithm.\relax }}{382}}
+\newlabel{alg:GMRES}{{17}{382}}
+\newlabel{line:mvp}{{5}{382}}
+\newlabel{line:newnorm}{{11}{382}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.2}Parallelization on GPU platforms}{382}}
+\newlabel{sec:gpu}{{16.3.2}{382}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.3}{\ignorespaces GPU parallel solver for envelope-following update.\relax }}{383}}
+\newlabel{fig:gmres}{{16.3}{383}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {16.3.3}Gear-2 based sensitivity calculation}{384}}
+\newlabel{sec:gear}{{16.3.3}{384}}
+\newlabel{eq:BE}{{16.4}{384}}
+\newlabel{eq:sens1}{{16.5}{384}}
+\newlabel{eq:Gear_t2}{{16.6}{385}}
+\newlabel{eq:sens2}{{16.7}{385}}
+\newlabel{eq:Gear_t3}{{16.8}{385}}
+\newlabel{eq:sensM}{{16.9}{385}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {18}{\ignorespaces The matrix-free method for Krylov subspace construction.\relax }}{386}}
+\newlabel{alg:mf_Gear}{{18}{386}}
+\newlabel{line:mf_Gear_loop}{{4}{386}}
+\newlabel{line:shift}{{8}{386}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.4}Numerical examples}{386}}
+\newlabel{sec:exp}{{16.4}{386}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.4}{\ignorespaces Diagram of a zero-voltage quasi-resonant flyback converter.\relax }}{387}}
+\newlabel{fig:flyback}{{16.4}{387}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.5}{\ignorespaces Illustration of power/ground network model.\relax }}{387}}
+\newlabel{fig:pg}{{16.5}{387}}
+\newlabel{fig:flybackWhole}{{16.6(a)}{388}}
+\newlabel{sub@fig:flybackWhole}{{(a)}{388}}
+\newlabel{fig:flybackZoom}{{16.6(b)}{388}}
+\newlabel{sub@fig:flybackZoom}{{(b)}{388}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.6}{\ignorespaces Flyback converter solution calculated by envelope-following. The red curve is traditional SPICE simulation result, and the back curve is the envelope-following output with simulation points marked.\relax }}{388}}
+\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {The whole plot}}}{388}}
+\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {Detail of one EF simulation period}}}{388}}
+\newlabel{fig:flyback_wave}{{16.6}{388}}
+\@writefile{lof}{\contentsline {figure}{\numberline {16.7}{\ignorespaces Buck converter solution calculated by envelope-following.\relax }}{389}}
+\newlabel{fig:buck_wave}{{16.7}{389}}
+\@writefile{lot}{\contentsline {table}{\numberline {16.1}{\ignorespaces CPU and GPU time comparisons (in seconds) for solving Newton update equation with the proposed Gear-2 sensitivity. \relax }}{389}}
+\newlabel{table:circuit}{{16.1}{389}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.5}Summary}{390}}
+\newlabel{sec:summary}{{16.5}{390}}
+\@writefile{toc}{\contentsline {section}{\numberline {16.6}Glossary}{390}}
+\@writefile{toc}{\contentsline {section}{Bibliography}{390}}
\@setckpt{Chapters/chapter16/ch16}{
-\setcounter{page}{360}
+\setcounter{page}{392}
\setcounter{equation}{9}
\setcounter{enumi}{2}
\setcounter{enumii}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{5}
-\setcounter{chapter}{15}
+\setcounter{chapter}{16}
\setcounter{section}{6}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{lstnumber}{9}
\setcounter{ContinuedFloat}{0}
\setcounter{AlgoLine}{8}
-\setcounter{algocfline}{15}
-\setcounter{algocfproc}{15}
-\setcounter{algocf}{15}
+\setcounter{algocfline}{18}
+\setcounter{algocfproc}{18}
+\setcounter{algocf}{18}
\setcounter{nprt@mantissa@digitsbefore}{0}
\setcounter{nprt@mantissa@digitsafter}{0}
\setcounter{nprt@exponent@digitsbefore}{0}
\@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}{395}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{chapter17}{{16}{364}}
-\@writefile{toc}{\contentsline {section}{\numberline {16.1}Introduction}{364}}
-\newlabel{ch17:intro}{{16.1}{364}}
-\@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}{367}}
-\newlabel{ch17:subsec:gpu}{{16.2.2}{367}}
-\@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}{370}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.1}Collembola OpenCL Diffusion kernel}{370}}
-\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 }}{372}}
-\newlabel{ch17:fig:mior_perfs_collem}{{16.2}{372}}
-\@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{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.1}Execution mapping on GPU}{374}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.2}Data structures translation}{375}}
-\newlabel{ch17:subsec:datastructures}{{16.4.2.2}{375}}
-\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}{377}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.4}Main MIOR kernel}{377}}
-\newlabel{ch17:fig:mior_launcher}{{16.5}{378}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {16.5}MIOR simulation launcher}{378}}
-\@writefile{toc}{\contentsline {subsubsection}{\numberline {16.4.2.4}Termination detection}{378}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {16.4.3}Performance of MIOR implementations}{379}}
-\newlabel{ch17:subsec:miorexperiments}{{16.4.3}{379}}
-\@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{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.1}Analysis}{382}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.2}MAS execution workflow}{383}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {16.5.3}Implementation challenges}{384}}
-\@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}{396}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.1}Introduction}{396}}
+\newlabel{ch17:intro}{{17.1}{396}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.2}Running Agent-Based Simulations}{397}}
+\newlabel{ch17:ABM}{{17.2}{397}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.1}Multi-agent systems and parallelism}{397}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.2}MAS Implementation on GPU}{399}}
+\newlabel{ch17:subsec:gpu}{{17.2.2}{399}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.3}A first practical example}{400}}
+\newlabel{ch17:sec:1stmodel}{{17.3}{400}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.1}The Collembola model}{400}}
+\newlabel{ch17:subsec:collembolamodel}{{17.3.1}{400}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.1}{\ignorespaces Evolution algorithm of Collembola model\relax }}{401}}
+\newlabel{ch17:fig:collem_algorithm}{{17.1}{401}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.2}Collembola Implementation}{401}}
+\newlabel{ch17:listing:collembola-diffuse}{{17.1}{402}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.1}Collembola OpenCL Diffusion kernel}{402}}
+\newlabel{ch17:listing:collembola-reduc}{{17.2}{402}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.2}Collembola OpenCL reduction kernel}{402}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.3}Collembola performance}{403}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.2}{\ignorespaces Performance of the Collembola model on CPU and GPU\relax }}{404}}
+\newlabel{ch17:fig:mior_perfs_collem}{{17.2}{404}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.4}Second example}{404}}
+\newlabel{ch17:sec:2ndmodel}{{17.4}{404}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.1}The MIOR model}{404}}
+\newlabel{ch17:subsec:miormodel}{{17.4.1}{404}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {19}{\ignorespaces Evolution step of each Meta-Mior (microbial colony) agent\relax }}{405}}
+\newlabel{ch17:seqalgo}{{19}{405}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.2}MIOR Implementation}{405}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.3}{\ignorespaces Execution distribution retained on GPU\relax }}{406}}
+\newlabel{ch17:fig:gpu_distribution}{{17.3}{406}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.1}Execution mapping on GPU}{406}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.2}Data structures translation}{407}}
+\newlabel{ch17:subsec:datastructures}{{17.4.2.2}{407}}
+\newlabel{ch17:listing:mior_data_structures}{{17.3}{407}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.3}Main data structures used in a MIOR simulation}{407}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.4}{\ignorespaces Compact representation of the topology of a MIOR simulation\relax }}{408}}
+\newlabel{ch17:fig:csr_representation}{{17.4}{408}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.3}Critical resources access management}{408}}
+\newlabel{ch17:subsec:concurrency}{{17.4.2.3}{408}}
+\newlabel{ch17:listing:mior_kernels}{{17.4}{409}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.4}Main MIOR kernel}{409}}
+\newlabel{ch17:fig:mior_launcher}{{17.5}{410}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.5}MIOR simulation launcher}{410}}
+\@writefile{toc}{\contentsline {subsubsection}{\numberline {17.4.2.4}Termination detection}{410}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.4.3}Performance of MIOR implementations}{411}}
+\newlabel{ch17:subsec:miorexperiments}{{17.4.3}{411}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.5}{\ignorespaces CPU and GPU performance on a Tesla C1060 node\relax }}{412}}
+\newlabel{ch17:fig:mior_perfs_tesla}{{17.5}{412}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.6}{\ignorespaces CPU and GPU performance on a personal computer with a Geforce 8800GT\relax }}{413}}
+\newlabel{ch17:fig:mior_perfs_8800gt}{{17.6}{413}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.5}Analysis and recommendations}{413}}
+\newlabel{ch17:analysis}{{17.5}{413}}
+\@writefile{lof}{\contentsline {figure}{\numberline {17.7}{\ignorespaces Execution time of one multi-simulation kernel on the Tesla platform\relax }}{414}}
+\newlabel{ch17:fig:monokernel_graph}{{17.7}{414}}
+\@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 }}{414}}
+\newlabel{ch17:fig:multikernel_graph}{{17.8}{414}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.1}Analysis}{414}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.2}MAS execution workflow}{415}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.3}Implementation challenges}{416}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {17.5.4}MCSMA}{416}}
+\newlabel{ch17:Mcsma}{{17.5.4}{416}}
+\@writefile{toc}{\contentsline {section}{\numberline {17.6}Conclusion}{417}}
+\newlabel{ch17:conclusion}{{17.6}{417}}
+\@writefile{toc}{\contentsline {section}{Bibliography}{418}}
\@setckpt{Chapters/chapter17/ch17}{
-\setcounter{page}{390}
+\setcounter{page}{422}
\setcounter{equation}{0}
\setcounter{enumi}{3}
\setcounter{enumii}{0}
\setcounter{footnote}{1}
\setcounter{mpfootnote}{0}
\setcounter{part}{6}
-\setcounter{chapter}{16}
+\setcounter{chapter}{17}
\setcounter{section}{6}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{lstnumber}{21}
\setcounter{ContinuedFloat}{0}
\setcounter{AlgoLine}{17}
-\setcounter{algocfline}{16}
-\setcounter{algocfproc}{16}
-\setcounter{algocf}{16}
+\setcounter{algocfline}{19}
+\setcounter{algocfproc}{19}
+\setcounter{algocf}{19}
\setcounter{nprt@mantissa@digitsbefore}{0}
\setcounter{nprt@mantissa@digitsafter}{0}
\setcounter{nprt@exponent@digitsbefore}{0}
\@writefile{toc}{\author{Rapha\IeC {\"e}l Couturier}{}}
\@writefile{toc}{\author{Christophe Guyeux}{}}
\@writefile{loa}{\addvspace {10\p@ }}
-\@writefile{toc}{\contentsline {chapter}{\numberline {17}Pseudorandom Number Generator on GPU}{391}}
+\@writefile{toc}{\contentsline {chapter}{\numberline {18}Pseudorandom Number Generator on GPU}{423}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
-\newlabel{chapter18}{{17}{391}}
-\@writefile{toc}{\contentsline {section}{\numberline {17.1}Introduction}{391}}
-\@writefile{toc}{\contentsline {section}{\numberline {17.2}Basic Remindees}{393}}
-\newlabel{section:BASIC RECALLS}{{17.2}{393}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.1}A Short Presentation of Chaos}{393}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.2}On Devaney's Definition of Chaos}{393}}
-\newlabel{sec:dev}{{17.2.2}{393}}
-\newlabel{Devaney}{{17.1}{393}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.2.3}Chaotic iterations}{394}}
-\newlabel{subsection:Chaotic iterations}{{17.2.3}{394}}
-\newlabel{Chaotic iterations}{{2}{394}}
-\newlabel{eq:generalIC}{{17.4}{395}}
-\newlabel{equation Oplus}{{17.5}{395}}
-\@writefile{toc}{\contentsline {section}{\numberline {17.3}Toward Efficiency and Improvement for CI PRNG}{395}}
-\newlabel{sec:efficient PRNG}{{17.3}{395}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.1}First Efficient Implementation of a PRNG based on Chaotic Iterations}{395}}
-\newlabel{algo:seqCIPRNG}{{17.1}{395}}
-\@writefile{lol}{\contentsline {lstlisting}{\numberline {17.1}C code of the sequential PRNG based on chaotic iterations}{395}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.2}Efficient PRNGs based on Chaotic Iterations on GPU}{396}}
-\newlabel{sec:efficient PRNG gpu}{{17.3.2}{396}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.3}Naive Version for GPU}{396}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {17}{\ignorespaces Main kernel of the GPU ``naive'' version of the PRNG based on chaotic iterations\relax }}{397}}
-\newlabel{algo:gpu_kernel}{{17}{397}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.4}Improved Version for GPU}{397}}
-\newlabel{IR}{{18}{398}}
-\@writefile{loa}{\contentsline {algocf}{\numberline {18}{\ignorespaces Main kernel for the chaotic iterations based PRNG GPU efficient version\relax }}{398}}
-\newlabel{algo:gpu_kernel2}{{18}{398}}
-\@writefile{toc}{\contentsline {subsection}{\numberline {17.3.5}Chaos Evaluation of the Improved Version}{398}}
-\@writefile{toc}{\contentsline {section}{\numberline {17.4}Experiments}{399}}
-\newlabel{sec:experiments}{{17.4}{399}}
-\@writefile{toc}{\contentsline {section}{\numberline {17.5}Summary}{399}}
-\@writefile{lof}{\contentsline {figure}{\numberline {17.1}{\ignorespaces Quantity of pseudorandom numbers generated per second with the xorlike-based PRNG\relax }}{400}}
-\newlabel{fig:time_xorlike_gpu}{{17.1}{400}}
-\@writefile{toc}{\contentsline {section}{Bibliography}{401}}
+\newlabel{chapter18}{{18}{423}}
+\@writefile{toc}{\contentsline {section}{\numberline {18.1}Introduction}{423}}
+\@writefile{toc}{\contentsline {section}{\numberline {18.2}Basic Remindees}{425}}
+\newlabel{section:BASIC RECALLS}{{18.2}{425}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.2.1}A Short Presentation of Chaos}{425}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.2.2}On Devaney's Definition of Chaos}{425}}
+\newlabel{sec:dev}{{18.2.2}{425}}
+\newlabel{Devaney}{{18.1}{425}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.2.3}Chaotic iterations}{426}}
+\newlabel{subsection:Chaotic iterations}{{18.2.3}{426}}
+\newlabel{Chaotic iterations}{{2}{426}}
+\newlabel{eq:generalIC}{{18.4}{427}}
+\newlabel{equation Oplus}{{18.5}{427}}
+\@writefile{toc}{\contentsline {section}{\numberline {18.3}Toward Efficiency and Improvement for CI PRNG}{427}}
+\newlabel{sec:efficient PRNG}{{18.3}{427}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.3.1}First Efficient Implementation of a PRNG based on Chaotic Iterations}{427}}
+\newlabel{algo:seqCIPRNG}{{18.1}{427}}
+\@writefile{lol}{\contentsline {lstlisting}{\numberline {18.1}C code of the sequential PRNG based on chaotic iterations}{427}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.3.2}Efficient PRNGs based on Chaotic Iterations on GPU}{428}}
+\newlabel{sec:efficient PRNG gpu}{{18.3.2}{428}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.3.3}Naive Version for GPU}{428}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {20}{\ignorespaces Main kernel of the GPU ``naive'' version of the PRNG based on chaotic iterations\relax }}{429}}
+\newlabel{algo:gpu_kernel}{{20}{429}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.3.4}Improved Version for GPU}{429}}
+\newlabel{IR}{{21}{430}}
+\@writefile{loa}{\contentsline {algocf}{\numberline {21}{\ignorespaces Main kernel for the chaotic iterations based PRNG GPU efficient version\relax }}{430}}
+\newlabel{algo:gpu_kernel2}{{21}{430}}
+\@writefile{toc}{\contentsline {subsection}{\numberline {18.3.5}Chaos Evaluation of the Improved Version}{430}}
+\@writefile{toc}{\contentsline {section}{\numberline {18.4}Experiments}{431}}
+\newlabel{sec:experiments}{{18.4}{431}}
+\@writefile{toc}{\contentsline {section}{\numberline {18.5}Summary}{431}}
+\@writefile{lof}{\contentsline {figure}{\numberline {18.1}{\ignorespaces Quantity of pseudorandom numbers generated per second with the xorlike-based PRNG\relax }}{432}}
+\newlabel{fig:time_xorlike_gpu}{{18.1}{432}}
+\@writefile{toc}{\contentsline {section}{Bibliography}{433}}
\@setckpt{Chapters/chapter18/ch18}{
-\setcounter{page}{403}
+\setcounter{page}{435}
\setcounter{equation}{5}
\setcounter{enumi}{3}
\setcounter{enumii}{0}
\setcounter{footnote}{2}
\setcounter{mpfootnote}{0}
\setcounter{part}{6}
-\setcounter{chapter}{17}
+\setcounter{chapter}{18}
\setcounter{section}{5}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{lstnumber}{15}
\setcounter{ContinuedFloat}{0}
\setcounter{AlgoLine}{14}
-\setcounter{algocfline}{18}
-\setcounter{algocfproc}{18}
-\setcounter{algocf}{18}
+\setcounter{algocfline}{21}
+\setcounter{algocfproc}{21}
+\setcounter{algocf}{21}
\setcounter{nprt@mantissa@digitsbefore}{0}
\setcounter{nprt@mantissa@digitsafter}{0}
\setcounter{nprt@exponent@digitsbefore}{0}
label=#1, caption={#2}}
}{}
-\def\N{$\mathbb N$ }
+%\def\N{$\mathbb N$ }
\def\R{$\mathbb R$ }
\def\Z{$\mathbb Z$ }
\def\Q{$\mathbb Q$ }