Intro, Alg Design, and Worker Nodes of Subgraphing Approach
This commit is contained in:
parent
da3bc1f2bf
commit
4cdb462a9f
@ -1,13 +1,13 @@
|
||||
\relax
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{45}{}\protected@file@percent }
|
||||
\newlabel{App:A}{{A}{45}}
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{46}{}\protected@file@percent }
|
||||
\newlabel{App:B}{{B}{46}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{46}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{46}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{A Sub-subsection in an Appendix}{46}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{49}{}\protected@file@percent }
|
||||
\newlabel{App:A}{{A}{49}}
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{50}{}\protected@file@percent }
|
||||
\newlabel{App:B}{{B}{50}}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{50}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{50}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{A Sub-subsection in an Appendix}{50}{}\protected@file@percent }
|
||||
\@setckpt{Appendices}{
|
||||
\setcounter{page}{47}
|
||||
\setcounter{page}{51}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{4}
|
||||
\setcounter{enumii}{0}
|
||||
|
||||
29
Chapter5.aux
29
Chapter5.aux
@ -8,6 +8,7 @@
|
||||
\citation{7087377}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}\it Data Consistency}{29}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5.3}\bf Tasking Approach}{29}{}\protected@file@percent }
|
||||
\newlabel{sec:Tasking-Approach}{{5.3}{29}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}\it Introduction to the Tasking Approach}{29}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}\it Algorithm Design}{29}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Task Overview of the Attack Graph Generation Process\relax }}{30}{}\protected@file@percent }
|
||||
@ -26,21 +27,29 @@
|
||||
\newlabel{fig:Task1-Case2}{{5.5}{35}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Task 3}{35}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Task 4 and Task 5}{35}{}\protected@file@percent }
|
||||
\newlabel{sec:T4T5}{{5.3.2}{35}}
|
||||
\newlabel{table:tasking-tag}{{\caption@xref {table:tasking-tag}{ on input line 104}}{36}}
|
||||
\@writefile{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach\relax }}{36}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{MPI Tags}{36}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{37}{}\protected@file@percent }
|
||||
\newlabel{Task-perf-expec}{{5.3.3}{37}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}\it Results}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Communication Structure}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Worker Nodes}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Root Node}{37}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Database Node}{38}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{38}{}\protected@file@percent }
|
||||
\citation{li_concurrency_2019}
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{38}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing\relax }}{39}{}\protected@file@percent }
|
||||
\newlabel{fig:NA-exp}{{5.6}{39}}
|
||||
\@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 }}{39}{}\protected@file@percent }
|
||||
\newlabel{fig:Spd-Eff-Task}{{5.7}{39}}
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{40}{}\protected@file@percent }
|
||||
\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Example Graph Using the MPI Subgraphing Approach\relax }}{41}{}\protected@file@percent }
|
||||
\newlabel{fig:subg}{{5.8}{41}}
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Worker Nodes}{41}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Root Node}{41}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsubsection}{Database Node}{42}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{42}{}\protected@file@percent }
|
||||
\@setckpt{Chapter5}{
|
||||
\setcounter{page}{39}
|
||||
\setcounter{page}{43}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{4}
|
||||
\setcounter{enumii}{0}
|
||||
@ -55,7 +64,7 @@
|
||||
\setcounter{subsubsection}{0}
|
||||
\setcounter{paragraph}{0}
|
||||
\setcounter{subparagraph}{0}
|
||||
\setcounter{figure}{5}
|
||||
\setcounter{figure}{8}
|
||||
\setcounter{table}{1}
|
||||
\setcounter{caption@flags}{0}
|
||||
\setcounter{continuedfloat}{0}
|
||||
|
||||
38
Chapter5.tex
38
Chapter5.tex
@ -95,7 +95,7 @@ Each node in Task 2 iterates through the received partial applicable exploit lis
|
||||
\TUsubsubsection{Task 3}
|
||||
Task 3 is performed only by the root node, and no division of work is necessary. The root node will continuously check for new states until the Task 2 finalize signal is detected. This task consists of setting the new state's ID, adding it to the frontier, adding its information to the instance, and inserting information into the hash map. When the root node has processed all states and has received the Task 2 finalize signal, it will complete Task 3 by sending the instance and/or frontier to Task 4 and/or 5, respectively if applicable, then proceeds to Task 0.
|
||||
|
||||
\TUsubsubsection{Task 4 and Task 5}
|
||||
\TUsubsubsection{Task 4 and Task 5} \label{sec:T4T5}
|
||||
Intermediate database operations, though not frequent and may never occur for small graphs, are lengthy and time-consuming when they do occur. As discussed in Section \ref{sec:db-stor}, the two main memory consumers are the frontier and the instance, both of which are contained by the root node. Since the database storage requests are blocking, the pipeline would halt for a lengthy period of time while waiting for the root node to finish potentially two large storages. Tasks 4 and 5 work to alleviate the stall by executing independently of the regular pipeline execution flow. Since Tasks 4 and 5 do not send any data, no other tasks must wait for these tasks to complete. The root node can then asynchronously send the frontier and instance to the appropriate nodes as needed, clear its memory, and continue execution without delay. After initial testing, it was determined that the communication cost of the asynchronous sending of data for Tasks 4 and 5 is less than the time requirement of a database storage operation performed by the root node.
|
||||
|
||||
\TUsubsubsection{MPI Tags}
|
||||
@ -127,18 +127,50 @@ To ensure that the intended message is received by each node, the MPI message en
|
||||
\caption{MPI Tags for the MPI Tasking Approach}
|
||||
\end{table}
|
||||
|
||||
\TUsubsection{Performance Expectations}
|
||||
\TUsubsection{Performance Expectations} \label{Task-perf-expec}
|
||||
Due to the amount of communication between nodes to distribute the necessary data through all stages of the tasking pipeline, this approach is not expected to outperform the serial approach in all cases. This tasking approach was specifically designed to reduce the computation time when the generation of each individual state increases in time. This approach does not offer any guarantees of processing through the frontier at an increased rate; it's main objective is to distribute the workload of individual state generation. As discussed in Section \ref{sec:Intro}, the amount of entries in the National Vulnerability database and any custom vulnerability testing to ensure adequate examination of all assets in the network sums to large number of exploits in the exploit list. Likewise for compliance graphs and compliance examinations, Section \ref{sec:CG-diff} discussed that the number of compliance checks for SOX, HIPAA, GDPR, PCI DSS, and/or any other regulatory compliance also sums to a large number of exploits in the exploit list. Since the generation of each state is largely dependent on the number of exploits present in the exploit list, this approach is best-suited for when the exploit list grows in size.
|
||||
|
||||
\TUsubsection{Results}
|
||||
A series of tests were conducted on the platform described at the beginning of Section \ref{sec:test-platform}, and results were collected in regards to the effect of the MPI Tasking approach on increasing sizes of exploit lists for a varying number of nodes. The exploit list initially began with 6 items, and each test scaled the number of exploits by a factor of 2. The final test was with an exploit list with 49,512 entries. If all of the items in these exploit lists were applicable, the runtime would be too great for feasible testing due to the state space explosion. To prevent state-space explosion but still gather valid results, each exploit list in the tests contained 6 exploits that could be applicable, and all remaining exploits were not applicable. The exploits were created in a fashion similar to that seen in Figure \ref{fig:NA-exp}. By creating a multitude of not applicable exploits, testing can safely be conducted by ensuring state space explosion would not occur while still forcing the Tasking Approach to examine all possible exploits.
|
||||
|
||||
The results of the Tasking Approach can be seen in Figure \ref{fig:Spd-Eff-Task}. In terms of speedup, when the number of entries in the exploit list is small, the serial approach has better performance. This is expected due to the communication cost requiring more time than it does to generate a state, as discussed in Section \ref{sec:Task-perf-expec}. However, as the number of items in the exploit list increase, the Tasking Approach quickly begins to outperform the serial approach. It is notable that even when the tasking pipeline is not fully saturated (when there are less compute nodes assigned than tasks), the performance is still approximately equal to that of the serial approach. The other noticeable feature is that as more compute nodes are assigned, the speedup continues to increase.
|
||||
|
||||
In terms of efficiency, 2 compute nodes offer the greatest value since the speedup using 2 compute nodes is approximately 1.0 as the exploit list size increases. While the 2 compute node option does offer the greatest efficiency, it does not provide any speedup on any of the testing cases conducted. Similarly, testing with 3, 4, and 5 compute nodes were relatively high compared to the "fully saturated pipeline" testing counterparts, but they also did not provide any speedup on any of the testing cases conducted. The results also demonstrate that an odd number of compute nodes in a fully saturated pipeline has better efficiency that an even number of compute nodes. When referring to Figure \ref{fig:node-alloc}, when there is an odd number number of compute nodes, Task 1 is allocated more nodes than Task 2. In the testing conducted, Task 1 was responsible for iterating through an increased size of the exploit list, so more nodes is advantageous in distributing the workload. However, since many exploits were not applicable, Task 2 had a lower workload where only 6 exploits could be applicable. This will be further elaborated upon in Section \ref{sec:FW}, but it is expected that efficiency will increase for real networks, since nodes in Task 2 will see a realistic workload.
|
||||
|
||||
\begin{figure}[htp]
|
||||
\centering
|
||||
\includegraphics[scale=0.5]{"./Chapter5_img/NA.png"}
|
||||
\vspace{.2truein} \centerline{}
|
||||
\caption{Example of a Not Applicable Exploit for the MPI Tasking Testing}
|
||||
\label{fig:NA-exp}
|
||||
\end{figure}
|
||||
|
||||
\begin{figure}
|
||||
\centering
|
||||
\includegraphics[width=\linewidth]{"./Chapter5_img/Speedup-Esize-Tasking.png"}
|
||||
\includegraphics[width=\linewidth]{"./Chapter5_img/Eff-Esize-Tasking.png"}
|
||||
\caption{Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}
|
||||
\label{fig:Spd-Eff-Task}
|
||||
\end{figure}
|
||||
|
||||
\TUsection{Subgraphing Approach}
|
||||
\TUsubsection{Introduction to the Subgraphing Approach}
|
||||
As opposed to the Tasking Approach described in Section \ref{sec:Tasking-Approach}, this Section introduces the Subgraphing Approach as a means of reducing runtime by frontier distribution though subgraphing. Section \ref{sec:db-stor} discusses that the frontier is expanded at a rate faster than it can process. This approach attempts to distribute the frontier by assigning MPI nodes a starting state, and each node will generate a subgraph up to a designated depth-limit, where each node will then return their generated subgraph to a merging process. The author of \cite{li_concurrency_2019} presented an alternative method of frontier processing by utilizing OpenMP on a shared-memory system to assign each thread an individual state to explore that would then pass through a critical section. This approach is intended for a distributed system, and additionally differs in that each node will explore multiple states to form a subgraph, rather than exploring one individual state. This approach was implemented with two versions, and both collected results to draw conclusions in regards to speedup, efficiency, and scalability for attack graph and compliance graph generation.
|
||||
|
||||
\TUsubsection{Algorithm Design}
|
||||
\TUsubsubsection{Communication Structure}
|
||||
The design of the subgraphing approach is devised of three main components: worker nodes, the root node, and a database node. The original design did not include a database node, but testing through the implementation of the tasking approach discussed in \ref{sec:T4T5} led to the inclusion of a dedicated database node. The overall design is predicated on the root node distributing data to all worker nodes, and merging the worker nodes' subgraphs. Figure \ref{fig:subg} displays an example graph that utilizes three worker nodes with a depth limit of 3. Each worker node corresponds to a different node color in the figure. Each worker node explored a varying number of states, but did not proceed to explore a depth that exceeded the specified depth limit of 3. The final cluster of four nodes at the bottom of the graph represents one of the three worker node exploring the final states, while the other two nodes wait for further instruction. The following three subsections describe each component in further detail.
|
||||
|
||||
\begin{figure}[htp]
|
||||
\centering
|
||||
\includegraphics[scale=0.3]{"./Chapter5_img/subgraphing.drawio.png"}
|
||||
\vspace{.2truein} \centerline{}
|
||||
\caption{Example Graph Using the MPI Subgraphing Approach}
|
||||
\label{fig:subg}
|
||||
\end{figure}
|
||||
|
||||
\TUsubsubsection{Worker Nodes}
|
||||
Each worker node will start each iteration of its while loop by checking for the finalize message or for a new state to receive. If no message is available to receive, it will continue to wait until one is available. Each worker node will continue this process until the finalize message is received, where it will exit the generation process. When a worker node receives a new state, it will follow the original graph generation process with a modification in the exploration approach. Since other nodes will also be generating subgraphs, using a breadth-first search is not the ideal option since the amount of duplicate work would be increased. Instead, the graph generation will utilize a depth-first search approach, where each node will explore up to a specified depth level. This depth level is specified before the generation process begins, so additional tuning can be performed as desired. After either the depth limit is reached, or no other states are reachable to be explored, the node will return its local frontier (if the node still has unexplored states it did not explore) and its generated subgraph. The node will then proceed to wait for a new message from the root node.
|
||||
|
||||
\TUsubsubsection{Root Node}
|
||||
\TUsubsubsection{Database Node}
|
||||
|
||||
|
||||
BIN
Chapter5_img/Eff-Esize-Tasking.png
Normal file
BIN
Chapter5_img/Eff-Esize-Tasking.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 164 KiB |
BIN
Chapter5_img/NA.png
Normal file
BIN
Chapter5_img/NA.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 7.7 KiB |
BIN
Chapter5_img/Speedup-Esize-Tasking.png
Normal file
BIN
Chapter5_img/Speedup-Esize-Tasking.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 184 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 62 KiB |
36
Chapter6.aux
36
Chapter6.aux
@ -1,23 +1,23 @@
|
||||
\relax
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.1}\bf Small Networks}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}\it Results}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.2}\bf Large Networks}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}\it Results}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}\it Results}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{39}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}\it Results}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{40}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.1}\bf Small Networks}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.2}\it Results}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.2}\bf Large Networks}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.2}\it Results}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.2}\it Results}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{43}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{44}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.2}\it Results}{44}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{44}{}\protected@file@percent }
|
||||
\@setckpt{Chapter6}{
|
||||
\setcounter{page}{41}
|
||||
\setcounter{page}{45}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{4}
|
||||
\setcounter{enumii}{0}
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
\relax
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{41}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7.1}\bf Future Work}{41}{}\protected@file@percent }
|
||||
\newlabel{sec:FW}{{7.1}{41}}
|
||||
\@writefile{toc}{\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{45}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\numberline {7.1}\bf Future Work}{45}{}\protected@file@percent }
|
||||
\newlabel{sec:FW}{{7.1}{45}}
|
||||
\@setckpt{Chapter7}{
|
||||
\setcounter{page}{42}
|
||||
\setcounter{page}{46}
|
||||
\setcounter{equation}{0}
|
||||
\setcounter{enumi}{4}
|
||||
\setcounter{enumii}{0}
|
||||
|
||||
@ -32,9 +32,9 @@
|
||||
\bibcite{cook_rage_2018}{9}
|
||||
\bibcite{berry_graph_2007}{10}
|
||||
\@writefile{toc}{{\hfill \ }}
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{42}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{46}{}\protected@file@percent }
|
||||
\@writefile{toc}{\addvspace {10pt}}
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{42}{}\protected@file@percent }
|
||||
\@writefile{toc}{\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{46}{}\protected@file@percent }
|
||||
\@writefile{toc}{{\hfill \ }}
|
||||
\bibcite{ainsworth_graph_2016}{11}
|
||||
\bibcite{yao_efficient_2018}{12}
|
||||
@ -54,4 +54,4 @@
|
||||
\bibcite{louthan_hybrid_2011}{26}
|
||||
\bibstyle{ieeetr}
|
||||
\@input{Appendices.aux}
|
||||
\gdef \@abspage@last{56}
|
||||
\gdef \@abspage@last{60}
|
||||
|
||||
@ -11,3 +11,6 @@
|
||||
\contentsline {figure}{\numberline {5.3}{\ignorespaces Data Distribution of Task One\relax }}{33}{}%
|
||||
\contentsline {figure}{\numberline {5.4}{\ignorespaces Communication From Task 1 to Task 2 when the Number of Nodes Allocated is Equal\relax }}{34}{}%
|
||||
\contentsline {figure}{\numberline {5.5}{\ignorespaces Communication From Task 1 to Task 2 when Task 1 Has More Nodes Allocated\relax }}{35}{}%
|
||||
\contentsline {figure}{\numberline {5.6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing\relax }}{39}{}%
|
||||
\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 }}{39}{}%
|
||||
\contentsline {figure}{\numberline {5.8}{\ignorespaces Example Graph Using the MPI Subgraphing Approach\relax }}{41}{}%
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.2.14) 20 MAR 2022 15:52
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.2.14) 20 MAR 2022 21:11
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@ -377,39 +377,69 @@ LaTeX Warning: Reference `table:tasking-tag' on page 36 undefined on input line
|
||||
LaTeX Warning: No positions in optional float specifier.
|
||||
Default added (so using `tbp') on input line 104.
|
||||
|
||||
[36]) [37] [38]
|
||||
[36] [37]
|
||||
|
||||
LaTeX Warning: Reference `sec:Task-perf-expec' on page 38 undefined on input li
|
||||
ne 136.
|
||||
|
||||
<./Chapter5_img/NA.png, id=185, 369.38pt x 118.4425pt>
|
||||
File: ./Chapter5_img/NA.png Graphic file (type png)
|
||||
<use ./Chapter5_img/NA.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/NA.png used on input line 142.
|
||||
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
|
||||
<./Chapter5_img/Speedup-Esize-Tasking.png, id=186, 620.208pt x 321.93pt>
|
||||
File: ./Chapter5_img/Speedup-Esize-Tasking.png Graphic file (type png)
|
||||
<use ./Chapter5_img/Speedup-Esize-Tasking.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/Speedup-Esize-Tasking.png used on inpu
|
||||
t line 150.
|
||||
(pdftex.def) Requested size: 469.75499pt x 243.83916pt.
|
||||
<./Chapter5_img/Eff-Esize-Tasking.png, id=187, 620.208pt x 322.149pt>
|
||||
File: ./Chapter5_img/Eff-Esize-Tasking.png Graphic file (type png)
|
||||
<use ./Chapter5_img/Eff-Esize-Tasking.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/Eff-Esize-Tasking.png used on input li
|
||||
ne 151.
|
||||
(pdftex.def) Requested size: 469.75499pt x 244.00504pt.
|
||||
[38] [39 <./Chapter5_img/NA.png> <./Chapter5_img/Speedup-Esize-Tasking.png> <./
|
||||
Chapter5_img/Eff-Esize-Tasking.png>]
|
||||
<./Chapter5_img/subgraphing.drawio.png, id=197, 824.07875pt x 743.77875pt>
|
||||
File: ./Chapter5_img/subgraphing.drawio.png Graphic file (type png)
|
||||
<use ./Chapter5_img/subgraphing.drawio.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/subgraphing.drawio.png used on input l
|
||||
ine 165.
|
||||
(pdftex.def) Requested size: 247.22552pt x 223.13535pt.
|
||||
[40] [41 <./Chapter5_img/subgraphing.drawio.png>]) [42]
|
||||
\openout2 = `Chapter6.aux'.
|
||||
|
||||
(./Chapter6.tex
|
||||
CHAPTER 6.
|
||||
[39
|
||||
[43
|
||||
|
||||
|
||||
|
||||
|
||||
]) [40]
|
||||
]) [44]
|
||||
\openout2 = `Chapter7.aux'.
|
||||
|
||||
(./Chapter7.tex
|
||||
CHAPTER 7.
|
||||
) [41
|
||||
) [45
|
||||
|
||||
|
||||
|
||||
|
||||
] (./Schrick-Noah_MS-Thesis.bbl [42
|
||||
] (./Schrick-Noah_MS-Thesis.bbl [46
|
||||
|
||||
|
||||
|
||||
] [43])
|
||||
] [47])
|
||||
\c@appendixno=\count273
|
||||
[44]
|
||||
[48]
|
||||
\openout2 = `Appendices.aux'.
|
||||
|
||||
(./Appendices.tex [45
|
||||
(./Appendices.tex [49
|
||||
|
||||
])
|
||||
[46] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux)
|
||||
[50] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux)
|
||||
(./Chapter3.aux) (./Chapter4.aux) (./Chapter5.aux) (./Chapter6.aux)
|
||||
(./Chapter7.aux) (./Appendices.aux))
|
||||
|
||||
@ -426,13 +456,13 @@ LaTeX Warning: There were undefined references.
|
||||
### semi simple group (level 1) entered at line 52 (\begingroup)
|
||||
### bottom level
|
||||
Here is how much of TeX's memory you used:
|
||||
3599 strings out of 478353
|
||||
67673 string characters out of 5854635
|
||||
369698 words of memory out of 5000000
|
||||
21648 multiletter control sequences out of 15000+600000
|
||||
3638 strings out of 478353
|
||||
68975 string characters out of 5854635
|
||||
369768 words of memory out of 5000000
|
||||
21683 multiletter control sequences out of 15000+600000
|
||||
407326 words of font info for 40 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
67i,8n,77p,1398b,1420s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
67i,8n,77p,1398b,1431s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
{/usr/share/texmf-dist/fonts/enc/dvips/cm-super/cm-super-ts1.en
|
||||
c}</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmbx12.pfb></usr/share/
|
||||
texmf-dist/fonts/type1/public/amsfonts/cm/cmmi12.pfb></usr/share/texmf-dist/fon
|
||||
@ -441,10 +471,10 @@ ts/type1/public/amsfonts/cm/cmr12.pfb></usr/share/texmf-dist/fonts/type1/public
|
||||
y10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmti12.pfb></usr/
|
||||
share/texmf-dist/fonts/type1/public/amsfonts/cm/cmtt12.pfb></usr/share/texmf-di
|
||||
st/fonts/type1/public/cm-super/sfrm1200.pfb>
|
||||
Output written on Schrick-Noah_MS-Thesis.pdf (56 pages, 822041 bytes).
|
||||
Output written on Schrick-Noah_MS-Thesis.pdf (60 pages, 1168713 bytes).
|
||||
PDF statistics:
|
||||
253 PDF objects out of 1000 (max. 8388607)
|
||||
152 compressed objects within 2 object streams
|
||||
272 PDF objects out of 1000 (max. 8388607)
|
||||
160 compressed objects within 2 object streams
|
||||
0 named destinations out of 1000 (max. 500000)
|
||||
71 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
91 words of extra memory for PDF output out of 10000 (max. 10000000)
|
||||
|
||||
|
||||
Binary file not shown.
@ -58,40 +58,39 @@
|
||||
\contentsline {subsubsection}{MPI Tags}{36}{}%
|
||||
\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations}{37}{}%
|
||||
\contentsline {subsection}{\numberline {5.3.4}\it Results}{37}{}%
|
||||
\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{37}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{37}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{37}{}%
|
||||
\contentsline {subsubsection}{Communication Structure}{37}{}%
|
||||
\contentsline {subsubsection}{Worker Nodes}{37}{}%
|
||||
\contentsline {subsubsection}{Root Node}{37}{}%
|
||||
\contentsline {subsubsection}{Database Node}{38}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{38}{}%
|
||||
\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{39}{}%
|
||||
\contentsline {section}{\numberline {6.1}\bf Small Networks}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.2}\it Results}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{39}{}%
|
||||
\contentsline {section}{\numberline {6.2}\bf Large Networks}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.2}\it Results}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{39}{}%
|
||||
\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.2}\it Results}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{39}{}%
|
||||
\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{39}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{40}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.2}\it Results}{40}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{40}{}%
|
||||
\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{41}{}%
|
||||
\contentsline {section}{\numberline {7.1}\bf Future Work}{41}{}%
|
||||
\contentsline {section}{\numberline {5.4}\bf Subgraphing Approach}{38}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.1}\it Introduction to the Subgraphing Approach}{40}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.2}\it Algorithm Design}{40}{}%
|
||||
\contentsline {subsubsection}{Worker Nodes}{41}{}%
|
||||
\contentsline {subsubsection}{Root Node}{41}{}%
|
||||
\contentsline {subsubsection}{Database Node}{42}{}%
|
||||
\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations}{42}{}%
|
||||
\contentsline {chapter}{\numberline {CHAPTER 6: }{\bf \uppercase {PERFORMANCE ANALYSIS}}}{43}{}%
|
||||
\contentsline {section}{\numberline {6.1}\bf Small Networks}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.1}\it Test Information}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.2}\it Results}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.1.3}\it Analysis}{43}{}%
|
||||
\contentsline {section}{\numberline {6.2}\bf Large Networks}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.1}\it Test Information}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.2}\it Results}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.2.3}\it Analysis}{43}{}%
|
||||
\contentsline {section}{\numberline {6.3}\bf Large Exploit Lists}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.1}\it Test Information}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.2}\it Results}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.3.3}\it Analysis}{43}{}%
|
||||
\contentsline {section}{\numberline {6.4}\bf Distributed Hash Tables}{43}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.1}\it Test Information}{44}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.2}\it Results}{44}{}%
|
||||
\contentsline {subsection}{\numberline {6.4.3}\it Analysis}{44}{}%
|
||||
\contentsline {chapter}{\numberline {CHAPTER 7: }{\bf \uppercase {CONCLUSIONS AND FUTURE WORKS}}}{45}{}%
|
||||
\contentsline {section}{\numberline {7.1}\bf Future Work}{45}{}%
|
||||
{\hfill \ }
|
||||
\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{42}{}%
|
||||
\contentsline {section}{\hspace {-\parindent }NOMENCLATURE}{46}{}%
|
||||
\addvspace {10pt}
|
||||
\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{42}{}%
|
||||
\contentsline {section}{\hspace {-\parindent }BIBLIOGRAPHY}{46}{}%
|
||||
{\hfill \ }
|
||||
\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{45}{}%
|
||||
\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{46}{}%
|
||||
\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{46}{}%
|
||||
\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{46}{}%
|
||||
\contentsline {subsubsection}{A Sub-subsection in an Appendix}{46}{}%
|
||||
\contentsline {section}{\hspace {-\parindent }APPENDIX A:\ \ {\bf \uppercase {THE FIRST APPENDIX}} }{49}{}%
|
||||
\contentsline {section}{\hspace {-\parindent }APPENDIX B:\ \ {\bf \uppercase {THE SECOND APPENDIX}} }{50}{}%
|
||||
\contentsline {section}{\numberline {B.1}\bf A Heading in an Appendix}{50}{}%
|
||||
\contentsline {subsection}{\numberline {B.1.1}\it A Subheading in an Appendix}{50}{}%
|
||||
\contentsline {subsubsection}{A Sub-subsection in an Appendix}{50}{}%
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user