Chapter 6 Editing
@ -22,29 +22,29 @@
|
||||
@misc{noauthor_boost_nodate,
|
||||
title = {The {Boost} {Graph} {Library}, vers. 1.75.0},
|
||||
author = {Siek, Jeremy and Lee, Lie-Quan and Lumsdaine, Andrew},
|
||||
url = {https://www.boost.org/doc/libs/1_75_0/libs/graph/doc/index.html},
|
||||
note = {{https://www.boost.org/doc/libs/1$\_$75$\_$0/libs/graph/doc/index.html}},
|
||||
}
|
||||
|
||||
@misc{Graphviz,
|
||||
title = {{DOT} {Language}},
|
||||
author = {{The} {Graphviz} {Authors}},
|
||||
url = {https://graphviz.org/doc/info/lang.html}
|
||||
author = {{The Graphviz Authors}},
|
||||
note = {https://graphviz.org/doc/info/lang.html}
|
||||
}
|
||||
|
||||
@misc{noauthor_parallel_nodate,
|
||||
title = {Parallel {BGL} {Parallel} {Boost} {Graph} {Library} - 1.75.0},
|
||||
authors = {Edmonds, Nick and Gregor, Douglas and Lumsdaine, Andrew},
|
||||
url = {https://www.boost.org/doc/libs/1_75_0/libs/graph_parallel/doc/html/index.html},
|
||||
note = {{https://www.boost.org/doc/libs/1$\_$75$\_$0/libs/graph$\_$parallel/doc/html/index.html}},
|
||||
}
|
||||
|
||||
@misc{noauthor_boost_nodate-1,
|
||||
title = {Boost {Graph} {Library}: {Converting} {Existing} {Graphs} to {BGL} - 1.75.0},
|
||||
url = {https://www.boost.org/doc/libs/1_75_0/libs/graph/doc/leda_conversion.html},
|
||||
note = {{https://www.boost.org/doc/libs/1$\_$75$\_$0/libs/graph/doc/leda$\_$conversion.html}},
|
||||
}
|
||||
|
||||
@misc{noauthor_graph_nodate,
|
||||
title = {Graph {Partitioning} {\textbar} {Our} {Pattern} {Language}},
|
||||
url = {https://patterns.eecs.berkeley.edu/?page_id=571},
|
||||
note = {https://patterns.eecs.berkeley.edu/?page_id=571},
|
||||
}
|
||||
|
||||
@misc{CVE-2019-10747,
|
||||
|
||||
BIN
Chapter4_img/Sync_Speedup.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
@ -14,27 +14,27 @@
|
||||
\@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{toc}{\contentsline {subsubsection}{\numberline {5.3.2.1}Communication Structure}{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{toc}{\contentsline {subsubsection}{\numberline {5.3.2.5}Task 3}{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{lot}{\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach\relax }}{38}{}\protected@file@percent }
|
||||
\newlabel{table:tasking-tag}{{5.1}{38}}
|
||||
\@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}
|
||||
|
||||
@ -46,7 +46,7 @@ attack and compliance graph generation.
|
||||
\end{figure}
|
||||
|
||||
\TUsubsection{Algorithm Design}
|
||||
The design of the tasking approach is to leverage a pipeline structure with the six tasks and MPI nodes. After its completion, each stage of the pipeline will pass the necessary data to the next stage through various MPI messages, where the next stage's nodes will receive the data and execute their tasks. The pipeline is considered fully saturated when each task has a dedicated node solely for executing work for that task. When there are less nodes than tasks, some nodes will process multiple tasks. When there are more nodes than tasks, additional nodes will be assigned to Tasks 1 and 2. Timings were collected in the serial approach for various networks that displayed more time requirements for Tasks 1 and 2, with larger network sizes requiring vastly more time to be taken in Tasks 1 and 2. As a result, additional nodes are assigned to Tasks 1 and 2. Node allocation can be seen in Figure \ref{fig:node-alloc}. In this Figure, ``world.size()" is an integer value representing the number of nodes used in the program, and ``num_tasks" is an integer value representing the number of tasks used in the pipeline. By using a variable for the number of tasks, it allows for modular usage of the pipeline, where tasks can be added and removed without needing to change any allocation logic work; only communication between tasks may need to be modified, and the allocation can be adjusted relatively simply to include new tasks.
|
||||
The design of the tasking approach is to leverage a pipeline structure with the six tasks and MPI nodes. After its completion, each stage of the pipeline will pass the necessary data to the next stage through various MPI messages, where the next stage's nodes will receive the data and execute their tasks. The pipeline is considered fully saturated when each task has a dedicated node solely for executing work for that task. When there are less nodes than tasks, some nodes will process multiple tasks. When there are more nodes than tasks, additional nodes will be assigned to Tasks 1 and 2. Timings were collected in the serial approach for various networks that displayed more time requirements for Tasks 1 and 2, with larger network sizes requiring vastly more time to be taken in Tasks 1 and 2. As a result, additional nodes are assigned to Tasks 1 and 2. Node allocation can be seen in Figure \ref{fig:node-alloc}. In this Figure, ``world.size()" is an integer value representing the number of nodes used in the program, and ``num$\_$tasks" is an integer value representing the number of tasks used in the pipeline. By using a variable for the number of tasks, it allows for modular usage of the pipeline, where tasks can be added and removed without needing to change any allocation logic work; only communication between tasks may need to be modified, and the allocation can be adjusted relatively simply to include new tasks.
|
||||
|
||||
For determining which tasks should be handled by the root note, a few considerations were made, where minimizing communication cost and avoiding unnecessary complexity were the main two considerations. In the serial approach, the frontier queue was the primary data structure for the majority of the generation process. Rather than using a distributed queue or passing multiple sub-queues between nodes, the minimum cost option is to pass states individually. This approach also assists in reducing the complexity. Managing multiple frontier queues would require duplication checks, multiple nodes requesting data from and storing data into the database, and devising a strategy to maintain proper queue ordering, all of which would also increase the communication cost. As a result, the root node will be dedicated to Tasks 0 and 3.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 42 KiB After Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 65 KiB |
|
Before Width: | Height: | Size: 62 KiB After Width: | Height: | Size: 63 KiB |
10
Chapter6.tex
@ -1,12 +1,16 @@
|
||||
\TUchapter{CONCLUSIONS AND FUTURE WORKS}
|
||||
\TUsection{Conclusions}
|
||||
This thesis presented various extensions to an attack graph generator, RAGE, to allow for a broader range of utilities. In order to reduce the complexity required for network model and exploit file creations, Sections \ref{sec:compops} and \ref{sec:relops} discussed the implementation of relational and compound operators. Both implementations simplify the amount of manual enumeration and manual specifications of asset qualities, and this simplifies precondition checks to singular lines. In addition, these implementations reduce the complexity required for synchronous firing exploit creations by avoiding the need for (for instance) time flags and enumeration of time all time instances. These expansions also allow for more complex attack modeling, since broad sweeps and generic $<$ or $>$ checks can be performed. Due to the intermediate database storage feature presented in Section \ref{sec:db-stor}, very large attack or compliance graphs can be generated without concern of absolute memory consumption, assuming very large storage solutions are in place. Section \ref{sec:PW} discusses the path walking feature, which is able to split attack and compliance graphs into subgraphs that can be used to simplify the analysis process by examining only smaller portions or focus areas of a network at a time.
|
||||
This thesis presented various extensions to an attack graph generator, RAGE, to allow for a broader range of utilities. In order to reduce the complexity required for describing network models and exploits, Sections \ref{sec:compops} and \ref{sec:relops} presented the implementation of relational and compound operators. Both implementations simplify the amount of manual enumeration and manual specifications of asset qualities, and this simplifies precondition checks to singular lines. In addition, these implementations reduce the complexity required for synchronous firing exploit creations by avoiding the need for (for instance) time flags and enumeration of time all time instances. These expansions allow for more complex attack modeling, since broad sweeps and generic $<$ or $>$ checks can be performed.
|
||||
|
||||
The intermediate database storage feature presented in Section \ref{sec:db-stor} allows for the generation of very large attack or compliance graphs without concern of absolute memory consumption, assuming very large storage solutions are in place.
|
||||
|
||||
Section \ref{sec:PW} presents the path walking feature, which is able to split attack and compliance graphs into subgraphs that can be used to simplify the analysis process by examining only smaller portions or focus areas of a network at a time.
|
||||
|
||||
Chapter \ref{ch:Sync-Fire} presents the synchronous firing feature, which is successfully able to reduce the state space and runtime of the generation process when assets have inseparable features. This feature does not lose any substantive information from a network and its resulting graph; the graph is able to remain exhaustive and still capture all necessary information. The results are promising, and greater reductions are expected when a greater number of assets share inseparable features, as discussed in Section \ref{sec:FW}.
|
||||
|
||||
Chapter \ref{ch:MPI} presented two approaches for utilizing MPI for extension to the distributed computing platform space. One approach was a task parallelism approach discussed in Section \ref{sec:Tasking-Approach}, and promising results were observed when the generation of each state increased in computation requirements. The second approach was a data parallelism approach discussed in Section \ref{sec:Subgraphing_Approach}. While results were not promising for this approach, future work can be conducted to optimize and avoid the difficulties of duplicate work and communication overhead. This thesis provides an MPI code-base for parallelizing the generation of compliance graphs on multiple nodes.
|
||||
Chapter \ref{ch:MPI} presented two approaches for utilizing MPI for extension to a distributed computing platform. One approach was a task parallelism approach presented in Section \ref{sec:Tasking-Approach}, and promising results were observed when the generation of each state increased in computation requirements. The second approach was a data parallelism approach presented in Section \ref{sec:Subgraphing_Approach}. This thesis provides an MPI code-base for parallelizing the generation of compliance graphs on multiple nodes. The results indicate that future work should be conducted to optimize and avoid the difficulties of duplicate work and communication overhead.
|
||||
|
||||
Throughout this thesis and its works, RAGE has demonstrated its extensions to support compliance graph generation. Section \ref{sec:CG-alter} discussed the alterations required for attack graph generators to support compliance graphs, and example compliance graphs have been generated in the results seen in Sections \ref{sec:Sync-Results}, \ref{sec:Tasking-Results}, and \ref{sec:Subgraphing-Results}.
|
||||
Throughout this thesis, RAGE has been extended to support compliance graph generation. Section \ref{sec:CG-alter} describes the alterations carried out to support compliance graphs, and example compliance graphs have been generated in the results seen in Sections \ref{sec:Sync-Results}, \ref{sec:Tasking-Results}, and \ref{sec:Subgraphing-Results}.
|
||||
|
||||
\TUsection{Future Work} \label{sec:FW}
|
||||
There are multiple avenues that future works and research can be conducted. One such investigation involves examining the effect of the synchronous firing feature with more assets belonging to groups. As the number of assets with inseparable features increases, more permutations consisting of unattainable states in a graph would exist. Since more assets can devolve and grow increasingly out of sync, the reduction rate when using the synchronous firing feature is likely to increase.
|
||||
|
||||
@ -52,10 +52,12 @@
|
||||
\bibcite{li_concurrency_2019}{25}
|
||||
\bibcite{9150145}{26}
|
||||
\bibcite{7087377}{27}
|
||||
\bibcite{CVE-2019-10747}{28}
|
||||
\bibcite{li_combining_2019}{29}
|
||||
\bibcite{louthan_hybrid_2011}{30}
|
||||
\bibcite{pacheco_introduction_2011}{31}
|
||||
\bibcite{lawrence_livermore_national_laboratory_mpip_nodate}{32}
|
||||
\bibcite{Graphviz}{28}
|
||||
\bibcite{nichols_2018}{29}
|
||||
\bibcite{CVE-2019-10747}{30}
|
||||
\bibcite{li_combining_2019}{31}
|
||||
\bibcite{louthan_hybrid_2011}{32}
|
||||
\bibcite{pacheco_introduction_2011}{33}
|
||||
\bibcite{lawrence_livermore_national_laboratory_mpip_nodate}{34}
|
||||
\bibstyle{ieeetr}
|
||||
\gdef \@abspage@last{73}
|
||||
|
||||
@ -119,6 +119,8 @@ J.~Balaji and R.~Sunderraman, ``Graph {Topology} {Abstraction} for
|
||||
\bibitem{noauthor_boost_nodate}
|
||||
J.~Siek, L.-Q. Lee, and A.~Lumsdaine, ``The {Boost} {Graph} {Library}, vers.
|
||||
1.75.0.''
|
||||
\newblock
|
||||
{https://www.boost.org/doc/libs/1$\_$75$\_$0/libs/graph/doc/index.html}.
|
||||
|
||||
\bibitem{cook_scalable_2016}
|
||||
K.~Cook, T.~Shaw, J.~Hale, and P.~Hawrylak, ``Scalable attack graph
|
||||
@ -140,6 +142,15 @@ K.~Kaynar and F.~Sivrikaya, ``Distributed attack graph generation,'' {\em IEEE
|
||||
Transactions on Dependable and Secure Computing}, vol.~13, no.~5,
|
||||
pp.~519--532, 2016.
|
||||
|
||||
\bibitem{Graphviz}
|
||||
{The Graphviz Authors}, ``{DOT} {Language}.''
|
||||
\newblock https://graphviz.org/doc/info/lang.html.
|
||||
|
||||
\bibitem{nichols_2018}
|
||||
W.~M. Nichols, {\em {Hybrid} {Attack} {Graphs} for {Use} with a {Simulation} of
|
||||
a {Cyber-Physical} {System}}.
|
||||
\newblock PhD thesis, The {University} of {Tulsa}, 2018.
|
||||
|
||||
\bibitem{CVE-2019-10747}
|
||||
``{set-value is vulnerable to Prototype Pollution in versions lower than 3.0.1.
|
||||
The function mixin-deep could be tricked into adding or modifying properties
|
||||
|
||||
@ -9,44 +9,44 @@ A level-1 auxiliary file: Chapter5.aux
|
||||
A level-1 auxiliary file: Chapter6.aux
|
||||
The style file: ieeetr.bst
|
||||
Database file #1: Bibliography.bib
|
||||
You've used 32 entries,
|
||||
You've used 34 entries,
|
||||
1876 wiz_defined-function locations,
|
||||
642 strings with 9940 characters,
|
||||
and the built_in function-call counts, 6904 in all, are:
|
||||
= -- 666
|
||||
> -- 269
|
||||
651 strings with 10219 characters,
|
||||
and the built_in function-call counts, 7170 in all, are:
|
||||
= -- 699
|
||||
> -- 277
|
||||
< -- 0
|
||||
+ -- 104
|
||||
- -- 72
|
||||
* -- 432
|
||||
:= -- 966
|
||||
add.period$ -- 37
|
||||
call.type$ -- 32
|
||||
change.case$ -- 30
|
||||
+ -- 108
|
||||
- -- 74
|
||||
* -- 440
|
||||
:= -- 1008
|
||||
add.period$ -- 41
|
||||
call.type$ -- 34
|
||||
change.case$ -- 31
|
||||
chr.to.int$ -- 0
|
||||
cite$ -- 32
|
||||
duplicate$ -- 351
|
||||
empty$ -- 732
|
||||
format.name$ -- 72
|
||||
if$ -- 1704
|
||||
cite$ -- 34
|
||||
duplicate$ -- 362
|
||||
empty$ -- 761
|
||||
format.name$ -- 74
|
||||
if$ -- 1771
|
||||
int.to.chr$ -- 0
|
||||
int.to.str$ -- 32
|
||||
int.to.str$ -- 34
|
||||
missing$ -- 22
|
||||
newline$ -- 110
|
||||
num.names$ -- 28
|
||||
pop$ -- 160
|
||||
newline$ -- 119
|
||||
num.names$ -- 30
|
||||
pop$ -- 173
|
||||
preamble$ -- 1
|
||||
purify$ -- 0
|
||||
quote$ -- 0
|
||||
skip$ -- 216
|
||||
stack$ -- 0
|
||||
substring$ -- 347
|
||||
swap$ -- 111
|
||||
swap$ -- 112
|
||||
text.length$ -- 0
|
||||
text.prefix$ -- 0
|
||||
top$ -- 0
|
||||
type$ -- 0
|
||||
warning$ -- 0
|
||||
while$ -- 62
|
||||
width$ -- 34
|
||||
write$ -- 282
|
||||
while$ -- 64
|
||||
width$ -- 36
|
||||
write$ -- 302
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 3 APR 2022 19:21
|
||||
This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 3 APR 2022 22:09
|
||||
entering extended mode
|
||||
restricted \write18 enabled.
|
||||
%&-line parsing enabled.
|
||||
@ -223,7 +223,13 @@ Underfull \hbox (badness 10000) in paragraph at lines 183--183
|
||||
|
||||
[]
|
||||
|
||||
[2] [3] [4
|
||||
[2] [3]
|
||||
Overfull \hbox (5.18456pt too wide) in paragraph at lines 184--184
|
||||
\OT1/cmr/m/n/12 Generation Tech-niques and Message-Passing In-ter-face Im-ple-m
|
||||
en-ta-tion for Com-pli-ance Graphs
|
||||
[]
|
||||
|
||||
[4
|
||||
|
||||
] [5
|
||||
|
||||
@ -292,9 +298,6 @@ File: ./Chapter3_img/PW.png Graphic file (type png)
|
||||
<use ./Chapter3_img/PW.png>
|
||||
Package pdftex.def Info: ./Chapter3_img/PW.png used on input line 17.
|
||||
(pdftex.def) Requested size: 469.75499pt x 257.74918pt.
|
||||
|
||||
LaTeX Warning: Citation `Graphviz' on page 8 undefined on input line 28.
|
||||
|
||||
<./Chapter3_img/CC.png, id=67, 658.46pt x 527.9725pt>
|
||||
File: ./Chapter3_img/CC.png Graphic file (type png)
|
||||
<use ./Chapter3_img/CC.png>
|
||||
@ -305,15 +308,8 @@ Package pdftex.def Info: ./Chapter3_img/CC.png used on input line 32.
|
||||
|
||||
|
||||
|
||||
] [9 <./Chapter3_img/PW.png>]
|
||||
|
||||
LaTeX Warning: Citation `nichols_2018' on page 10 undefined on input line 43.
|
||||
|
||||
[10 <./Chapter3_img/CC.png>] [11] [12]
|
||||
|
||||
LaTeX Warning: Citation `nichols_2018' on page 13 undefined on input line 71.
|
||||
|
||||
[13] [14] [15] [16]) [17]
|
||||
] [9 <./Chapter3_img/PW.png>] [10 <./Chapter3_img/CC.png>] [11] [12] [13]
|
||||
[14] [15] [16]) [17]
|
||||
\openout2 = `Chapter4.aux'.
|
||||
|
||||
(./Chapter4.tex
|
||||
@ -398,12 +394,12 @@ File: ./Chapter5_img/node-alloc.png Graphic file (type png)
|
||||
Package pdftex.def Info: ./Chapter5_img/node-alloc.png used on input line 54.
|
||||
(pdftex.def) Requested size: 469.75499pt x 308.1323pt.
|
||||
[32] [33 <./Chapter5_img/node-alloc.PNG>]
|
||||
<./Chapter5_img/Task1-Data-Dist.png, id=171, 1017.04968pt x 336.50719pt>
|
||||
<./Chapter5_img/Task1-Data-Dist.png, id=171, 597.98407pt x 197.48781pt>
|
||||
File: ./Chapter5_img/Task1-Data-Dist.png Graphic file (type png)
|
||||
<use ./Chapter5_img/Task1-Data-Dist.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/Task1-Data-Dist.png used on input line
|
||||
70.
|
||||
(pdftex.def) Requested size: 469.75499pt x 155.42674pt.
|
||||
(pdftex.def) Requested size: 469.75499pt x 155.14278pt.
|
||||
[34]
|
||||
<./Chapter5_img/Task1-Case1.png, id=175, 586.44093pt x 339.51843pt>
|
||||
File: ./Chapter5_img/Task1-Case1.png Graphic file (type png)
|
||||
@ -443,12 +439,12 @@ ne 152.
|
||||
(pdftex.def) Requested size: 469.75499pt x 244.00504pt.
|
||||
[40] [41 <./Chapter5_img/NA.png> <./Chapter5_img/Speedup-Esize-Tasking.png> <.
|
||||
/Chapter5_img/Eff-Esize-Tasking.png>]
|
||||
<./Chapter5_img/subgraphing.drawio.png, id=208, 824.07875pt x 743.77875pt>
|
||||
<./Chapter5_img/subgraphing.drawio.png, id=208, 824.07875pt x 744.7825pt>
|
||||
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 166.
|
||||
(pdftex.def) Requested size: 247.22552pt x 223.13535pt.
|
||||
(pdftex.def) Requested size: 247.22552pt x 223.43648pt.
|
||||
[42] [43 <./Chapter5_img/subgraphing.drawio.png>]
|
||||
<./Chapter5_img/front_merge.drawio.png, id=216, 1059.96pt x 465.74pt>
|
||||
File: ./Chapter5_img/front_merge.drawio.png Graphic file (type png)
|
||||
@ -482,12 +478,12 @@ Package pdftex.def Info: ./Chapter5_img/no_DHT_eff.png used on input line 230.
|
||||
(pdftex.def) Requested size: 469.75499pt x 272.8939pt.
|
||||
[46] [47 <./Chapter5_img/MPISubg_RT_No_DHT.png>] [48 <./Chapter5_img/no_DHT_Sp
|
||||
d.png> <./Chapter5_img/no_DHT_eff.png>]
|
||||
<./Chapter5_img/dup.drawio.png, id=240, 824.07875pt x 743.77875pt>
|
||||
<./Chapter5_img/dup.drawio.png, id=240, 824.07875pt x 744.7825pt>
|
||||
File: ./Chapter5_img/dup.drawio.png Graphic file (type png)
|
||||
<use ./Chapter5_img/dup.drawio.png>
|
||||
Package pdftex.def Info: ./Chapter5_img/dup.drawio.png used on input line 238.
|
||||
|
||||
(pdftex.def) Requested size: 469.75499pt x 423.98099pt.
|
||||
(pdftex.def) Requested size: 469.75499pt x 424.55316pt.
|
||||
<./Chapter5_img/Dup_DHT.png, id=241, 796.065pt x 483.99pt>
|
||||
File: ./Chapter5_img/Dup_DHT.png Graphic file (type png)
|
||||
<use ./Chapter5_img/Dup_DHT.png>
|
||||
@ -521,12 +517,12 @@ CHAPTER 6.
|
||||
|
||||
|
||||
]
|
||||
<./Chapter5_img/MPI-OpenMP-Blend.PNG, id=272, 1008.01593pt x 606.01407pt>
|
||||
<./Chapter5_img/MPI-OpenMP-Blend.PNG, id=272, 613.04031pt x 354.07281pt>
|
||||
File: ./Chapter5_img/MPI-OpenMP-Blend.PNG Graphic file (type png)
|
||||
<use ./Chapter5_img/MPI-OpenMP-Blend.PNG>
|
||||
Package pdftex.def Info: ./Chapter5_img/MPI-OpenMP-Blend.PNG used on input lin
|
||||
e 17.
|
||||
(pdftex.def) Requested size: 469.75499pt x 282.41318pt.
|
||||
(pdftex.def) Requested size: 469.75499pt x 271.31865pt.
|
||||
[56] [57 <./Chapter5_img/MPI-OpenMP-Blend.PNG>]) [58]
|
||||
(./Schrick-Noah_MS-Thesis.bbl [59
|
||||
|
||||
@ -557,17 +553,13 @@ ntent/pkg/PLAW-
|
||||
[]
|
||||
|
||||
[60] [61]
|
||||
Underfull \hbox (badness 1383) in paragraph at lines 164--167
|
||||
Underfull \hbox (badness 1383) in paragraph at lines 175--178
|
||||
[]\OT1/cmr/m/n/12 Lawrence Liv-er-more Na-tional Lab-o-ra-tory, ``mpiP, a light
|
||||
-weight MPI pro-filer.''
|
||||
[]
|
||||
|
||||
) [62] (./Schrick-Noah_MS-Thesis.aux (./Chapter1.aux) (./Chapter2.aux)
|
||||
(./Chapter3.aux) (./Chapter4.aux) (./Chapter5.aux) (./Chapter6.aux))
|
||||
|
||||
LaTeX Warning: There were undefined references.
|
||||
|
||||
)
|
||||
(./Chapter3.aux) (./Chapter4.aux) (./Chapter5.aux) (./Chapter6.aux)) )
|
||||
(\end occurred inside a group at level 6)
|
||||
|
||||
### semi simple group (level 6) entered at line 198 (\begingroup)
|
||||
@ -578,13 +570,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:
|
||||
4441 strings out of 478276
|
||||
82888 string characters out of 5853013
|
||||
374018 words of memory out of 5000000
|
||||
22551 multiletter control sequences out of 15000+600000
|
||||
4443 strings out of 478276
|
||||
82912 string characters out of 5853013
|
||||
374026 words of memory out of 5000000
|
||||
22553 multiletter control sequences out of 15000+600000
|
||||
473155 words of font info for 41 fonts, out of 8000000 for 9000
|
||||
1141 hyphenation exceptions out of 8191
|
||||
67i,8n,77p,2301b,1439s stack positions out of 5000i,500n,10000p,200000b,80000s
|
||||
67i,8n,77p,2339b,1439s 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
|
||||
@ -593,7 +585,7 @@ 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 (73 pages, 2127074 bytes).
|
||||
Output written on Schrick-Noah_MS-Thesis.pdf (73 pages, 2168479 bytes).
|
||||
PDF statistics:
|
||||
336 PDF objects out of 1000 (max. 8388607)
|
||||
190 compressed objects within 2 object streams
|
||||
|
||||
@ -1,3 +1,3 @@
|
||||
{\vspace {\baselineskip }}
|
||||
\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach\relax }}{38}{}%
|
||||
\contentsline {table}{\numberline {5.1}{\ignorespaces MPI Tags for the MPI Tasking Approach\relax }}{39}{}%
|
||||
\contentsline {table}{\numberline {5.2}{\ignorespaces MPI Tags for the MPI Subgraphing Approach\relax }}{46}{}%
|
||||
|
||||
@ -128,9 +128,9 @@
|
||||
% Enter the information for the title page,
|
||||
% signature page and abstract.
|
||||
%
|
||||
\titleoneline{How to Prepare the Perfect Thesis or Dissertation Document}
|
||||
\title{How to Prepare the Perfect\\
|
||||
Thesis or Dissertation Document} % The title with line breaks for the front pages.
|
||||
\titleoneline{Generation Techniques and Message-Passing Interface Implementation for Compliance Graphs}
|
||||
\title{Generation Techniques and Message-Passing Interface\\
|
||||
Implementation for Compliance Graphs} % The title with line breaks for the front pages.
|
||||
\author{Noah L. Schrick}
|
||||
\degreename{Master of Science}
|
||||
\dept{Computer Science}
|
||||
@ -155,7 +155,7 @@
|
||||
\fifthmember{} % as needed
|
||||
\sixthmember{} % as needed
|
||||
|
||||
\numofpages{72} % number of pages in the document
|
||||
\numofpages{73} % number of pages in the document
|
||||
\numofchapters=6 % number of chapters in the document
|
||||
\lastchapter{Conclusions and Future Works} % the title of the last numbered chapter
|
||||
\numofabstractwords{196} % number of words in the abstract
|
||||
|
||||
@ -49,11 +49,11 @@
|
||||
\contentsline {section}{\numberline {5.3}\bf Tasking Approach}{30}{}%
|
||||
\contentsline {subsection}{\numberline {5.3.1}\it Introduction to the Tasking Approach}{30}{}%
|
||||
\contentsline {subsection}{\numberline {5.3.2}\it Algorithm Design}{32}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.1}Communication Structure}{32}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.1}Communication Structure}{34}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.2}Task 0}{34}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.3}Task 1}{34}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.4}Task 2}{35}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.5}Task 3}{35}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.5}Task 3}{37}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.6}Task 4 and Task 5}{37}{}%
|
||||
\contentsline {subsubsection}{\numberline {5.3.2.7}MPI Tags}{38}{}%
|
||||
\contentsline {subsection}{\numberline {5.3.3}\it Performance Expectations and Use Cases}{38}{}%
|
||||
|
||||