Experimental Setup content addition

This commit is contained in:
Noah L. Schrick 2022-10-04 23:29:01 -05:00
parent fbcda31094
commit 30732d1474
8 changed files with 144 additions and 134 deletions

View File

@ -1 +0,0 @@
,noah,NovaArchSys,13.09.2022 20:30,file:///home/noah/.config/libreoffice/4;

Binary file not shown.

View File

@ -27,51 +27,46 @@
\@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}Tasking Approach}{1}{section.4}\protected@file@percent }
\newlabel{sec:Tasking-Approach}{{IV}{1}{Tasking Approach}{section.4}{}}
\@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 }
\@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 {subsubsection}{\numberline {\mbox {IV-A}1}Communication Structure}{2}{subsubsection.4.1.1}\protected@file@percent }
\@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 {subsubsection}{\numberline {\mbox {IV-A}2}Task 0}{2}{subsubsection.4.1.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-A}3}Task 1}{2}{subsubsection.4.1.3}\protected@file@percent }
\@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{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-A}4}Task 2}{3}{subsubsection.4.1.4}\protected@file@percent }
\@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-A}5}Task 3}{3}{subsubsection.4.1.5}\protected@file@percent }
\newlabel{sec:T4T5}{{\mbox {IV-A}6}{3}{Task 4 and Task 5}{subsubsection.4.1.6}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-A}6}Task 4 and Task 5}{3}{subsubsection.4.1.6}\protected@file@percent }
\newlabel{sec:tasking-tag}{{\mbox {IV-A}7}{3}{MPI Tags}{subsubsection.4.1.7}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {\mbox {IV-A}7}MPI Tags}{3}{subsubsection.4.1.7}\protected@file@percent }
\@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{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 {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{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}}Database Load}{4}{subsection.6.2}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-C}}Testing Platform}{4}{subsection.6.3}\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}
\bibcite{li_concurrency_2019}{2}
\bibcite{9150145}{3}
\bibcite{7087377}{4}
\bibstyle{ieeetr}
\@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{toc}{\contentsline {section}{\numberline {VIII}Analysis}{5}{section.8}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {IX}Conclusion}{5}{section.9}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{References}{5}{section*.3}\protected@file@percent }
\@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 }
@ -80,4 +75,11 @@
\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}{}}
\gdef \@abspage@last{5}
\bibcite{li_concurrency_2019}{2}
\bibcite{9150145}{3}
\bibcite{7087377}{4}
\bibstyle{ieeetr}
\@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 }
\gdef \@abspage@last{6}

View File

@ -1,8 +1,8 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Arch Linux) (preloaded format=pdflatex 2022.4.29) 13 SEP 2022 14:31
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
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
**Schrick-Noah_MPI-Tasking.tex
**Schrick-Noah_MPI-Tasking
(./Schrick-Noah_MPI-Tasking.tex
LaTeX2e <2021-11-15> patch level 1
L3 programming layer <2022-04-10>
@ -486,29 +486,25 @@ MPI;
[]
LaTeX Warning: Reference `sec:gen_improv' on page 1 undefined on input line 57.
LaTeX Warning: Reference `sec:gen_improv' on page 1 undefined on input line 58.
LaTeX Warning: Reference `sec:related_works' on page 1 undefined on input line
57.
58.
LaTeX Warning: Reference `sec:Subgraphing_Approach' on page 1 undefined on inpu
t line 57.
<./images/horiz_task.drawio.png, id=98, 1181.41376pt x 785.93625pt>
<./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 94.
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 101
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 101
LaTeX Font Info: Trying to load font information for U+msb on input line 102
.
(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd
@ -517,116 +513,116 @@ File: umsb.fd 2013/01/14 v3.01 AMS symbols B
]
<./images/node-alloc.png, id=115, 818.30719pt x 536.75531pt>
<./images/node-alloc.png, id=122, 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 106.
Package pdftex.def Info: ./images/node-alloc.png used on input line 107.
(pdftex.def) Requested size: 252.0pt x 165.29492pt.
Underfull \hbox (badness 10000) in paragraph at lines 113--114
\OT1/ptm/m/it/10 1) Communication Structure: [][][] \OT1/ptm/m/n/10 The underl
ying
[]
LaTeX Warning: Reference `sec:db-stor' on page 2 undefined on input line 118.
Underfull \hbox (badness 1603) in paragraph at lines 113--114
\OT1/ptm/m/n/10 communication structure for the tasking approach relies
[]
LaTeX Warning: Reference `sec:db-stor' on page 2 undefined on input line 116.
<./images/Task1-Data-Dist.png, id=118, 597.98407pt x 197.48781pt>
<./images/Task1-Data-Dist.png, id=125, 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 122.
Package pdftex.def Info: ./images/Task1-Data-Dist.png used on input line 124.
(pdftex.def) Requested size: 252.0pt x 83.22455pt.
[2 <./images/horiz_task.drawio.png> <./images/node-alloc.PNG>]
<./images/Task1-Case1.png, id=131, 586.44093pt x 339.51843pt>
<./images/Task1-Case1.png, id=138, 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 131.
Package pdftex.def Info: ./images/Task1-Case1.png used on input line 133.
(pdftex.def) Requested size: 252.0pt x 145.89163pt.
<./images/Task1-Case2.png, id=132, 702.37407pt x 414.79968pt>
<./images/Task1-Case2.png, id=139, 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 138.
Package pdftex.def Info: ./images/Task1-Case2.png used on input line 140.
(pdftex.def) Requested size: 252.0pt x 148.82143pt.
LaTeX Warning: Reference `fig:sync-fire' on page 3 undefined on input line 145.
LaTeX Warning: Reference `fig:sync-fire' on page 3 undefined on input line 147.
LaTeX Warning: Reference `sec:db-stor' on page 3 undefined on input line 151.
LaTeX Warning: Reference `sec:db-stor' on page 3 undefined on input line 153.
[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 156.
Default added (so using `tbp') on input line 158.
LaTeX Warning: Reference `sec:Intro' on page 4 undefined on input line 184.
LaTeX Warning: Reference `sec:Intro' on page 4 undefined on input line 186.
LaTeX Warning: Reference `sec:CG-diff' on page 4 undefined on input line 184.
LaTeX Warning: Reference `sec:CG-diff' on page 4 undefined on input line 186.
Underfull \hbox (badness 1389) in paragraph at lines 189--190
\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 187.
Default added (so using `tbp') on input line 191.
Underfull \hbox (badness 5022) in paragraph at lines 210--212
[]\OT1/ptm/m/n/10 Looping through MPI Nodes, Number of Exploits,
Underfull \hbox (badness 7451) in paragraph at lines 225--226
\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
214.
228.
[4]
LaTeX Warning: Reference `sec:FW' on page 5 undefined on input line 232.
LaTeX Warning: Reference `sec:FW' on page 4 undefined on input line 218.
Underfull \hbox (badness 3713) in paragraph at lines 218--219
Underfull \hbox (badness 3713) in paragraph at lines 232--233
[]\OT1/ptm/m/n/10 In terms of efficiency, 2 compute nodes offer the
[]
[4]
<./images/NA.png, id=159, 369.38pt x 118.4425pt>
<./images/NA.png, id=166, 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 224.
Package pdftex.def Info: ./images/NA.png used on input line 238.
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
<./images/Speedup-Esize-Tasking.png, id=160, 620.208pt x 321.93pt>
<./images/Speedup-Esize-Tasking.png, id=167, 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
232.
246.
(pdftex.def) Requested size: 252.0pt x 130.80338pt.
<./images/Eff-Esize-Tasking.png, id=161, 620.208pt x 322.149pt>
<./images/Eff-Esize-Tasking.png, id=168, 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 233
Package pdftex.def Info: ./images/Eff-Esize-Tasking.png used on input line 247
.
(pdftex.def) Requested size: 252.0pt x 130.89236pt.
<./images/Tasking_RT.png, id=162, 860.46469pt x 257.96375pt>
<./images/Tasking_RT.png, id=169, 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 240.
Package pdftex.def Info: ./images/Tasking_RT.png used on input line 254.
(pdftex.def) Requested size: 252.0pt x 75.54756pt.
<./images/Tasking_Spd.png, id=163, 860.46469pt x 276.53313pt>
<./images/Tasking_Spd.png, id=170, 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 247.
Package pdftex.def Info: ./images/Tasking_Spd.png used on input line 261.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
<./images/Tasking_Eff.png, id=164, 860.46469pt x 276.53313pt>
<./images/Tasking_Eff.png, id=171, 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 254.
Package pdftex.def Info: ./images/Tasking_Eff.png used on input line 268.
(pdftex.def) Requested size: 252.0pt x 80.98582pt.
(./Schrick-Noah_MPI-Tasking.bbl)
(./Schrick-Noah_MPI-Tasking.bbl
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>])
** Conference Paper **
Before submitting the final camera ready copy, remember to:
@ -638,33 +634,34 @@ 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.
[5 <./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)
[6
] (./Schrick-Noah_MPI-Tasking.aux)
LaTeX Warning: There were undefined references.
Package rerunfilecheck Info: File `Schrick-Noah_MPI-Tasking.out' has not change
d.
(rerunfilecheck) Checksum: 90D683B99C078EF678C75764E234217B;2767.
(rerunfilecheck) Checksum: CB4364753E2594613B2E0BA2E8950C88;3186.
)
Here is how much of TeX's memory you used:
12097 strings out of 478238
12099 strings out of 478238
191809 string characters out of 5850456
517020 words of memory out of 5000000
30117 multiletter control sequences out of 15000+600000
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
1141 hyphenation exceptions out of 8191
60i,14n,63p,1538b,347s stack positions out of 5000i,500n,10000p,200000b,80000s
60i,14n,63p,1534b,490s 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/urw/tim
es/utmb8a.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmbi8a.pfb></usr/sh
are/texmf-dist/fonts/type1/urw/times/utmr8a.pfb></usr/share/texmf-dist/fonts/ty
pe1/urw/times/utmri8a.pfb>
Output written on Schrick-Noah_MPI-Tasking.pdf (5 pages, 947484 bytes).
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).
PDF statistics:
212 PDF objects out of 1000 (max. 8388607)
175 compressed objects within 2 object streams
46 named destinations out of 1000 (max. 500000)
232 words of extra memory for PDF output out of 10000 (max. 10000000)
227 PDF objects out of 1000 (max. 8388607)
187 compressed objects within 2 object streams
47 named destinations out of 1000 (max. 500000)
248 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@ -2,21 +2,23 @@
\BOOKMARK [1][-]{section.2}{\376\377\000R\000e\000l\000a\000t\000e\000d\000\040\000W\000o\000r\000k\000s}{}% 2
\BOOKMARK [1][-]{section.3}{\376\377\000N\000e\000c\000e\000s\000s\000a\000r\000y\000\040\000C\000o\000m\000p\000o\000n\000e\000n\000t\000s}{}% 3
\BOOKMARK [2][-]{subsection.3.1}{\376\377\000S\000e\000r\000i\000a\000l\000i\000z\000a\000t\000i\000o\000n}{section.3}% 4
\BOOKMARK [1][-]{section.4}{\376\377\000T\000a\000s\000k\000i\000n\000g\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 5
\BOOKMARK [1][-]{section.4}{\376\377\000I\000m\000p\000l\000e\000m\000e\000n\000t\000a\000t\000i\000o\000n\000\040\000o\000f\000\040\000t\000h\000e\000\040\000T\000a\000s\000k\000i\000n\000g\000\040\000A\000p\000p\000r\000o\000a\000c\000h}{}% 5
\BOOKMARK [2][-]{subsection.4.1}{\376\377\000A\000l\000g\000o\000r\000i\000t\000h\000m\000\040\000D\000e\000s\000i\000g\000n}{section.4}% 6
\BOOKMARK [3][-]{subsubsection.4.1.1}{\376\377\000C\000o\000m\000m\000u\000n\000i\000c\000a\000t\000i\000o\000n\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e}{subsection.4.1}% 7
\BOOKMARK [3][-]{subsubsection.4.1.2}{\376\377\000T\000a\000s\000k\000\040\0000}{subsection.4.1}% 8
\BOOKMARK [3][-]{subsubsection.4.1.3}{\376\377\000T\000a\000s\000k\000\040\0001}{subsection.4.1}% 9
\BOOKMARK [3][-]{subsubsection.4.1.4}{\376\377\000T\000a\000s\000k\000\040\0002}{subsection.4.1}% 10
\BOOKMARK [3][-]{subsubsection.4.1.5}{\376\377\000T\000a\000s\000k\000\040\0003}{subsection.4.1}% 11
\BOOKMARK [3][-]{subsubsection.4.1.6}{\376\377\000T\000a\000s\000k\000\040\0004\000\040\000a\000n\000d\000\040\000T\000a\000s\000k\000\040\0005}{subsection.4.1}% 12
\BOOKMARK [3][-]{subsubsection.4.1.7}{\376\377\000M\000P\000I\000\040\000T\000a\000g\000s}{subsection.4.1}% 13
\BOOKMARK [1][-]{section.5}{\376\377\000P\000e\000r\000f\000o\000r\000m\000a\000n\000c\000e\000\040\000E\000x\000p\000e\000c\000t\000a\000t\000i\000o\000n\000s\000\040\000a\000n\000d\000\040\000U\000s\000e\000\040\000C\000a\000s\000e\000s}{}% 14
\BOOKMARK [1][-]{section.6}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000a\000l\000\040\000S\000e\000t\000u\000p}{}% 15
\BOOKMARK [2][-]{subsection.6.1}{\376\377\000N\000u\000m\000b\000e\000r\000\040\000o\000f\000\040\000E\000x\000p\000l\000o\000i\000t\000s}{section.6}% 16
\BOOKMARK [2][-]{subsection.6.2}{\376\377\000D\000a\000t\000a\000b\000a\000s\000e\000\040\000L\000o\000a\000d}{section.6}% 17
\BOOKMARK [2][-]{subsection.6.3}{\376\377\000T\000e\000s\000t\000i\000n\000g\000\040\000P\000l\000a\000t\000f\000o\000r\000m}{section.6}% 18
\BOOKMARK [1][-]{section.7}{\376\377\000R\000e\000s\000u\000l\000t\000s}{}% 19
\BOOKMARK [1][-]{section.8}{\376\377\000A\000n\000a\000l\000y\000s\000i\000s}{}% 20
\BOOKMARK [1][-]{section.9}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 21
\BOOKMARK [1][-]{section*.3}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 22
\BOOKMARK [2][-]{subsection.4.2}{\376\377\000C\000o\000m\000m\000u\000n\000i\000c\000a\000t\000i\000o\000n\000\040\000S\000t\000r\000u\000c\000t\000u\000r\000e}{section.4}% 7
\BOOKMARK [2][-]{subsection.4.3}{\376\377\000T\000a\000s\000k\000\040\000B\000r\000e\000a\000k\000d\000o\000w\000n}{section.4}% 8
\BOOKMARK [3][-]{subsubsection.4.3.1}{\376\377\000T\000a\000s\000k\000\040\0000}{subsection.4.3}% 9
\BOOKMARK [3][-]{subsubsection.4.3.2}{\376\377\000T\000a\000s\000k\000\040\0001}{subsection.4.3}% 10
\BOOKMARK [3][-]{subsubsection.4.3.3}{\376\377\000T\000a\000s\000k\000\040\0002}{subsection.4.3}% 11
\BOOKMARK [3][-]{subsubsection.4.3.4}{\376\377\000T\000a\000s\000k\000\040\0003}{subsection.4.3}% 12
\BOOKMARK [3][-]{subsubsection.4.3.5}{\376\377\000T\000a\000s\000k\000\040\0004\000\040\000a\000n\000d\000\040\000T\000a\000s\000k\000\040\0005}{subsection.4.3}% 13
\BOOKMARK [2][-]{subsection.4.4}{\376\377\000M\000P\000I\000\040\000T\000a\000g\000s}{section.4}% 14
\BOOKMARK [1][-]{section.5}{\376\377\000P\000e\000r\000f\000o\000r\000m\000a\000n\000c\000e\000\040\000E\000x\000p\000e\000c\000t\000a\000t\000i\000o\000n\000s\000\040\000a\000n\000d\000\040\000U\000s\000e\000\040\000C\000a\000s\000e\000s}{}% 15
\BOOKMARK [1][-]{section.6}{\376\377\000E\000x\000p\000e\000r\000i\000m\000e\000n\000t\000a\000l\000\040\000S\000e\000t\000u\000p}{}% 16
\BOOKMARK [2][-]{subsection.6.1}{\376\377\000N\000u\000m\000b\000e\000r\000\040\000o\000f\000\040\000E\000x\000p\000l\000o\000i\000t\000s}{section.6}% 17
\BOOKMARK [2][-]{subsection.6.2}{\376\377\000A\000p\000p\000l\000i\000c\000a\000b\000i\000l\000i\000t\000y\000\040\000o\000f\000\040\000E\000x\000p\000l\000o\000i\000t\000s}{section.6}% 18
\BOOKMARK [2][-]{subsection.6.3}{\376\377\000D\000a\000t\000a\000b\000a\000s\000e\000\040\000L\000o\000a\000d}{section.6}% 19
\BOOKMARK [2][-]{subsection.6.4}{\376\377\000T\000e\000s\000t\000i\000n\000g\000\040\000P\000l\000a\000t\000f\000o\000r\000m}{section.6}% 20
\BOOKMARK [1][-]{section.7}{\376\377\000R\000e\000s\000u\000l\000t\000s}{}% 21
\BOOKMARK [1][-]{section.8}{\376\377\000A\000n\000a\000l\000y\000s\000i\000s}{}% 22
\BOOKMARK [1][-]{section.9}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n}{}% 23
\BOOKMARK [1][-]{section*.1}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 24

Binary file not shown.

View File

@ -52,9 +52,10 @@ Attack Graph; Compliance Graph; MPI; High-Performance Computing; Cybersecurity;
\end{IEEEkeywords}
\section{Introduction}
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}. 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 Chapter discusses two approaches for parallelism: task parallelism in Section \ref{sec:Tasking-Approach}, and data parallelism in Section \ref{sec:Subgraphing_Approach}. All approaches in this work utilize OpenMPI for the MPI implementation.
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}.
\section{Necessary Components}
\subsection{Serialization}
@ -82,7 +83,7 @@ class instances are altered directly. This was preferable to the non-intrusive a
the class instances were able to be altered with relative ease, and many of the class instances
did not expose enough information for the non-intrusive approach to be viable.
\section{Tasking Approach} \label{sec:Tasking-Approach}
\section{Implementation of the Tasking Approach} \label{sec:Tasking-Approach}
The high-level overview of the attack and compliance graph generation process can be broken down into six main tasks.
These tasks are described in Figure \ref{fig:tasks}. Prior works such as that seen by the
authors of \cite{li_concurrency_2019}, \cite{9150145}, and \cite{7087377} work to parallelize the graph generation using
@ -109,9 +110,10 @@ For determining which tasks should be handled by the root note, a few considerat
\label{fig:node-alloc}
\end{figure}
\subsubsection{Communication Structure}
\subsection{Communication Structure}
The underlying communication structure for the tasking approach relies on a pseudo-ring structure. As seen in Figure \ref{fig:node-alloc}, nodes n$_2$, n$_3$, and n$_4$ are derived from the previous task's greatest node rank. To keep the development abstract, a custom send function checks the world size (``world.size()") before sending. If the rank of the node that would receive a message is greater than the world size and therefore does not exist, the rank would then be ``looped around" and corrected to fit within the world size constraints. After the rank correction, the MPI Send function was then invoked with the proper node rank.
\subsection{Task Breakdown}
\subsubsection{Task 0}
Task 0 is performed by the root node, and is a conditional task; it is not guaranteed to be executed at each pipeline iteration. Task 0 is only executed when the frontier is empty, but the database still holds unexplored states. This occurs when there are memory constraints, and database storage is performed during execution to offload the demand, as discussed in Section \ref{sec:db-stor}. After the completion of Task 0, the frontier has a state popped, and the root node sends the state to n$_1$. If the frontier is empty, the root node sends the finalize signal to all nodes.
@ -150,7 +152,7 @@ Task 3 is performed only by the root node, and no division of work is necessary.
\subsubsection{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's memory. 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 if performed by the root node.
\subsubsection{MPI Tags} \label{sec:tasking-tag}
\subsection{MPI Tags} \label{sec:tasking-tag}
To ensure that the intended message is received by each node, the MPI message envelopes have their tag fields specified. When a node sends a message, it specifies a tag that corresponds with the data and intent for which it is sent. The tag values were arbitrarily chosen, and tags can be added to the existing list or removed as desired. When receiving a message, a node can specify to only look for messages that have an envelope with a matching tag field. Not only do tags ensure that nodes are receiving the correct messages, they also reduce complexity for program design. Table \ref{table:tasking-tag} displays the list of tags used for the MPI Tasking approach.
\begin{table}[]
@ -184,17 +186,22 @@ To ensure that the intended message is received by each node, the MPI message en
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 compliance checks 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. As will be later discussed, it is also hypothesized that this approach is well-suited when many database operations occur.
\section{Experimental Setup}
In order to capture a comprehensive image of the tasking approach's impact on performance, a number of parameters were altered and the generation properties were examined. Table \ref{table:tasking-gen-perf} presents each task and the parameters that affect the performance of each task. Generating larger graphs would increase the runtime, but does not necessarily stress each task or provide a consistent, reliable way to draw conclusions regarding the tasking approach. In order to ensure consistency across the experimental testing and minimize the possibility of introducing bias, all tests generated the exact same graph. All tests would generate the same graph with identical numbers of states, identical numbers of edges, identical labeling, and identical inner workings and underlying properties. The following subsections describe the altered parameters, the manner in which they were altered, and how data integrity of the resulting graph was preserved. The parameter alteration process focused on avoiding artificial inflation of the performance metrics, and each subsection emphasizes the practicality of each altered parameter.
\begin{table}[]
\centering
\begin{tabular}{|c|c|c|}
\hline
\textbf{Task} & \textbf{Shortened Description} & \textbf{\begin{tabular}[c]{@{}c@{}}Performance\\ Affected By\end{tabular}} \\ \hline
0 & Retrieve Next State & Database Load \\ \hline
1 & \begin{tabular}[c]{@{}c@{}}Compile List of \\ Applicable Exploits\end{tabular} & Number of Exploits \\ \hline
2 & \begin{tabular}[c]{@{}c@{}}Loop through List of\\ Applicable Exploits\end{tabular} & \begin{tabular}[c]{@{}c@{}}Number of\\ Applicable Exploits\end{tabular} \\ \hline
3 & Bookkeeping & \\ \hline
4 & \begin{tabular}[c]{@{}c@{}}C/R and/or memory\\ clear of graph instance\end{tabular} & Database Load \\ \hline
5 & \begin{tabular}[c]{@{}c@{}}C/R and/or memory\\ clear of frontier\end{tabular} & Database Load \\ \hline
\textbf{Task}
& \textbf{Shortened Description}
& \textbf{\begin{tabular}[c]{@{}c@{}}Performance\\ Affected By\end{tabular}}
\\ \hline
0 & Retrieve Next State & Database Load \\ \hline
1 & \begin{tabular}[c]{@{}c@{}}Compile List of \\ Applicable Exploits\end{tabular} & Number of Exploits \\ \hline
2 & \begin{tabular}[c]{@{}c@{}}Loop through List of\\ Applicable Exploits\end{tabular} & \begin{tabular}[c]{@{}c@{}}Number of\\ Applicable Exploits\end{tabular} \\ \hline
3 & Bookkeeping & Number of States \\ \hline
4 & \begin{tabular}[c]{@{}c@{}}C/R and/or memory\\ clear of graph instance\end{tabular} & Database Load \\ \hline
5 & \begin{tabular}[c]{@{}c@{}}C/R and/or memory\\ clear of frontier\end{tabular} & Database Load \\ \hline
\end{tabular}
\caption{Task Descriptions and Performance Notes}
\label{table:tasking-gen-perf}
@ -202,13 +209,20 @@ Due to the amount of communication between nodes to distribute the necessary dat
\subsection{Number of Exploits}
\subsection{Applicability of Exploits}
\subsection{Database Load}
\subsection{Testing Platform}
Hammer
Looping through MPI Nodes, Number of Exploits, Applicability of Exploits, Database Loads
Then compute Speedup with Amdahl and Gufs, then Eff for both
All data was collected on a 13 node cluster, with 12 nodes serving as dedicated compute nodes, and 1 node serving as the login node. Each compute node has a configuration as follows:
\begin{itemize}
\item{OS: CentOS release 6.9}
\item{CPU: Two Intel Xeon E5-2620 v3}
\item{Two Intel Xeon Phi Co-Processors}
\item{One FPGA (Nallatech PCIE-385n A7 Altera Stratix V)}
\item{Memory: 64318MiB}
\end{itemize}
All nodes are connected with a 10Gbps Infiniband interconnect.
\section{Results} \label{sec:Tasking-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 not applicable 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 observing the effectiveness of the tasking approach.
@ -260,10 +274,6 @@ Figures \ref{fig:Tasking-RT}, \ref{fig:Tasking-Spd}, and \ref{fig:Tasking-Eff} d
\section{Conclusion}
\section*{Acknowledgment}
\section*{References}
%\bibliographyp
\bibliography{Bibliography}
\bibliographystyle{ieeetr}

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB