\relax \citation{pacheco_introduction_2011} \@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 5: }{\bf \uppercase {Parallelization Using MESSAGE PASSING INTERFACE}}}{29}{}\protected@file@percent } \newlabel{ch:MPI}{{5}{29}} \@writefile{toc}{\contentsline {section}{\numberline {5.1}\bf Introduction to MPI Utilization for Attack and Compliance Graph Generation}{29}{}\protected@file@percent } \@writefile{toc}{\contentsline {section}{\numberline {5.2}\bf Necessary Components}{29}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}\it Serialization}{29}{}\protected@file@percent } \citation{li_concurrency_2019} \citation{9150145} \citation{7087377} \@writefile{toc}{\contentsline {section}{\numberline {5.3}\bf Tasking Approach}{30}{}\protected@file@percent } \newlabel{sec:Tasking-Approach}{{5.3}{30}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}\it Introduction to the Tasking Approach}{30}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Task Overview of the Attack and Compliance Graph Generation Process\relax }}{31}{}\protected@file@percent } \newlabel{fig:tasks}{{5.1}{31}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}\it Algorithm Design}{32}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Node Allocation for each Task\relax }}{33}{}\protected@file@percent } \newlabel{fig:node-alloc}{{5.2}{33}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.1}Communication Structure}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.2}Task 0}{34}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.3}Task 1}{34}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Data Distribution of Task One\relax }}{35}{}\protected@file@percent } \newlabel{fig:Task1-Data-Dist}{{5.3}{35}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.4}Task 2}{35}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Communication From Task 1 to Task 2 when the Number of Nodes Allocated is Equal\relax }}{36}{}\protected@file@percent } \newlabel{fig:Task1-Case1}{{5.4}{36}} \@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Communication From Task 1 to Task 2 when Task 1 Has More Nodes Allocated\relax }}{37}{}\protected@file@percent } \newlabel{fig:Task1-Case2}{{5.5}{37}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.5}Task 3}{37}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.6}Task 4 and Task 5}{37}{}\protected@file@percent } \newlabel{sec:T4T5}{{5.3.2.6}{37}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.3.2.7}MPI Tags}{38}{}\protected@file@percent } \newlabel{sec:tasking-tag}{{5.3.2.7}{38}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations and Use Cases}{38}{}\protected@file@percent } \newlabel{sec:Task-perf-expec}{{5.3.3}{38}} \@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach\relax }}{39}{}\protected@file@percent } \newlabel{table:tasking-tag}{{5.1}{39}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}\it Results}{39}{}\protected@file@percent } \newlabel{sec:Tasking-Results}{{5.3.4}{39}} \citation{li_concurrency_2019} \@writefile{toc}{\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{40}{}\protected@file@percent } \newlabel{sec:Subgraphing_Approach}{{5.4}{40}} \@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing\relax }}{41}{}\protected@file@percent } \newlabel{fig:NA-exp}{{5.6}{41}} \@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size\relax }}{41}{}\protected@file@percent } \newlabel{fig:Spd-Eff-Task}{{5.7}{41}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{42}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{42}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Example Graph Using the MPI Subgraphing Approach\relax }}{43}{}\protected@file@percent } \newlabel{fig:subg}{{5.8}{43}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2.1}Worker Nodes}{43}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2.2}Root Node}{44}{}\protected@file@percent } \@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces Frontier Merging and Data Distribution Process\relax }}{45}{}\protected@file@percent } \newlabel{fig:front-merg}{{5.9}{45}} \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2.3}Database Node}{45}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2.4}MPI Tags}{45}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations and Use Cases}{45}{}\protected@file@percent } \newlabel{sec:perf_expec_subg}{{5.4.3}{45}} \citation{lawrence_livermore_national_laboratory_mpip_nodate} \@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces MPI Tags for the MPI Subgraphing Approach\relax }}{46}{}\protected@file@percent } \newlabel{table:subg-tag}{{5.2}{46}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}\it Results}{46}{}\protected@file@percent } \newlabel{sec:Subgraphing-Results}{{5.4.4}{46}} \@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces First iteration results of MPI Subgraphing in terms of Runtime\relax }}{47}{}\protected@file@percent } \newlabel{fig:Subg_base}{{5.10}{47}} \@writefile{lof}{\contentsline {figure}{\numberline {5.11}{\ignorespaces First iteration results of MPI Subgraphing in terms of Speedup and Efficiency\relax }}{48}{}\protected@file@percent } \newlabel{fig:Subg_SE}{{5.11}{48}} \@writefile{lof}{\contentsline {figure}{\numberline {5.12}{\ignorespaces Modified Subgraphing Example Graph with Two New Edges\relax }}{50}{}\protected@file@percent } \newlabel{fig:subg_mod}{{5.12}{50}} \@writefile{lof}{\contentsline {figure}{\numberline {5.13}{\ignorespaces Duplicate States Explored vs Actual Number of States for the 1-4 Service Tests\relax }}{51}{}\protected@file@percent } \newlabel{fig:subg_dup}{{5.13}{51}} \@writefile{lof}{\contentsline {figure}{\numberline {5.14}{\ignorespaces Speedup and Efficiency of MPI Subgraphing when using a DHT\relax }}{53}{}\protected@file@percent } \newlabel{fig:subg_DHT_Spd}{{5.14}{53}} \@writefile{lof}{\contentsline {figure}{\numberline {5.15}{\ignorespaces Runtime of MPI Subgraphing when using a DHT vs not using a DHT\relax }}{54}{}\protected@file@percent } \newlabel{fig:subg_DHT_base}{{5.15}{54}} \@setckpt{Chapter5}{ \setcounter{page}{55} \setcounter{equation}{0} \setcounter{enumi}{4} \setcounter{enumii}{0} \setcounter{enumiii}{0} \setcounter{enumiv}{0} \setcounter{footnote}{0} \setcounter{mpfootnote}{0} \setcounter{part}{0} \setcounter{chapter}{5} \setcounter{section}{4} \setcounter{subsection}{4} \setcounter{subsubsection}{0} \setcounter{paragraph}{0} \setcounter{subparagraph}{0} \setcounter{figure}{15} \setcounter{table}{2} \setcounter{caption@flags}{2} \setcounter{continuedfloat}{0} \setcounter{subfigure}{0} \setcounter{subtable}{0} \setcounter{float@type}{8} \setcounter{algorithm}{0} \setcounter{ALG@line}{0} \setcounter{ALG@rem}{0} \setcounter{ALG@nested}{0} \setcounter{ALG@Lnr}{2} \setcounter{ALG@blocknr}{10} \setcounter{ALG@storecount}{0} \setcounter{ALG@tmpcounter}{0} \setcounter{lofdepth}{1} \setcounter{lotdepth}{1} }