Adding Related Works

This commit is contained in:
Noah L. Schrick 2022-10-06 21:35:33 -05:00
parent 30732d1474
commit 64585b43d3
6 changed files with 297 additions and 149 deletions

View File

@ -19,66 +19,96 @@
\providecommand\HyField@AuxAddToFields[1]{}
\providecommand\HyField@AuxAddToCoFields[2]{}
\citation{pacheco_introduction_2011}
\citation{ainsworth_graph_2016}
\citation{yao_efficient_2018}
\citation{zhang_boosting_2017}
\citation{dai_fpgp_2016}
\citation{arifuzzaman_fast_2015}
\citation{yu_construction_2018}
\citation{liakos_memory-optimized_2016}
\citation{liakos_memory-optimized_2016}
\citation{liakos_memory-optimized_2016}
\citation{balaji_graph_2016}
\citation{noauthor_overview_nodate}
\citation{noauthor_boost_nodate}
\citation{ou_scalable_2006}
\citation{cook_scalable_2016}
\citation{li_concurrency_2019}
\citation{li_concurrency_2019}
\citation{9150145}
\citation{7087377}
\babel@aux{nil}{}
\@writefile{toc}{\contentsline {section}{\numberline {I}Introduction}{1}{section.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {II}Related Works}{1}{section.2}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {III}Necessary Components}{1}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-A}}Serialization}{1}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Implementation of the Tasking Approach}{1}{section.4}\protected@file@percent }
\newlabel{sec:Tasking-Approach}{{IV}{1}{Implementation of the Tasking Approach}{section.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-A}}Algorithm Design}{1}{subsection.4.1}\protected@file@percent }
\citation{li_concurrency_2019}
\citation{9150145}
\citation{7087377}
\@writefile{toc}{\contentsline {section}{\numberline {III}Necessary Components}{2}{section.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {III-A}}Serialization}{2}{subsection.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IV}Implementation of the Tasking Approach}{2}{section.4}\protected@file@percent }
\newlabel{sec:Tasking-Approach}{{IV}{2}{Implementation of the Tasking Approach}{section.4}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {1}{\ignorespaces Task Overview of the Attack and Compliance Graph Generation Process}}{2}{figure.1}\protected@file@percent }
\newlabel{fig:tasks}{{1}{2}{Task Overview of the Attack and Compliance Graph Generation Process}{figure.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-B}}Communication Structure}{2}{subsection.4.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Node Allocation for each Task}}{2}{figure.2}\protected@file@percent }
\newlabel{fig:node-alloc}{{2}{2}{Node Allocation for each Task}{figure.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-C}}Task Breakdown}{2}{subsection.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}1}Task 0}{2}{subsubsection.4.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}2}Task 1}{2}{subsubsection.4.3.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-A}}Algorithm Design}{2}{subsection.4.1}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {2}{\ignorespaces Node Allocation for each Task}}{3}{figure.2}\protected@file@percent }
\newlabel{fig:node-alloc}{{2}{3}{Node Allocation for each Task}{figure.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-B}}Communication Structure}{3}{subsection.4.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-C}}Task Breakdown}{3}{subsection.4.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}1}Task 0}{3}{subsubsection.4.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}2}Task 1}{3}{subsubsection.4.3.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {3}{\ignorespaces Data Distribution of Task One}}{3}{figure.3}\protected@file@percent }
\newlabel{fig:Task1-Data-Dist}{{3}{3}{Data Distribution of Task One}{figure.3}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {4}{\ignorespaces Communication From Task 1 to Task 2 when the Number of Nodes Allocated is Equal}}{3}{figure.4}\protected@file@percent }
\newlabel{fig:Task1-Case1}{{4}{3}{Communication From Task 1 to Task 2 when the Number of Nodes Allocated is Equal}{figure.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}3}Task 2}{3}{subsubsection.4.3.3}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Task 1 to Task 2 Communication, Case 2}}{3}{figure.5}\protected@file@percent }
\newlabel{fig:Task1-Case2}{{5}{3}{Task 1 to Task 2 Communication, Case 2}{figure.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}4}Task 3}{3}{subsubsection.4.3.4}\protected@file@percent }
\newlabel{sec:T4T5}{{\mbox {IV-C}5}{3}{Task 4 and Task 5}{subsubsection.4.3.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}5}Task 4 and Task 5}{3}{subsubsection.4.3.5}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-D}}MPI Tags}{3}{subsection.4.4}\protected@file@percent }
\newlabel{sec:tasking-tag}{{\mbox {IV-D}}{3}{MPI Tags}{subsection.4.4}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {5}{\ignorespaces Task 1 to Task 2 Communication, Case 2}}{4}{figure.5}\protected@file@percent }
\newlabel{fig:Task1-Case2}{{5}{4}{Task 1 to Task 2 Communication, Case 2}{figure.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}4}Task 3}{4}{subsubsection.4.3.4}\protected@file@percent }
\newlabel{sec:T4T5}{{\mbox {IV-C}5}{4}{Task 4 and Task 5}{subsubsection.4.3.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-C}5}Task 4 and Task 5}{4}{subsubsection.4.3.5}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces MPI Tags for the MPI Tasking Approach}}{4}{table.1}\protected@file@percent }
\newlabel{table:tasking-tag}{{I}{4}{MPI Tags for the MPI Tasking Approach}{table.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-D}}MPI Tags}{4}{subsection.4.4}\protected@file@percent }
\newlabel{sec:tasking-tag}{{\mbox {IV-D}}{4}{MPI Tags}{subsection.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {V}Performance Expectations and Use Cases}{4}{section.5}\protected@file@percent }
\newlabel{sec:Task-perf-expec}{{V}{4}{Performance Expectations and Use Cases}{section.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VI}Experimental Setup}{4}{section.6}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces Task Descriptions and Performance Notes}}{4}{table.2}\protected@file@percent }
\newlabel{table:tasking-gen-perf}{{II}{4}{Task Descriptions and Performance Notes}{table.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-A}}Number of Exploits}{4}{subsection.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-B}}Applicability of Exploits}{4}{subsection.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-C}}Database Load}{4}{subsection.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-D}}Testing Platform}{4}{subsection.6.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{4}{section.7}\protected@file@percent }
\newlabel{sec:Tasking-Results}{{VII}{4}{Results}{section.7}{}}
\bibdata{Bibliography}
\bibcite{pacheco_introduction_2011}{1}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing}}{5}{figure.6}\protected@file@percent }
\newlabel{fig:NA-exp}{{6}{5}{Example of a Not Applicable Exploit for the MPI Tasking Testing}{figure.6}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}}{5}{figure.7}\protected@file@percent }
\newlabel{fig:Spd-Eff-Task}{{7}{5}{Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}{figure.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces MPI Tasking Approach Runtime Results}}{5}{figure.8}\protected@file@percent }
\newlabel{fig:Tasking-RT}{{8}{5}{MPI Tasking Approach Runtime Results}{figure.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Results for the MPI Tasking Approach in Terms of Speedup}}{5}{figure.9}\protected@file@percent }
\newlabel{fig:Tasking-Spd}{{9}{5}{Results for the MPI Tasking Approach in Terms of Speedup}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Results for the MPI Tasking Approach in Terms of Efficiency}}{5}{figure.10}\protected@file@percent }
\newlabel{fig:Tasking-Eff}{{10}{5}{Results for the MPI Tasking Approach in Terms of Efficiency}{figure.10}{}}
\bibcite{li_concurrency_2019}{2}
\bibcite{9150145}{3}
\bibcite{7087377}{4}
\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces Task Descriptions and Performance Notes}}{5}{table.2}\protected@file@percent }
\newlabel{table:tasking-gen-perf}{{II}{5}{Task Descriptions and Performance Notes}{table.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VI}Experimental Setup}{5}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-A}}Number of Exploits}{5}{subsection.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-B}}Applicability of Exploits}{5}{subsection.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-C}}Database Load}{5}{subsection.6.3}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-D}}Testing Platform}{5}{subsection.6.4}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Results}{5}{section.7}\protected@file@percent }
\newlabel{sec:Tasking-Results}{{VII}{5}{Results}{section.7}{}}
\bibcite{ainsworth_graph_2016}{2}
\bibcite{yao_efficient_2018}{3}
\bibcite{zhang_boosting_2017}{4}
\bibcite{dai_fpgp_2016}{5}
\bibcite{arifuzzaman_fast_2015}{6}
\bibcite{yu_construction_2018}{7}
\bibcite{liakos_memory-optimized_2016}{8}
\bibcite{balaji_graph_2016}{9}
\bibcite{noauthor_overview_nodate}{10}
\bibcite{noauthor_boost_nodate}{11}
\bibcite{ou_scalable_2006}{12}
\bibcite{cook_scalable_2016}{13}
\bibcite{li_concurrency_2019}{14}
\bibcite{9150145}{15}
\bibcite{7087377}{16}
\bibstyle{ieeetr}
\@writefile{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing}}{6}{figure.6}\protected@file@percent }
\newlabel{fig:NA-exp}{{6}{6}{Example of a Not Applicable Exploit for the MPI Tasking Testing}{figure.6}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}}{6}{figure.7}\protected@file@percent }
\newlabel{fig:Spd-Eff-Task}{{7}{6}{Speedup and Efficiency of the MPI Tasking Approach for a Varying Number of Compute Nodes with an Increasing Problem Size}{figure.7}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {8}{\ignorespaces MPI Tasking Approach Runtime Results}}{6}{figure.8}\protected@file@percent }
\newlabel{fig:Tasking-RT}{{8}{6}{MPI Tasking Approach Runtime Results}{figure.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Results for the MPI Tasking Approach in Terms of Speedup}}{6}{figure.9}\protected@file@percent }
\newlabel{fig:Tasking-Spd}{{9}{6}{Results for the MPI Tasking Approach in Terms of Speedup}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Results for the MPI Tasking Approach in Terms of Efficiency}}{6}{figure.10}\protected@file@percent }
\newlabel{fig:Tasking-Eff}{{10}{6}{Results for the MPI Tasking Approach in Terms of Efficiency}{figure.10}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Analysis}{6}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IX}Conclusion}{6}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{6}{section*.1}\protected@file@percent }

View File

@ -1,9 +1,75 @@
\begin{thebibliography}{1}
\begin{thebibliography}{10}
\bibitem{pacheco_introduction_2011}
P.~Pacheco, {\em An {Introduction} to {Parallel} {Programming}}.
\newblock Morgan Kaufmann, print~ed., 2011.
\bibitem{ainsworth_graph_2016}
S.~Ainsworth and T.~M. Jones, ``Graph prefetching using data structure
knowledge,'' {\em Proceedings of the International Conference on
Supercomputing}, vol.~01-03-June, 2016.
\bibitem{yao_efficient_2018}
P.~Yao, L.~Zheng, X.~Liao, H.~Jin, and B.~He, ``An efficient graph accelerator
with parallel data conflict management,'' {\em Parallel Architectures and
Compilation Techniques - Conference Proceedings, PACT}, 2018.
\bibitem{zhang_boosting_2017}
J.~Zhang, S.~Khoram, and J.~Li, ``Boosting the performance of {FPGA}-based
graph processor using hybrid memory cube: {A} case for breadth first
search,'' {\em FPGA 2017 - Proceedings of the 2017 ACM/SIGDA International
Symposium on Field-Programmable Gate Arrays}, pp.~207--216, 2017.
\bibitem{dai_fpgp_2016}
G.~Dai, Y.~Chi, Y.~Wang, and H.~Yang, ``{FPGP}: {Graph} processing framework on
{FPGA}: {A} case study of breadth-first search,'' {\em FPGA 2016 -
Proceedings of the 2016 ACM/SIGDA International Symposium on
Field-Programmable Gate Arrays}, pp.~105--110, 2016.
\bibitem{arifuzzaman_fast_2015}
S.~Arifuzzaman and M.~Khan, ``Fast parallel conversion of edge list to
adjacency list for large-scale graphs,'' in {\em {HPC} '15: {Proceedings} of
the {Symposium} on {High} {Performance} {Computing}}, pp.~17--24, Apr. 2015.
\bibitem{yu_construction_2018}
X.~Yu, W.~Chen, J.~Miao, J.~Chen, H.~Mao, Q.~Luo, and L.~Gu, ``The
{Construction} of {Large} {Graph} {Data} {Structures} in a {Scalable}
{Distributed} {Message} {System},'' in {\em {HPCCT} 2018: {Proceedings} of
the 2018 2nd {High} {Performance} {Computing} and {Cluster} {Technologies}
{Conference}}, pp.~6--10, June 2018.
\bibitem{liakos_memory-optimized_2016}
P.~Liakos, K.~Papakonstantinopoulou, and A.~Delis, ``Memory-{Optimized}
{Distributed} {Graph} {Processing} through {Novel} {Compression}
{Techniques},'' in {\em {CIKM} '16: {Proceedings} of the 25th {ACM}
{International} {Conference} on {Information} and {Knowledge} {Management}},
pp.~2317--2322, Oct. 2016.
\bibitem{balaji_graph_2016}
J.~Balaji and R.~Sunderraman, ``Graph {Topology} {Abstraction} for
{Distributed} {Path} {Queries},'' in {\em {HPGP} '16: {Proceedings} of the
{ACM} {Workshop} on {High} {Performance} {Graph} {Processing}}, pp.~27--34,
May 2016.
\bibitem{noauthor_overview_nodate}
``An {Overview} of the {Parallel} {Boost} {Graph} {Library} - 1.75.0,'' 2009.
\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{ou_scalable_2006}
X.~Ou, W.~F. Boyer, and M.~A. Mcqueen, ``A {Scalable} {Approach} to {Attack}
{Graph} {Generation},'' {\em CCS '06: Proceedings of the 13th ACM conference
on Computer and communications security}, pp.~336--345, 2006.
\bibitem{cook_scalable_2016}
K.~Cook, T.~Shaw, J.~Hale, and P.~Hawrylak, ``Scalable attack graph
generation,'' {\em Proceedings of the 11th Annual Cyber and Information
Security Research Conference, CISRC 2016}, 2016.
\bibitem{li_concurrency_2019}
M.~Li, P.~Hawrylak, and J.~Hale, ``Concurrency {Strategies} for {Attack}
{Graph} {Generation},'' {\em Proceedings - 2019 2nd International Conference

View File

@ -3,44 +3,44 @@ Capacity: max_strings=200000, hash_size=200000, hash_prime=170003
The top-level auxiliary file: Schrick-Noah_MPI-Tasking.aux
The style file: ieeetr.bst
Database file #1: Bibliography.bib
You've used 4 entries,
You've used 16 entries,
1876 wiz_defined-function locations,
502 strings with 4183 characters,
and the built_in function-call counts, 1180 in all, are:
= -- 119
> -- 34
561 strings with 6999 characters,
and the built_in function-call counts, 4342 in all, are:
= -- 417
> -- 171
< -- 0
+ -- 13
- -- 9
* -- 75
:= -- 162
add.period$ -- 5
call.type$ -- 4
change.case$ -- 4
+ -- 63
- -- 47
* -- 292
:= -- 596
add.period$ -- 17
call.type$ -- 16
change.case$ -- 16
chr.to.int$ -- 0
cite$ -- 4
duplicate$ -- 64
empty$ -- 118
format.name$ -- 9
if$ -- 296
cite$ -- 16
duplicate$ -- 228
empty$ -- 435
format.name$ -- 47
if$ -- 1068
int.to.chr$ -- 0
int.to.str$ -- 4
missing$ -- 5
newline$ -- 16
num.names$ -- 4
pop$ -- 16
int.to.str$ -- 16
missing$ -- 15
newline$ -- 53
num.names$ -- 15
pop$ -- 80
preamble$ -- 1
purify$ -- 0
quote$ -- 0
skip$ -- 45
skip$ -- 150
stack$ -- 0
substring$ -- 88
swap$ -- 28
substring$ -- 291
swap$ -- 88
text.length$ -- 0
text.prefix$ -- 0
top$ -- 0
type$ -- 0
warning$ -- 0
while$ -- 11
width$ -- 5
write$ -- 41
while$ -- 43
width$ -- 18
write$ -- 143

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux) (preloaded format=pdflatex 2022.4.29) 4 OCT 2022 23:28
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux) (preloaded format=pdflatex 2022.4.29) 6 OCT 2022 21:32
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@ -486,143 +486,177 @@ MPI;
[]
LaTeX Warning: Reference `sec:gen_improv' on page 1 undefined on input line 58.
Underfull \hbox (badness 1622) in paragraph at lines 63--67
[]\OT1/ptm/m/n/10 From a data structure standpoint, the authors of [[][]6[][]]
[]
LaTeX Font Info: Trying to load font information for U+msa on input line 68.
LaTeX Warning: Reference `sec:related_works' on page 1 undefined on input line
58.
<./images/horiz_task.drawio.png, id=105, 1181.41376pt x 785.93625pt>
File: ./images/horiz_task.drawio.png Graphic file (type png)
<use ./images/horiz_task.drawio.png>
Package pdftex.def Info: ./images/horiz_task.drawio.png used on input line 95.
(pdftex.def) Requested size: 252.0pt x 167.64183pt.
LaTeX Font Info: Trying to load font information for U+msa on input line 102
.
(/usr/share/texmf-dist/tex/latex/amsfonts/umsa.fd
File: umsa.fd 2013/01/14 v3.01 AMS symbols A
)
LaTeX Font Info: Trying to load font information for U+msb on input line 102
.
LaTeX Font Info: Trying to load font information for U+msb on input line 68.
(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
) [1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
)
Underfull \hbox (badness 1584) in paragraph at lines 68--71
\OT1/ptm/m/n/10 improvement specific to attack graphs. As a means of
[]
Underfull \hbox (badness 4378) in paragraph at lines 72--75
\OT1/ptm/m/n/10 parallelization. The authors of [[][]14[][]] leverage OpenMP
[]
Underfull \hbox (badness 3260) in paragraph at lines 72--75
\OT1/ptm/m/n/10 to parallelize the exploration of a FIFO queue. This
[]
[1{/var/lib/texmf/fonts/map/pdftex/updmap/pdftex.map}
]
<./images/node-alloc.png, id=122, 818.30719pt x 536.75531pt>
<./images/horiz_task.drawio.png, id=150, 1181.41376pt x 785.93625pt>
File: ./images/horiz_task.drawio.png Graphic file (type png)
<use ./images/horiz_task.drawio.png>
Package pdftex.def Info: ./images/horiz_task.drawio.png used on input line 111
.
(pdftex.def) Requested size: 252.0pt x 167.64183pt.
[2 <./images/horiz_task.drawio.png>]
<./images/node-alloc.png, id=162, 818.30719pt x 536.75531pt>
File: ./images/node-alloc.png Graphic file (type png)
<use ./images/node-alloc.png>
Package pdftex.def Info: ./images/node-alloc.png used on input line 107.
Package pdftex.def Info: ./images/node-alloc.png used on input line 123.
(pdftex.def) Requested size: 252.0pt x 165.29492pt.
LaTeX Warning: Reference `sec:db-stor' on page 2 undefined on input line 118.
LaTeX Warning: Reference `sec:db-stor' on page 3 undefined on input line 134.
<./images/Task1-Data-Dist.png, id=125, 597.98407pt x 197.48781pt>
<./images/Task1-Data-Dist.png, id=165, 597.98407pt x 197.48781pt>
File: ./images/Task1-Data-Dist.png Graphic file (type png)
<use ./images/Task1-Data-Dist.png>
Package pdftex.def Info: ./images/Task1-Data-Dist.png used on input line 124.
Package pdftex.def Info: ./images/Task1-Data-Dist.png used on input line 140.
(pdftex.def) Requested size: 252.0pt x 83.22455pt.
[2 <./images/horiz_task.drawio.png> <./images/node-alloc.PNG>]
<./images/Task1-Case1.png, id=138, 586.44093pt x 339.51843pt>
<./images/Task1-Case1.png, id=169, 586.44093pt x 339.51843pt>
File: ./images/Task1-Case1.png Graphic file (type png)
<use ./images/Task1-Case1.png>
Package pdftex.def Info: ./images/Task1-Case1.png used on input line 133.
Package pdftex.def Info: ./images/Task1-Case1.png used on input line 149.
(pdftex.def) Requested size: 252.0pt x 145.89163pt.
<./images/Task1-Case2.png, id=139, 702.37407pt x 414.79968pt>
<./images/Task1-Case2.png, id=170, 702.37407pt x 414.79968pt>
File: ./images/Task1-Case2.png Graphic file (type png)
<use ./images/Task1-Case2.png>
Package pdftex.def Info: ./images/Task1-Case2.png used on input line 140.
Package pdftex.def Info: ./images/Task1-Case2.png used on input line 156.
(pdftex.def) Requested size: 252.0pt x 148.82143pt.
LaTeX Warning: Reference `fig:sync-fire' on page 3 undefined on input line 147.
LaTeX Warning: Reference `fig:sync-fire' on page 3 undefined on input line 163.
[3 <./images/node-alloc.PNG> <./images/Task1-Data-Dist.PNG> <./images/Task1-Cas
e1.PNG>]
LaTeX Warning: Reference `sec:db-stor' on page 3 undefined on input line 153.
LaTeX Warning: Reference `sec:db-stor' on page 4 undefined on input line 169.
[3 <./images/Task1-Data-Dist.PNG> <./images/Task1-Case1.PNG> <./images/Task1-Ca
se2.PNG>]
LaTeX Warning: No positions in optional float specifier.
Default added (so using `tbp') on input line 158.
Default added (so using `tbp') on input line 174.
LaTeX Warning: Reference `sec:Intro' on page 4 undefined on input line 186.
LaTeX Warning: Reference `sec:Intro' on page 4 undefined on input line 202.
LaTeX Warning: Reference `sec:CG-diff' on page 4 undefined on input line 186.
LaTeX Warning: Reference `sec:CG-diff' on page 4 undefined on input line 202.
Underfull \hbox (badness 1389) in paragraph at lines 189--190
[4 <./images/Task1-Case2.PNG>]
Underfull \hbox (badness 1389) in paragraph at lines 205--206
\OT1/ptm/m/n/10 the performance of each task. Generating larger graphs
[]
LaTeX Warning: No positions in optional float specifier.
Default added (so using `tbp') on input line 191.
Default added (so using `tbp') on input line 207.
Underfull \hbox (badness 7451) in paragraph at lines 225--226
Underfull \hbox (badness 7451) in paragraph at lines 241--242
\OT1/ptm/m/n/10 All nodes are connected with a 10Gbps Infiniband
[]
LaTeX Warning: Reference `sec:test-platform' on page 4 undefined on input line
228.
[4]
LaTeX Warning: Reference `sec:FW' on page 5 undefined on input line 232.
LaTeX Warning: Reference `sec:test-platform' on page 5 undefined on input line
244.
Underfull \hbox (badness 3713) in paragraph at lines 232--233
LaTeX Warning: Reference `sec:FW' on page 5 undefined on input line 248.
Underfull \hbox (badness 3713) in paragraph at lines 248--249
[]\OT1/ptm/m/n/10 In terms of efficiency, 2 compute nodes offer the
[]
<./images/NA.png, id=166, 369.38pt x 118.4425pt>
<./images/NA.png, id=197, 369.38pt x 118.4425pt>
File: ./images/NA.png Graphic file (type png)
<use ./images/NA.png>
Package pdftex.def Info: ./images/NA.png used on input line 238.
Package pdftex.def Info: ./images/NA.png used on input line 254.
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
<./images/Speedup-Esize-Tasking.png, id=167, 620.208pt x 321.93pt>
<./images/Speedup-Esize-Tasking.png, id=198, 620.208pt x 321.93pt>
File: ./images/Speedup-Esize-Tasking.png Graphic file (type png)
<use ./images/Speedup-Esize-Tasking.png>
Package pdftex.def Info: ./images/Speedup-Esize-Tasking.png used on input line
246.
262.
(pdftex.def) Requested size: 252.0pt x 130.80338pt.
<./images/Eff-Esize-Tasking.png, id=168, 620.208pt x 322.149pt>
<./images/Eff-Esize-Tasking.png, id=199, 620.208pt x 322.149pt>
File: ./images/Eff-Esize-Tasking.png Graphic file (type png)
<use ./images/Eff-Esize-Tasking.png>
Package pdftex.def Info: ./images/Eff-Esize-Tasking.png used on input line 247
Package pdftex.def Info: ./images/Eff-Esize-Tasking.png used on input line 263
.
(pdftex.def) Requested size: 252.0pt x 130.89236pt.
<./images/Tasking_RT.png, id=169, 860.46469pt x 257.96375pt>
<./images/Tasking_RT.png, id=200, 860.46469pt x 257.96375pt>
File: ./images/Tasking_RT.png Graphic file (type png)
<use ./images/Tasking_RT.png>
Package pdftex.def Info: ./images/Tasking_RT.png used on input line 254.
Package pdftex.def Info: ./images/Tasking_RT.png used on input line 270.
(pdftex.def) Requested size: 252.0pt x 75.54756pt.
<./images/Tasking_Spd.png, id=170, 860.46469pt x 276.53313pt>
<./images/Tasking_Spd.png, id=201, 860.46469pt x 276.53313pt>
File: ./images/Tasking_Spd.png Graphic file (type png)
<use ./images/Tasking_Spd.png>
Package pdftex.def Info: ./images/Tasking_Spd.png used on input line 261.
Package pdftex.def Info: ./images/Tasking_Spd.png used on input line 277.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
<./images/Tasking_Eff.png, id=171, 860.46469pt x 276.53313pt>
<./images/Tasking_Eff.png, id=202, 860.46469pt x 276.53313pt>
File: ./images/Tasking_Eff.png Graphic file (type png)
<use ./images/Tasking_Eff.png>
Package pdftex.def Info: ./images/Tasking_Eff.png used on input line 268.
Package pdftex.def Info: ./images/Tasking_Eff.png used on input line 284.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
(./Schrick-Noah_MPI-Tasking.bbl
Underfull \hbox (badness 1527) in paragraph at lines 4--6
[]\OT1/ptm/m/n/8 P. Pacheco, \OT1/ptm/m/it/8 An Introduction to Parallel Progra
mming\OT1/ptm/m/n/8 . Morgan
[]
Underfull \vbox (badness 10000) has occurred while \output is active []
[5 <./images/NA.png> <./images/Speedup-Esize-Tasking.png> <./images/Eff-Esize-
Tasking.png> <./images/Tasking_RT.png> <./images/Tasking_Spd.png> <./images/Tas
king_Eff.png>])
[5]
Underfull \hbox (badness 2351) in paragraph at lines 8--11
[]\OT1/ptm/m/n/8 S. Ainsworth and T. M. Jones, ``Graph prefetching using data
[]
Underfull \hbox (badness 1859) in paragraph at lines 13--16
[]\OT1/ptm/m/n/8 P. Yao, L. Zheng, X. Liao, H. Jin, and B. He, ``An efficient
[]
Underfull \hbox (badness 10000) in paragraph at lines 58--62
[]\OT1/ptm/m/n/8 J. Siek, L.-Q. Lee, and A. Lumsdaine,
[]
Underfull \hbox (badness 10000) in paragraph at lines 58--62
\OT1/ptm/m/n/8 ``The Boost Graph Library, vers. 1.75.0.''
[]
)
** Conference Paper **
Before submitting the final camera ready copy, remember to:
@ -634,9 +668,9 @@ Before submitting the final camera ready copy, remember to:
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
[6
] (./Schrick-Noah_MPI-Tasking.aux)
[6 <./images/NA.png> <./images/Speedup-Esize-Tasking.png> <./images/Eff-Esize-T
asking.png> <./images/Tasking_RT.png> <./images/Tasking_Spd.png> <./images/Task
ing_Eff.png>] (./Schrick-Noah_MPI-Tasking.aux)
LaTeX Warning: There were undefined references.
@ -645,23 +679,25 @@ d.
(rerunfilecheck) Checksum: CB4364753E2594613B2E0BA2E8950C88;3186.
)
Here is how much of TeX's memory you used:
12099 strings out of 478238
191809 string characters out of 5850456
518036 words of memory out of 5000000
30118 multiletter control sequences out of 15000+600000
508499 words of font info for 101 fonts, out of 8000000 for 9000
12122 strings out of 478238
192341 string characters out of 5850456
515542 words of memory out of 5000000
30129 multiletter control sequences out of 15000+600000
509006 words of font info for 102 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
60i,14n,63p,1534b,490s stack positions out of 5000i,500n,10000p,200000b,80000s
60i,14n,63p,1482b,480s stack positions out of 5000i,500n,10000p,200000b,80000s
{/usr/share/texmf-dist/fonts/enc/dvips/base/8r.enc}</usr/share/texmf-dist/fon
ts/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texmf-dist/fonts/type1/public/
amsfonts/cm/cmsy7.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmb8a.pfb><
/usr/share/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb></usr/share/texmf-dist/
fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-dist/fonts/type1/urw/times/u
tmri8a.pfb>
Output written on Schrick-Noah_MPI-Tasking.pdf (6 pages, 957078 bytes).
ts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/texmf-dist/fonts/type1/publi
c/amsfonts/cm/cmr10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/c
mr7.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/
share/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb></usr/share/texmf-dis
t/fonts/type1/urw/times/utmb8a.pfb></usr/share/texmf-dist/fonts/type1/urw/times
/utmbi8a.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/shar
e/texmf-dist/fonts/type1/urw/times/utmri8a.pfb>
Output written on Schrick-Noah_MPI-Tasking.pdf (6 pages, 989584 bytes).
PDF statistics:
227 PDF objects out of 1000 (max. 8388607)
187 compressed objects within 2 object streams
47 named destinations out of 1000 (max. 500000)
275 PDF objects out of 1000 (max. 8388607)
228 compressed objects within 3 object streams
59 named destinations out of 1000 (max. 500000)
248 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

View File

@ -55,7 +55,23 @@ Attack Graph; Compliance Graph; MPI; High-Performance Computing; Cybersecurity;
This work attempts to further those efforts and extend RAGE to function on distributed computing environments to take advantage of the increased computing power using message-passing. As mentioned by the author of \cite{pacheco_introduction_2011}, MPI is the most widely used message-passing API, and this work intended to utilize an API that was not only familiar and accessible, but versatile and powerful for parallelizing RAGE for distributed computing platforms. This work discusses a task parallelism approach for the generation process, and uses OpenMPI for the MPI implementation.
\section{Related Works}
Previous works for graph generation, and specifically for attack graph generation, have seen promising results as discussed in Sections \ref{sec:gen_improv} and \ref{sec:related_works}.
For architectural and hardware techniques for general graph generation improvement, the authors of \cite{ainsworth_graph_2016} discuss the high cache miss rate, and how general prefetching
does not increase the prediction rate due to nonsequential graph structures and data-dependent access patterns. However, the authors continue to discuss that generation algorithms are known in advance, so explicit tuning of the hardware prefetcher to follow the traversal order pattern can lead to better performance. The authors were able to achieve over 2x performance improvement of a breadth-first search approach with this method.
Another hardware approach is to make use of accelerators. The authors of \cite{yao_efficient_2018} present an approach for minimizing the slowdown caused by the underlying graph atomic functions. By using the atomic function patterns, the authors utilized pipeline stages where vertex updates can be processed in parallel dynamically.
Other works, such as those by the authors of \cite{zhang_boosting_2017} and \cite{dai_fpgp_2016}, leverage field-programmable gate arrays (FPGAs) for graph generation in the HPC space through various means. This includes reducing memory strain, storing repeatedly accessed lists, storing results, or other storage through the on-chip block RAM, or even leveraging Hybrid Memory Cubes for optimizing parallel access.
From a data structure standpoint, the authors of \cite{arifuzzaman_fast_2015} describe the infeasibility of adjacency matrices in large-scale graphs, and this work and other works such as those by the authors of \cite{yu_construction_2018} and \cite{liakos_memory-optimized_2016} discuss the appeal of distributing a graph representation across systems.
The author of \cite{liakos_memory-optimized_2016} discusses the usage of distributed adjacency lists for assigning vertices to workers.
The authors of \cite{liakos_memory-optimized_2016} and \cite{balaji_graph_2016} present other techniques for minimizing communication costs by achieving high compression ratios while maintaining a low compression cost.
The Boost Graph Library and the Parallel Boost Graph Library both provide appealing features for working with graphs, with the latter library notably having interoperability with MPI, Graphviz, and METIS \cite{noauthor_overview_nodate}, \cite{noauthor_boost_nodate}.
There have also been numerous approaches at generation improvement specific to attack graphs. As a means of improving scalability of attack graphs, the authors of \cite{ou_scalable_2006} present a new representation scheme. Traditional attack graphs encode the entire network at each state, but the representation presented by the authors uses logical statements to represent a portion of the network at each node. This is called a logical attack graph. This approach led to the reduction of the generation process to quadratic time and reduced the number of nodes in the resulting graph to $\mathcal{O}({n}^2)$. However, this approach does require more analysis for identifying attack vectors.
Another approach presented by the authors of \cite{cook_scalable_2016} represents a description of systems and their qualities and topologies as a state, with a queue of unexplored states.
This work was continued by the authors of \cite{li_concurrency_2019} by implementing a hash table among other features. Each of these works demonstrates an improvement in scalability through refining the desirable information output.
Another approach for generation improvement is through parallelization. The authors of \cite{li_concurrency_2019} leverage OpenMP to parallelize the exploration of a FIFO queue. This parallelization also includes the utilization of OpenMP's dynamic scheduling. In this approach, each thread receives a state to explore, where a critical section is employed to handle the atomic functions of merging new state information while avoiding collisions, race conditions, or stale data usage. The authors measured a 10x speedup over the serial algorithm.
The authors of \cite{9150145} present a parallel generation approach using CUDA, where speedup is obtained through a large number of CUDA cores.
For a distributed approach, the authors of \cite{7087377} present a technique for utilizing reachability hyper-graph partitioning and a virtual shared memory abstraction to prevent duplicate work by multiple nodes. This work had promising results in terms of limiting the state-space explosion and speedup as the number of network hosts increases.
\section{Necessary Components}
\subsection{Serialization}