Modifications

This commit is contained in:
Noah L. Schrick 2024-04-19 09:16:24 -05:00
parent d20c9ea6e4
commit b0e71086c7
19 changed files with 628 additions and 252 deletions

View File

@ -56,12 +56,12 @@
\@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}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:tasks}{{1}{3}{Task Overview of the Attack and Compliance Graph Generation Process}{figure.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-A}}Algorithm Design}{3}{subsection.4.1}\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 {1}{\ignorespaces Overview of the Tasking Pipeline for the Attack and Compliance Graph Generation Process}}{3}{figure.1}\protected@file@percent }
\newlabel{fig:tasks}{{1}{3}{Overview of the Tasking Pipeline for the Attack and Compliance Graph Generation Process}{figure.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-B}}Communication Structure}{3}{subsection.4.2}\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 }
@ -69,27 +69,27 @@
\newlabel{fig:Task1-Data-Dist}{{3}{4}{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}}{4}{figure.4}\protected@file@percent }
\newlabel{fig:Task1-Case1}{{4}{4}{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}{4}{subsubsection.4.3.3}\protected@file@percent }
\@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}3}Task 2}{4}{subsubsection.4.3.3}\protected@file@percent }
\@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{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{lof}{\contentsline {figure}{\numberline {6}{\ignorespaces Program Flow of Synchronous Firing in Task 2}}{5}{figure.6}\protected@file@percent }
\newlabel{fig:sync-fire}{{6}{5}{Program Flow of Synchronous Firing in Task 2}{figure.6}{}}
\@writefile{lot}{\contentsline {table}{\numberline {I}{\ignorespaces MPI Tags for the MPI Tasking Approach}}{5}{table.1}\protected@file@percent }
\newlabel{table:tasking-tag}{{I}{5}{MPI Tags for the MPI Tasking Approach}{table.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {IV-D}}MPI Tags}{5}{subsection.4.4}\protected@file@percent }
\newlabel{sec:tasking-tag}{{\mbox {IV-D}}{5}{MPI Tags}{subsection.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {V}Performance Expectations and Use Cases}{5}{section.5}\protected@file@percent }
\newlabel{sec:Task-perf-expec}{{V}{5}{Performance Expectations and Use Cases}{section.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VI}Experimental Setup}{5}{section.6}\protected@file@percent }
\@writefile{lot}{\contentsline {table}{\numberline {II}{\ignorespaces Task Descriptions and Performance Notes}}{6}{table.2}\protected@file@percent }
\newlabel{table:tasking-gen-perf}{{II}{6}{Task Descriptions and Performance Notes}{table.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VI}Experimental Setup}{6}{section.6}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-A}}Number of Exploits}{6}{subsection.6.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-B}}Applicability of Exploits}{6}{subsection.6.2}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {7}{\ignorespaces Example of a Not Applicable Exploit for the MPI Tasking Testing}}{6}{figure.7}\protected@file@percent }
\newlabel{fig:NA-exp}{{7}{6}{Example of a Not Applicable Exploit for the MPI Tasking Testing}{figure.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-B}}Applicability of Exploits}{6}{subsection.6.2}\protected@file@percent }
\citation{cook_rage_2018}
\citation{li_concurrency_2019}
\citation{li_combining_2019}
@ -101,21 +101,17 @@
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-D}}Testing Platform}{7}{subsection.6.4}\protected@file@percent }
\newlabel{sec:test-platform}{{\mbox {VI-D}}{7}{Testing Platform}{subsection.6.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {\mbox {VI-E}}Testing Process}{7}{subsection.6.5}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {VII}Analysis and Results}{8}{section.7}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Number of Nodes and Exploits (Averaged) vs. Runtime (ms)}}{8}{figure.9}\protected@file@percent }
\newlabel{fig:nodes-exp}{{9}{8}{Number of Nodes and Exploits (Averaged) vs. Runtime (ms)}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms)}}{9}{figure.10}\protected@file@percent }
\newlabel{fig:appl-load}{{10}{9}{Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms)}{figure.10}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Minimum, Maximum, and Mean Speedups of MPI Tasking Across All Problem Sizes}}{9}{figure.11}\protected@file@percent }
\newlabel{fig:overall-speedup}{{11}{9}{Minimum, Maximum, and Mean Speedups of MPI Tasking Across All Problem Sizes}{figure.11}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Minimum, Maximum, and Mean Efficiencies of MPI Tasking Across All Problem Sizes}}{9}{figure.12}\protected@file@percent }
\newlabel{fig:overall-efficiency}{{12}{9}{Minimum, Maximum, and Mean Efficiencies of MPI Tasking Across All Problem Sizes}{figure.12}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes}}{10}{figure.13}\protected@file@percent }
\newlabel{fig:param-exploit}{{13}{10}{Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes}{figure.13}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Conclusion and Future Work}{10}{section.8}\protected@file@percent }
\newlabel{sec:FW}{{VIII}{10}{Conclusion and Future Work}{section.8}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes}}{10}{figure.14}\protected@file@percent }
\newlabel{fig:param-appl}{{14}{10}{Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes}{figure.14}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VII}Analysis and Results}{7}{section.7}\protected@file@percent }
\@writefile{lof}{\contentsline {figure}{\numberline {9}{\ignorespaces Number of Nodes and Number of Exploits (Averaged) vs. Runtime (ms)}}{8}{figure.9}\protected@file@percent }
\newlabel{fig:nodes-exp}{{9}{8}{Number of Nodes and Number of Exploits (Averaged) vs. Runtime (ms)}{figure.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {10}{\ignorespaces Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms)}}{8}{figure.10}\protected@file@percent }
\newlabel{fig:appl-load}{{10}{8}{Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms)}{figure.10}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {11}{\ignorespaces Minimum, Maximum, and Mean Speedup of MPI Tasking Across All Problem Sizes}}{9}{figure.11}\protected@file@percent }
\newlabel{fig:overall-speedup}{{11}{9}{Minimum, Maximum, and Mean Speedup of MPI Tasking Across All Problem Sizes}{figure.11}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {12}{\ignorespaces Minimum, Maximum, and Mean Efficiency of MPI Tasking Across All Problem Sizes}}{9}{figure.12}\protected@file@percent }
\newlabel{fig:overall-efficiency}{{12}{9}{Minimum, Maximum, and Mean Efficiency of MPI Tasking Across All Problem Sizes}{figure.12}{}}
\@writefile{toc}{\contentsline {section}{\numberline {VIII}Conclusion and Future Work}{9}{section.8}\protected@file@percent }
\newlabel{sec:FW}{{VIII}{9}{Conclusion and Future Work}{section.8}{}}
\citation{Amdahl}
\citation{Gust}
\citation{sun}
@ -126,6 +122,11 @@
\bibcite{baloyi_guidelines_2019}{4}
\bibcite{allman_complying_2006}{5}
\bibcite{j_hale_compliance_nodate}{6}
\@writefile{lof}{\contentsline {figure}{\numberline {13}{\ignorespaces Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes}}{10}{figure.13}\protected@file@percent }
\newlabel{fig:param-exploit}{{13}{10}{Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes}{figure.13}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {14}{\ignorespaces Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes}}{10}{figure.14}\protected@file@percent }
\newlabel{fig:param-appl}{{14}{10}{Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes}{figure.14}{}}
\@writefile{toc}{\contentsline {section}{References}{10}{section*.1}\protected@file@percent }
\bibcite{ou_scalable_2006}{7}
\bibcite{CPSIOT}{8}
\bibcite{ming_jo}{9}
@ -151,5 +152,7 @@
\bibcite{Gust}{29}
\bibcite{sun}{30}
\bibstyle{ieeetr}
\@writefile{toc}{\contentsline {section}{References}{11}{section*.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{Biographies}{11}{IEEEbiography.0}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{Noah L. Schrick}{11}{IEEEbiography.1}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{Peter J. Hawrylak}{11}{IEEEbiography.2}\protected@file@percent }
\gdef \@abspage@last{11}

View File

@ -1,4 +1,4 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Arch Linux) (preloaded format=pdflatex 2023.9.6) 1 NOV 2023 16:51
This is pdfTeX, Version 3.141592653-2.6-1.40.25 (TeX Live 2023/Arch Linux) (preloaded format=pdflatex 2023.9.6) 2 DEC 2023 17:15
entering extended mode
restricted \write18 enabled.
%&-line parsing enabled.
@ -113,9 +113,7 @@ LaTeX Font Info: Font shape `OT1/ptm/bx/it' in size <24> not available
\IEEEPARstartletwidth=\dimen163
\c@IEEEbiography=\count199
\@IEEEtranrubishbin=\box52
)
** ATTENTION: Overriding command lockouts (line 2).
(/usr/share/texmf-dist/tex/latex/cite/cite.sty
) (/usr/share/texmf-dist/tex/latex/cite/cite.sty
LaTeX Info: Redefining \cite on input line 302.
LaTeX Info: Redefining \nocite on input line 332.
Package: cite 2015/02/27 v 5.5
@ -216,6 +214,88 @@ Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\ALC@tlm=\skip54
\algorithmicindent=\skip55
)
(/usr/share/texmf-dist/tex/latex/algorithms/algorithm.sty
Package: algorithm 2009/08/24 v0.1 Document Style `algorithm' - floating enviro
nment
(/usr/share/texmf-dist/tex/latex/float/float.sty
Package: float 2001/11/08 v1.3d Float enhancements (AL)
\c@float@type=\count282
\float@exts=\toks23
\float@box=\box55
\@float@everytoks=\toks24
\@floatcapt=\box56
)
\@float@every@algorithm=\toks25
\c@algorithm=\count283
)
(/usr/share/texmf-dist/tex/latex/subfig/subfig.sty
Package: subfig 2005/06/28 ver: 1.3 subfig package
(/usr/share/texmf-dist/tex/latex/caption/caption3.sty
Package: caption3 2023/03/12 v2.4 caption3 kernel (AR)
\caption@tempdima=\dimen173
\captionmargin=\dimen174
\caption@leftmargin=\dimen175
\caption@rightmargin=\dimen176
\caption@width=\dimen177
\caption@indent=\dimen178
\caption@parindent=\dimen179
\caption@hangindent=\dimen180
Package caption Info: Unknown document class (or package),
(caption) standard defaults will be used.
Package caption Info: \@makecaption = \long macro:#1#2->\ifx \@captype \@IEEEta
blestring \footnotesize \bgroup \par \centering \@IEEEtabletopskipstrut {\norma
lfont \footnotesize #1}\\{\normalfont \footnotesize \scshape #2}\par \addvspace
{0.5\baselineskip }\egroup \@IEEEtablecaptionsepspace \else \@IEEEfigurecaptio
nsepspace \setbox \@tempboxa \hbox {\normalfont \footnotesize {#1.}\nobreakspac
e \nobreakspace #2}\ifdim \wd \@tempboxa >\hsize \setbox \@tempboxa \hbox {\nor
malfont \footnotesize {#1.}\nobreakspace \nobreakspace }\parbox [t]{\hsize }{\n
ormalfont \footnotesize \noindent \unhbox \@tempboxa #2}\else \ifCLASSOPTIONcon
ference \hbox to\hsize {\normalfont \footnotesize \hfil \box \@tempboxa \hfil }
\else \hbox to\hsize {\normalfont \footnotesize \box \@tempboxa \hfil }\fi \fi
\fi on input line 1176.
)
\c@KVtest=\count284
\sf@farskip=\skip56
\sf@captopadj=\dimen181
\sf@capskip=\skip57
\sf@nearskip=\skip58
\c@subfigure=\count285
\c@subfigure@save=\count286
\c@lofdepth=\count287
\c@subtable=\count288
\c@subtable@save=\count289
\c@lotdepth=\count290
\sf@top=\skip59
\sf@bottom=\skip60
)
(/usr/share/texmf-dist/tex/latex/tools/array.sty
Package: array 2022/09/04 v2.5g Tabular extension package (FMi)
\col@sep=\dimen182
\ar@mcellbox=\box57
\extrarowheight=\dimen183
\NC@list=\toks26
\extratabsurround=\skip61
\backup@length=\skip62
\ar@cellbox=\box58
)
(/usr/share/texmf-dist/tex/latex/sttools/stfloats.sty
Package: stfloats 2017/03/27 v3.3 Improve float mechanism and baselineskip sett
ings
\@dblbotnum=\count291
\c@dblbotnumber=\count292
)
(/usr/share/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
(/usr/share/texmf-dist/tex/latex/tools/verbatim.sty
Package: verbatim 2022-07-02 v1.5u LaTeX2e package for verbatim enhancements
\every@verbatim=\toks27
\verbatim@line=\toks28
\verbatim@in@stream=\read2
)
(/usr/share/texmf-dist/tex/latex/graphics/graphicx.sty
Package: graphicx 2021/09/16 v1.2d Enhanced LaTeX Graphics (DPC,SPQR)
@ -233,18 +313,18 @@ Package graphics Info: Driver file: pdftex.def on input line 107.
(/usr/share/texmf-dist/tex/latex/graphics-def/pdftex.def
File: pdftex.def 2022/09/22 v1.2b Graphics/color driver for pdftex
))
\Gin@req@height=\dimen173
\Gin@req@width=\dimen174
\Gin@req@height=\dimen184
\Gin@req@width=\dimen185
)
(/usr/share/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2023/02/13 3.86 The Babel package
\babel@savecnt=\count282
\U@D=\dimen175
\babel@savecnt=\count293
\U@D=\dimen186
\l@unhyphenated=\language3
(/usr/share/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count283
\bbl@readstream=\read3
\bbl@dirlevel=\count294
Package babel Info: You haven't specified a language as a class or package
(babel) option. I'll load 'nil'. Reported on input line 4422.
@ -257,16 +337,8 @@ Package: textcomp 2020/02/02 v2.0n Standard LaTeX package
)
(/usr/share/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2021/02/14 v1.3d Input encoding file
\inpenc@prehook=\toks23
\inpenc@posthook=\toks24
)
(/usr/share/texmf-dist/tex/latex/float/float.sty
Package: float 2001/11/08 v1.3d Float enhancements (AL)
\c@float@type=\count284
\float@exts=\toks25
\float@box=\box55
\@float@everytoks=\toks26
\@floatcapt=\box56
\inpenc@prehook=\toks29
\inpenc@posthook=\toks30
)
(/usr/share/texmf-dist/tex/latex/xcolor/xcolor.sty
Package: xcolor 2022/06/12 v2.14 LaTeX color extensions (UK)
@ -287,6 +359,9 @@ Package xcolor Info: Model `HSB' substituted by `hsb' on input line 1374.
Package xcolor Info: Model `Gray' substituted by `gray' on input line 1375.
Package xcolor Info: Model `wave' substituted by `hsb' on input line 1376.
)
(/usr/share/texmf-dist/tex/latex/orcidlink/orcidlink.sty
Package: orcidlink 2021/06/11 v1.0.4 Linked ORCiD logo macro package
(/usr/share/texmf-dist/tex/latex/hyperref/hyperref.sty
Package: hyperref 2023-02-07 v7.00v Hypertext links for LaTeX
@ -337,11 +412,11 @@ Package: gettitlestring 2019/12/15 v1.6 Cleanup title references (HO)
(/usr/share/texmf-dist/tex/latex/kvoptions/kvoptions.sty
Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
))
\c@section@level=\count285
\c@section@level=\count295
)
\@linkdim=\dimen176
\Hy@linkcounter=\count286
\Hy@pagecounter=\count287
\@linkdim=\dimen187
\Hy@linkcounter=\count296
\Hy@pagecounter=\count297
(/usr/share/texmf-dist/tex/latex/hyperref/pd1enc.def
File: pd1enc.def 2023-02-07 v7.00v Hyperref: PDFDocEncoding definition (HO)
@ -354,7 +429,7 @@ Package: intcalc 2019/12/15 v1.3 Expandable calculations with integers (HO)
(/usr/share/texmf-dist/tex/generic/etexcmds/etexcmds.sty
Package: etexcmds 2019/12/15 v1.7 Avoid name clashes with e-TeX commands (HO)
)
\Hy@SavedSpaceFactor=\count288
\Hy@SavedSpaceFactor=\count298
(/usr/share/texmf-dist/tex/latex/hyperref/puenc.def
File: puenc.def 2023-02-07 v7.00v Hyperref: PDF Unicode definition (HO)
@ -368,14 +443,9 @@ Package hyperref Info: Plain pages OFF on input line 4192.
Package hyperref Info: Backreferencing OFF on input line 4197.
Package hyperref Info: Implicit mode ON; LaTeX internals redefined.
Package hyperref Info: Bookmarks ON on input line 4425.
\c@Hy@tempcnt=\count289
(/usr/share/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
\c@Hy@tempcnt=\count299
LaTeX Info: Redefining \url on input line 4763.
\XeTeXLinkMargin=\dimen177
\XeTeXLinkMargin=\dimen188
(/usr/share/texmf-dist/tex/generic/bitset/bitset.sty
Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
@ -384,9 +454,9 @@ Package: bitset 2019/12/09 v1.3 Handle bit-vector datatype (HO)
Package: bigintcalc 2019/12/15 v1.5 Expandable calculations on big integers (HO
)
))
\Fld@menulength=\count290
\Field@Width=\dimen178
\Fld@charsize=\dimen179
\Fld@menulength=\count300
\Field@Width=\dimen189
\Fld@charsize=\dimen190
Package hyperref Info: Hyper figures OFF on input line 6042.
Package hyperref Info: Link nesting OFF on input line 6047.
Package hyperref Info: Hyper index ON on input line 6050.
@ -399,9 +469,9 @@ Package hyperref Info: PDF/A mode OFF on input line 6072.
Package: atbegshi-ltx 2021/01/10 v1.0c Emulation of the original atbegshi
package with kernel methods
)
\Hy@abspage=\count291
\c@Item=\count292
\c@Hfootnote=\count293
\Hy@abspage=\count301
\c@Item=\count302
\c@Hfootnote=\count303
)
Package hyperref Info: Driver (autodetected): hpdftex.
@ -413,8 +483,8 @@ Package: atveryend-ltx 2020/08/19 v1.0a Emulation of the original atveryend pac
kage
with kernel methods
)
\Fld@listcount=\count294
\c@bookmark@seq@number=\count295
\Fld@listcount=\count304
\c@bookmark@seq@number=\count305
(/usr/share/texmf-dist/tex/latex/rerunfilecheck/rerunfilecheck.sty
Package: rerunfilecheck 2022-07-10 v1.10 Rerun checks for auxiliary files (HO)
@ -425,51 +495,317 @@ Package: uniquecounter 2019/12/15 v1.4 Provide unlimited unique counter (HO)
Package uniquecounter Info: New unique counter `rerunfilecheck' on input line 2
85.
)
\Hy@SectionHShift=\skip56
\Hy@SectionHShift=\skip63
)
Package hyperref Info: Option `colorlinks' set `true' on input line 24.
(/usr/share/texmf-dist/tex/latex/pgf/frontendlayer/tikz.sty
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgf.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfrcs.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-common.tex
\pgfutil@everybye=\toks31
\pgfutil@tempdima=\dimen191
\pgfutil@tempdimb=\dimen192
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfutil-latex.def
\pgfutil@abb=\box59
)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfrcs.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/pgf.revision.tex)
Package: pgfrcs 2023-01-15 v3.1.10 (3.1.10)
))
Package: pgf 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/latex/pgf/basiclayer/pgfcore.sty
(/usr/share/texmf-dist/tex/latex/pgf/systemlayer/pgfsys.sty
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys.code.tex
Package: pgfsys 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex
\pgfkeys@pathtoks=\toks32
\pgfkeys@temptoks=\toks33
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeyslibraryfiltered.code.te
x
\pgfkeys@tmptoks=\toks34
))
\pgf@x=\dimen193
\pgf@y=\dimen194
\pgf@xa=\dimen195
\pgf@ya=\dimen196
\pgf@xb=\dimen197
\pgf@yb=\dimen198
\pgf@xc=\dimen199
\pgf@yc=\dimen256
\pgf@xd=\dimen257
\pgf@yd=\dimen258
\w@pgf@writea=\write3
\r@pgf@reada=\read4
\c@pgf@counta=\count306
\c@pgf@countb=\count307
\c@pgf@countc=\count308
\c@pgf@countd=\count309
\t@pgf@toka=\toks35
\t@pgf@tokb=\toks36
\t@pgf@tokc=\toks37
\pgf@sys@id@count=\count310
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgf.cfg
File: pgf.cfg 2023-01-15 v3.1.10 (3.1.10)
)
Driver file for pgf: pgfsys-pdftex.def
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-pdftex.def
File: pgfsys-pdftex.def 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsys-common-pdf.def
File: pgfsys-common-pdf.def 2023-01-15 v3.1.10 (3.1.10)
)))
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsyssoftpath.code.tex
File: pgfsyssoftpath.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfsyssoftpath@smallbuffer@items=\count311
\pgfsyssoftpath@bigbuffer@items=\count312
)
(/usr/share/texmf-dist/tex/generic/pgf/systemlayer/pgfsysprotocol.code.tex
File: pgfsysprotocol.code.tex 2023-01-15 v3.1.10 (3.1.10)
))
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcore.code.tex
Package: pgfcore 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathutil.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathparser.code.tex
\pgfmath@dimen=\dimen259
\pgfmath@count=\count313
\pgfmath@box=\box60
\pgfmath@toks=\toks38
\pgfmath@stack@operand=\toks39
\pgfmath@stack@operation=\toks40
)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.basic.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.trigonometric.code
.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.random.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.comparison.code.te
x) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.base.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.round.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.misc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfunctions.integerarithmetics
.code.tex) (/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathcalc.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmathfloat.code.tex
\c@pgfmathroundto@lastzeros=\count314
))
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfint.code.tex)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepoints.code.tex
File: pgfcorepoints.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@picminx=\dimen260
\pgf@picmaxx=\dimen261
\pgf@picminy=\dimen262
\pgf@picmaxy=\dimen263
\pgf@pathminx=\dimen264
\pgf@pathmaxx=\dimen265
\pgf@pathminy=\dimen266
\pgf@pathmaxy=\dimen267
\pgf@xx=\dimen268
\pgf@xy=\dimen269
\pgf@yx=\dimen270
\pgf@yy=\dimen271
\pgf@zx=\dimen272
\pgf@zy=\dimen273
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathconstruct.code.tex
File: pgfcorepathconstruct.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@path@lastx=\dimen274
\pgf@path@lasty=\dimen275
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathusage.code.tex
File: pgfcorepathusage.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@shorten@end@additional=\dimen276
\pgf@shorten@start@additional=\dimen277
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorescopes.code.tex
File: pgfcorescopes.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfpic=\box61
\pgf@hbox=\box62
\pgf@layerbox@main=\box63
\pgf@picture@serial@count=\count315
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoregraphicstate.code.tex
File: pgfcoregraphicstate.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgflinewidth=\dimen278
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransformations.code.t
ex
File: pgfcoretransformations.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@pt@x=\dimen279
\pgf@pt@y=\dimen280
\pgf@pt@temp=\dimen281
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorequick.code.tex
File: pgfcorequick.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreobjects.code.tex
File: pgfcoreobjects.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepathprocessing.code.te
x
File: pgfcorepathprocessing.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorearrows.code.tex
File: pgfcorearrows.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfarrowsep=\dimen282
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreshade.code.tex
File: pgfcoreshade.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@max=\dimen283
\pgf@sys@shading@range@num=\count316
\pgf@shadingcount=\count317
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreimage.code.tex
File: pgfcoreimage.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoreexternal.code.tex
File: pgfcoreexternal.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfexternal@startupbox=\box64
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorelayers.code.tex
File: pgfcorelayers.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcoretransparency.code.tex
File: pgfcoretransparency.code.tex 2023-01-15 v3.1.10 (3.1.10)
) (/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorepatterns.code.tex
File: pgfcorepatterns.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/generic/pgf/basiclayer/pgfcorerdf.code.tex
File: pgfcorerdf.code.tex 2023-01-15 v3.1.10 (3.1.10)
)))
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleshapes.code.tex
File: pgfmoduleshapes.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfnodeparttextbox=\box65
)
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleplot.code.tex
File: pgfmoduleplot.code.tex 2023-01-15 v3.1.10 (3.1.10)
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-0-65.sty
Package: pgfcomp-version-0-65 2023-01-15 v3.1.10 (3.1.10)
\pgf@nodesepstart=\dimen284
\pgf@nodesepend=\dimen285
)
(/usr/share/texmf-dist/tex/latex/pgf/compatibility/pgfcomp-version-1-18.sty
Package: pgfcomp-version-1-18 2023-01-15 v3.1.10 (3.1.10)
))
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgffor.sty
(/usr/share/texmf-dist/tex/latex/pgf/utilities/pgfkeys.sty
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgfkeys.code.tex))
(/usr/share/texmf-dist/tex/latex/pgf/math/pgfmath.sty
(/usr/share/texmf-dist/tex/generic/pgf/math/pgfmath.code.tex))
(/usr/share/texmf-dist/tex/generic/pgf/utilities/pgffor.code.tex
Package: pgffor 2023-01-15 v3.1.10 (3.1.10)
\pgffor@iter=\dimen286
\pgffor@skip=\dimen287
\pgffor@stack=\toks41
\pgffor@toks=\toks42
))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/tikz.code.tex
Package: tikz 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibraryplothandlers.code.te
x
File: pgflibraryplothandlers.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgf@plot@mark@count=\count318
\pgfplotmarksize=\dimen288
)
\tikz@lastx=\dimen289
\tikz@lasty=\dimen290
\tikz@lastxsaved=\dimen291
\tikz@lastysaved=\dimen292
\tikz@lastmovetox=\dimen293
\tikz@lastmovetoy=\dimen294
\tikzleveldistance=\dimen295
\tikzsiblingdistance=\dimen296
\tikz@figbox=\box66
\tikz@figbox@bg=\box67
\tikz@tempbox=\box68
\tikz@tempbox@bg=\box69
\tikztreelevel=\count319
\tikznumberofchildren=\count320
\tikznumberofcurrentchild=\count321
\tikz@fig@count=\count322
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmodulematrix.code.tex
File: pgfmodulematrix.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfmatrixcurrentrow=\count323
\pgfmatrixcurrentcolumn=\count324
\pgf@matrix@numberofcolumns=\count325
)
\tikz@expandcount=\count326
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
topaths.code.tex
File: tikzlibrarytopaths.code.tex 2023-01-15 v3.1.10 (3.1.10)
)))
(/usr/share/texmf-dist/tex/generic/pgf/frontendlayer/tikz/libraries/tikzlibrary
svg.path.code.tex
File: tikzlibrarysvg.path.code.tex 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/libraries/pgflibrarysvg.path.code.tex
File: pgflibrarysvg.path.code.tex 2023-01-15 v3.1.10 (3.1.10)
(/usr/share/texmf-dist/tex/generic/pgf/modules/pgfmoduleparser.code.tex
File: pgfmoduleparser.code.tex 2023-01-15 v3.1.10 (3.1.10)
\pgfparserdef@arg@count=\count327
)
\pgf@lib@svg@last@x=\dimen297
\pgf@lib@svg@last@y=\dimen298
\pgf@lib@svg@last@c@x=\dimen299
\pgf@lib@svg@last@c@y=\dimen300
\pgf@lib@svg@count=\count328
\pgf@lib@svg@max@num=\count329
))
\@curXheight=\skip64
)
(/usr/share/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2023-01-16 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count296
\l__pdf_internal_box=\box57
\l__color_backend_stack_int=\count330
\l__pdf_internal_box=\box70
)
LaTeX Warning: Unused global option(s):
[lettersize].
(./Schrick-Noah_MPI-Tasking.aux)
\openout1 = `Schrick-Noah_MPI-Tasking.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 26.
LaTeX Font Info: ... okay on input line 26.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for PD1/pdf/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
LaTeX Font Info: Checking defaults for PU/pdf/m/n on input line 24.
LaTeX Font Info: ... okay on input line 24.
-- Lines per column: 56 (exact).
-- Lines per column: 58 (exact).
Package caption Info: Begin \AtBeginDocument code.
Package caption Info: subfig package v1.3 is loaded.
Package caption Info: End \AtBeginDocument code.
(/usr/share/texmf-dist/tex/context/base/mkii/supp-pdf.mkii
[Loading MPS to PDF converter (version 2006.09.02).]
\scratchcounter=\count297
\scratchdimen=\dimen180
\scratchbox=\box58
\nofMPsegments=\count298
\nofMParguments=\count299
\everyMPshowfont=\toks27
\MPscratchCnt=\count300
\MPscratchDim=\dimen181
\MPnumerator=\count301
\makeMPintoPDFobject=\count302
\everyMPtoPDFconversion=\toks28
\scratchcounter=\count331
\scratchdimen=\dimen301
\scratchbox=\box71
\nofMPsegments=\count332
\nofMParguments=\count333
\everyMPshowfont=\toks43
\MPscratchCnt=\count334
\MPscratchDim=\dimen302
\MPnumerator=\count335
\makeMPintoPDFobject=\count336
\everyMPtoPDFconversion=\toks44
) (/usr/share/texmf-dist/tex/latex/epstopdf-pkg/epstopdf-base.sty
Package: epstopdf-base 2020-01-24 v2.11 Base part for package epstopdf
Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
@ -479,30 +815,30 @@ Package epstopdf-base Info: Redefining graphics rule for `.eps' on input line 4
File: epstopdf-sys.cfg 2010/07/13 v1.3 Configuration of (r)epstopdf for TeX Liv
e
))
Package hyperref Info: Link coloring ON on input line 26.
Package hyperref Info: Link coloring OFF on input line 24.
(./Schrick-Noah_MPI-Tasking.out) (./Schrick-Noah_MPI-Tasking.out)
\@outlinefile=\write3
\openout3 = `Schrick-Noah_MPI-Tasking.out'.
\@outlinefile=\write4
\openout4 = `Schrick-Noah_MPI-Tasking.out'.
Underfull \hbox (badness 2318) in paragraph at lines 50--52
Underfull \hbox (badness 2318) in paragraph at lines 39--41
[]\OT1/ptm/b/it/9 Index Terms\OT1/ptm/b/n/9 ---Attack Graph; Compliance Graph;
MPI;
[]
Underfull \hbox (badness 2469) in paragraph at lines 55--56
Underfull \hbox (badness 2469) in paragraph at lines 44--45
\OT1/ptm/m/n/10 cybersecurity analysts are tasked to mitigate risk with
[]
Underfull \hbox (badness 2119) in paragraph at lines 55--56
Underfull \hbox (badness 2119) in paragraph at lines 44--45
\OT1/ptm/m/n/10 examinations of computer viruses through epidemiology
[]
Underfull \hbox (badness 2293) in paragraph at lines 59--60
Underfull \hbox (badness 2293) in paragraph at lines 48--49
\OT1/ptm/m/n/10 process to parallelize and deploy on High-Performance
[]
@ -511,66 +847,66 @@ ts/enc/dvips/base/8r.enc}
]
LaTeX Font Info: Trying to load font information for U+msa on input line 72.
LaTeX Font Info: Trying to load font information for U+msa on input line 61.
(/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 72.
LaTeX Font Info: Trying to load font information for U+msb on input line 61.
(/usr/share/texmf-dist/tex/latex/amsfonts/umsb.fd
File: umsb.fd 2013/01/14 v3.01 AMS symbols B
)
Underfull \hbox (badness 1584) in paragraph at lines 72--75
Underfull \hbox (badness 1584) in paragraph at lines 61--64
\OT1/ptm/m/n/10 improvement specific to attack graphs. As a means of
[]
Underfull \hbox (badness 4378) in paragraph at lines 76--79
\OT1/ptm/m/n/10 parallelization. The authors of [[][]23[][]] leverage OpenMP
Underfull \hbox (badness 4378) in paragraph at lines 65--68
\OT1/ptm/m/n/10 parallelization. The authors of [[]23[]] leverage OpenMP
[]
Underfull \hbox (badness 3260) in paragraph at lines 76--79
Underfull \hbox (badness 3260) in paragraph at lines 65--68
\OT1/ptm/m/n/10 to parallelize the exploration of a FIFO queue. This
[]
[2]
<./images/horiz_task.drawio.png, id=177, 1181.41376pt x 785.93625pt>
<./images/horiz_task.drawio.png, id=176, 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 115
Package pdftex.def Info: ./images/horiz_task.drawio.png used on input line 104
.
(pdftex.def) Requested size: 252.0pt x 167.64183pt.
<./images/node-alloc.png, id=180, 818.30719pt x 536.75531pt>
[2]
<./images/node-alloc.png, id=202, 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 127.
Package pdftex.def Info: ./images/node-alloc.png used on input line 116.
(pdftex.def) Requested size: 252.0pt x 165.29492pt.
[3 <./images/horiz_task.drawio.png> <./images/node-alloc.PNG>]
<./images/Task1-Data-Dist.png, id=192, 597.98407pt x 197.48781pt>
<./images/Task1-Data-Dist.png, id=206, 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 144.
Package pdftex.def Info: ./images/Task1-Data-Dist.png used on input line 133.
(pdftex.def) Requested size: 252.0pt x 83.22455pt.
<./images/Task1-Case1.png, id=196, 586.44093pt x 339.51843pt>
[3 <./images/horiz_task.drawio.png> <./images/node-alloc.PNG>]
<./images/Task1-Case1.png, id=218, 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 153.
Package pdftex.def Info: ./images/Task1-Case1.png used on input line 142.
(pdftex.def) Requested size: 252.0pt x 145.89163pt.
<./images/Task1-Case2.png, id=197, 702.37407pt x 414.79968pt>
<./images/Task1-Case2.png, id=219, 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 160.
Package pdftex.def Info: ./images/Task1-Case2.png used on input line 149.
(pdftex.def) Requested size: 252.0pt x 148.82143pt.
<./images/Sync-Fire.png, id=199, 373.395pt x 1024.82875pt>
<./images/Sync-Fire.png, id=221, 373.395pt x 1024.82875pt>
File: ./images/Sync-Fire.png Graphic file (type png)
<use ./images/Sync-Fire.png>
Package pdftex.def Info: ./images/Sync-Fire.png used on input line 170.
Package pdftex.def Info: ./images/Sync-Fire.png used on input line 159.
(pdftex.def) Requested size: 201.60077pt x 553.32109pt.
Underfull \hbox (badness 10000) in paragraph at lines 170--172
Underfull \hbox (badness 10000) in paragraph at lines 159--161
[][]
[]
@ -578,133 +914,133 @@ Underfull \hbox (badness 10000) in paragraph at lines 170--172
se2.PNG>]
LaTeX Warning: No positions in optional float specifier.
Default added (so using `tbp') on input line 185.
Default added (so using `tbp') on input line 174.
[5 <./images/Sync-Fire.png>]
Underfull \hbox (badness 1389) in paragraph at lines 216--217
Underfull \hbox (badness 1389) in paragraph at lines 205--206
\OT1/ptm/m/n/10 the performance of each task. Generating larger graphs
[]
[5 <./images/Sync-Fire.png>]
LaTeX Warning: No positions in optional float specifier.
Default added (so using `tbp') on input line 218.
Default added (so using `tbp') on input line 207.
<./images/NA.png, id=223, 369.38pt x 118.4425pt>
<./images/NA.png, id=245, 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 242.
Package pdftex.def Info: ./images/NA.png used on input line 231.
(pdftex.def) Requested size: 184.68954pt x 59.2211pt.
[6 <./images/NA.png>]
<./images/Applicable_E.png, id=234, 360.34625pt x 104.39pt>
<./images/Applicable_E.png, id=256, 360.34625pt x 104.39pt>
File: ./images/Applicable_E.png Graphic file (type png)
<use ./images/Applicable_E.png>
Package pdftex.def Info: ./images/Applicable_E.png used on input line 266.
Package pdftex.def Info: ./images/Applicable_E.png used on input line 255.
(pdftex.def) Requested size: 180.17268pt x 52.19485pt.
Underfull \hbox (badness 2057) in paragraph at lines 279--281
Underfull \hbox (badness 2057) in paragraph at lines 268--270
[]\OT1/ptm/m/n/10 The database load parameter was changed based on
[]
Underfull \hbox (badness 7451) in paragraph at lines 299--300
Underfull \hbox (badness 7451) in paragraph at lines 288--289
\OT1/ptm/m/n/10 All nodes are connected with a 10Gbps Infiniband
[]
[7 <./images/Applicable_E.png>]
Underfull \hbox (badness 1675) in paragraph at lines 305--306
\OT1/ptm/m/n/10 benchmark suite. The preliminary results gathered were
Underfull \hbox (badness 3078) in paragraph at lines 294--295
\OT1/ptm/m/n/10 benchmark suite. For the local University cluster, job
[]
<./images/nodes-runtime.png, id=249, 431.4519pt x 330.9966pt>
[7 <./images/Applicable_E.png>]
<./images/nodes-runtime.png, id=271, 431.4519pt x 330.9966pt>
File: ./images/nodes-runtime.png Graphic file (type png)
<use ./images/nodes-runtime.png>
Package pdftex.def Info: ./images/nodes-runtime.png used on input line 311.
Package pdftex.def Info: ./images/nodes-runtime.png used on input line 302.
(pdftex.def) Requested size: 252.0pt x 193.33171pt.
<./images/exploits-runtime.png, id=250, 409.7709pt x 350.5095pt>
<./images/exploits-runtime.png, id=272, 437.9562pt x 350.5095pt>
File: ./images/exploits-runtime.png Graphic file (type png)
<use ./images/exploits-runtime.png>
Package pdftex.def Info: ./images/exploits-runtime.png used on input line 312.
Package pdftex.def Info: ./images/exploits-runtime.png used on input line 303.
(pdftex.def) Requested size: 252.0pt x 215.55405pt.
<./images/applicability-runtime.png, id=251, 431.4519pt x 337.5009pt>
(pdftex.def) Requested size: 252.0pt x 201.68045pt.
<./images/applicability-runtime.png, id=273, 431.4519pt x 337.5009pt>
File: ./images/applicability-runtime.png Graphic file (type png)
<use ./images/applicability-runtime.png>
Package pdftex.def Info: ./images/applicability-runtime.png used on input line
319.
310.
(pdftex.def) Requested size: 252.0pt x 197.13081pt.
<./images/dbload-runtime.png, id=252, 431.4519pt x 337.5009pt>
<./images/dbload-runtime.png, id=274, 431.4519pt x 337.5009pt>
File: ./images/dbload-runtime.png Graphic file (type png)
<use ./images/dbload-runtime.png>
Package pdftex.def Info: ./images/dbload-runtime.png used on input line 320.
Package pdftex.def Info: ./images/dbload-runtime.png used on input line 311.
(pdftex.def) Requested size: 252.0pt x 197.13081pt.
<./images/overall-speedup.png, id=256, 409.7709pt x 346.1733pt>
File: ./images/overall-speedup.png Graphic file (type png)
<use ./images/overall-speedup.png>
Package pdftex.def Info: ./images/overall-speedup.png used on input line 331.
(pdftex.def) Requested size: 252.0pt x 212.88737pt.
<./images/overall-efficiency.png, id=259, 409.7709pt x 346.1733pt>
File: ./images/overall-efficiency.png Graphic file (type png)
<use ./images/overall-efficiency.png>
Package pdftex.def Info: ./images/overall-efficiency.png used on input line 34
1.
(pdftex.def) Requested size: 252.0pt x 212.88737pt.
Underfull \vbox (badness 1005) has occurred while \output is active []
Underfull \vbox (badness 1502) has occurred while \output is active []
[8 <./images/nodes-runtime.png> <./images/exploits-runtime.png>]
<./images/exploit-speedup.png, id=275, 419.8887pt x 344.0052pt>
File: ./images/exploit-speedup.png Graphic file (type png)
<use ./images/exploit-speedup.png>
Package pdftex.def Info: ./images/exploit-speedup.png used on input line 351.
(pdftex.def) Requested size: 252.0pt x 206.46245pt.
<./images/exploit-eff.png, id=276, 419.8887pt x 344.0052pt>
File: ./images/exploit-eff.png Graphic file (type png)
<use ./images/exploit-eff.png>
Package pdftex.def Info: ./images/exploit-eff.png used on input line 352.
(pdftex.def) Requested size: 252.0pt x 206.46245pt.
Underfull \vbox (badness 3815) has occurred while \output is active []
[9 <./images/applicability-runtime.png> <./images/dbload-runtime.png> <./image
s/overall-speedup.png> <./images/overall-efficiency.png>]
<./images/appl-speedup.png, id=287, 409.7709pt x 344.0052pt>
[8 <./images/nodes-runtime.png> <./images/exploits-runtime.png> <./images/appl
icability-runtime.png> <./images/dbload-runtime.png>]
<./images/overall-speedup.png, id=289, 409.7709pt x 346.1733pt>
File: ./images/overall-speedup.png Graphic file (type png)
<use ./images/overall-speedup.png>
Package pdftex.def Info: ./images/overall-speedup.png used on input line 322.
(pdftex.def) Requested size: 252.0pt x 212.88737pt.
<./images/overall-efficiency.png, id=292, 409.7709pt x 346.1733pt>
File: ./images/overall-efficiency.png Graphic file (type png)
<use ./images/overall-efficiency.png>
Package pdftex.def Info: ./images/overall-efficiency.png used on input line 33
2.
(pdftex.def) Requested size: 252.0pt x 212.88737pt.
<./images/exploit-speedup.png, id=297, 419.8887pt x 344.0052pt>
File: ./images/exploit-speedup.png Graphic file (type png)
<use ./images/exploit-speedup.png>
Package pdftex.def Info: ./images/exploit-speedup.png used on input line 342.
(pdftex.def) Requested size: 252.0pt x 206.46245pt.
<./images/exploit-eff.png, id=298, 419.8887pt x 344.0052pt>
File: ./images/exploit-eff.png Graphic file (type png)
<use ./images/exploit-eff.png>
Package pdftex.def Info: ./images/exploit-eff.png used on input line 343.
(pdftex.def) Requested size: 252.0pt x 206.46245pt.
<./images/appl-speedup.png, id=299, 409.7709pt x 344.0052pt>
File: ./images/appl-speedup.png Graphic file (type png)
<use ./images/appl-speedup.png>
Package pdftex.def Info: ./images/appl-speedup.png used on input line 359.
Package pdftex.def Info: ./images/appl-speedup.png used on input line 350.
(pdftex.def) Requested size: 252.0pt x 211.55406pt.
<./images/appl-eff.png, id=288, 409.7709pt x 344.0052pt>
<./images/appl-eff.png, id=300, 409.7709pt x 344.0052pt>
File: ./images/appl-eff.png Graphic file (type png)
<use ./images/appl-eff.png>
Package pdftex.def Info: ./images/appl-eff.png used on input line 360.
Package pdftex.def Info: ./images/appl-eff.png used on input line 351.
(pdftex.def) Requested size: 252.0pt x 211.55406pt.
Underfull \hbox (badness 2941) in paragraph at lines 368--369
Underfull \hbox (badness 2941) in paragraph at lines 359--360
\OT1/ptm/m/n/10 each Task having limited stress during the generation
[]
Underfull \hbox (badness 2753) in paragraph at lines 368--369
Underfull \hbox (badness 2753) in paragraph at lines 359--360
\OT1/ptm/m/n/10 process, speedups of over 3.5x can still be obtained.
[]
Underfull \hbox (badness 1490) in paragraph at lines 368--369
Underfull \hbox (badness 1490) in paragraph at lines 359--360
\OT1/ptm/m/n/10 Exploit applicability and database load parameters were
[]
Underfull \hbox (badness 1406) in paragraph at lines 368--369
Underfull \hbox (badness 1406) in paragraph at lines 359--360
\OT1/ptm/m/n/10 almost entirely unexplored during the preliminary result
[]
Underfull \hbox (badness 2027) in paragraph at lines 368--369
Underfull \hbox (badness 2027) in paragraph at lines 359--360
\OT1/ptm/m/n/10 applicability and database load are introduced into the
[]
[10 <./images/exploit-speedup.png> <./images/exploit-eff.png> <./images/appl-sp
eedup.png> <./images/appl-eff.png>]
Underfull \hbox (badness 4779) in paragraph at lines 374--375
[9 <./images/overall-speedup.png> <./images/overall-efficiency.png>]
Underfull \hbox (badness 4779) in paragraph at lines 365--366
[]\OT1/ptm/m/n/10 The analysis portion of this work also has room
[]
@ -713,7 +1049,8 @@ Underfull \hbox (badness 1442) in paragraph at lines 21--26
\OT1/ptm/m/n/8 A Focus on Cyberphysical Systems and Internet of Things,'' in
[]
[10 <./images/exploit-speedup.png> <./images/exploit-eff.png> <./images/appl-sp
eedup.png> <./images/appl-eff.png>]
Underfull \hbox (badness 1527) in paragraph at lines 56--58
[]\OT1/ptm/m/n/8 P. Pacheco, \OT1/ptm/m/it/8 An Introduction to Parallel Progra
mming\OT1/ptm/m/n/8 . Morgan
@ -745,30 +1082,52 @@ Underfull \hbox (badness 10000) in paragraph at lines 143--146
[]
)
<./images/Schrick-Noah_Author-Photo.png, id=325, 1865.46938pt x 2031.84094pt>
File: ./images/Schrick-Noah_Author-Photo.png Graphic file (type png)
<use ./images/Schrick-Noah_Author-Photo.png>
Package pdftex.def Info: ./images/Schrick-Noah_Author-Photo.png used on input
line 376.
(pdftex.def) Requested size: 72.24348pt x 78.68651pt.
File: ./images/Schrick-Noah_Author-Photo.png Graphic file (type png)
<use ./images/Schrick-Noah_Author-Photo.png>
Package pdftex.def Info: ./images/Schrick-Noah_Author-Photo.png used on input
line 376.
(pdftex.def) Requested size: 72.24348pt x 78.68651pt.
** Conference Paper **
Before submitting the final camera ready copy, remember to:
Underfull \hbox (badness 2790) in paragraph at lines 376--378
[]\OT1/ptm/m/n/8 His research focus is on cybersecurity and
[]
1. Manually equalize the lengths of two columns on the last page
of your paper;
<./images/Hawrylak-Peter_Author-Photo.jpg, id=328, 90.3375pt x 90.3375pt>
File: ./images/Hawrylak-Peter_Author-Photo.jpg Graphic file (type jpg)
<use ./images/Hawrylak-Peter_Author-Photo.jpg>
Package pdftex.def Info: ./images/Hawrylak-Peter_Author-Photo.jpg used on inpu
t line 385.
(pdftex.def) Requested size: 72.27008pt x 72.27008pt.
File: ./images/Hawrylak-Peter_Author-Photo.jpg Graphic file (type jpg)
<use ./images/Hawrylak-Peter_Author-Photo.jpg>
Package pdftex.def Info: ./images/Hawrylak-Peter_Author-Photo.jpg used on inpu
t line 385.
(pdftex.def) Requested size: 72.27008pt x 72.27008pt.
2. Ensure that any PostScript and/or PDF output post-processing
uses only Type 1 fonts and that every step in the generation
process uses the appropriate paper size.
Underfull \hbox (badness 1748) in paragraph at lines 385--389
\OT1/ptm/m/n/8 low-power wireless devices, Internet of Things
[]
[11] (./Schrick-Noah_MPI-Tasking.aux)
[11 <./images/Schrick-Noah_Author-Photo.png> <./images/Hawrylak-Peter_Author-Ph
oto.jpg>] (./Schrick-Noah_MPI-Tasking.aux)
Package rerunfilecheck Info: File `Schrick-Noah_MPI-Tasking.out' has not change
d.
(rerunfilecheck) Checksum: 267D7A1F68719DE5E57F3E8948B6C837;3398.
(rerunfilecheck) Checksum: 22B344E44E9C675B1F33EDEF6017B654;3805.
)
Here is how much of TeX's memory you used:
12303 strings out of 477985
196319 string characters out of 5840059
1873388 words of memory out of 5000000
32237 multiletter control sequences out of 15000+600000
550927 words of font info for 105 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
75i,14n,76p,2022b,488s stack positions out of 10000i,1000n,20000p,200000b,200000s
23908 strings out of 477985
451816 string characters out of 5840059
1874388 words of memory out of 5000000
43594 multiletter control sequences out of 15000+600000
553141 words of font info for 107 fonts, out of 8000000 for 9000
18 hyphenation exceptions out of 8191
99i,14n,94p,2031b,817s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/share/
texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/share/texmf-dist/font
s/type1/public/amsfonts/cm/cmr7.pfb></usr/share/texmf-dist/fonts/type1/public/a
@ -776,10 +1135,10 @@ msfonts/cm/cmsy10.pfb></usr/share/texmf-dist/fonts/type1/public/amsfonts/cm/cms
y7.pfb></usr/share/texmf-dist/fonts/type1/urw/times/utmb8a.pfb></usr/share/texm
f-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/utmri8a.pfb>
Output written on Schrick-Noah_MPI-Tasking.pdf (11 pages, 727478 bytes).
Output written on Schrick-Noah_MPI-Tasking.pdf (11 pages, 10269735 bytes).
PDF statistics:
368 PDF objects out of 1000 (max. 8388607)
299 compressed objects within 3 object streams
82 named destinations out of 1000 (max. 500000)
283 words of extra memory for PDF output out of 10000 (max. 10000000)
399 PDF objects out of 1000 (max. 8388607)
319 compressed objects within 4 object streams
85 named destinations out of 1000 (max. 500000)
353 words of extra memory for PDF output out of 10000 (max. 10000000)

View File

@ -22,3 +22,6 @@
\BOOKMARK [1][-]{section.7}{\376\377\000A\000n\000a\000l\000y\000s\000i\000s\000\040\000a\000n\000d\000\040\000R\000e\000s\000u\000l\000t\000s}{}% 22
\BOOKMARK [1][-]{section.8}{\376\377\000C\000o\000n\000c\000l\000u\000s\000i\000o\000n\000\040\000a\000n\000d\000\040\000F\000u\000t\000u\000r\000e\000\040\000W\000o\000r\000k}{}% 23
\BOOKMARK [1][-]{section*.1}{\376\377\000R\000e\000f\000e\000r\000e\000n\000c\000e\000s}{}% 24
\BOOKMARK [1][-]{IEEEbiography.0}{\376\377\000B\000i\000o\000g\000r\000a\000p\000h\000i\000e\000s}{}% 25
\BOOKMARK [2][-]{IEEEbiography.1}{\376\377\000N\000o\000a\000h\000\040\000L\000.\000\040\000S\000c\000h\000r\000i\000c\000k}{IEEEbiography.0}% 26
\BOOKMARK [2][-]{IEEEbiography.2}{\376\377\000P\000e\000t\000e\000r\000\040\000J\000.\000\040\000H\000a\000w\000r\000y\000l\000a\000k}{IEEEbiography.0}% 27

Binary file not shown.

View File

@ -1,9 +1,13 @@
\documentclass[conference]{IEEEtran}
\IEEEoverridecommandlockouts
% The preceding line is only needed to identify funding in the first footnote. If that is unneeded, please comment it out.
\documentclass[lettersize,journal]{IEEEtran}
\usepackage{cite}
\usepackage{amsmath,amssymb,amsfonts}
\usepackage{algorithmic}
\usepackage{algorithm}
\usepackage[caption=false,font=normalsize,labelfont=sf,textfont=sf]{subfig}
\usepackage{array}
\usepackage{stfloats}
\usepackage{url}
\usepackage{verbatim}
\usepackage{graphicx}
\graphicspath{ {./images/} }
\usepackage{babel} % Bibliography
@ -11,36 +15,21 @@
\usepackage[utf8]{inputenc}
\usepackage{float}
\usepackage{xcolor}
\usepackage{orcidlink}
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
\hyphenation{op-tical net-works semi-conduc-tor IEEE-Xplore}
\usepackage[hidelinks]{hyperref} % Clickable TOC Links
\hypersetup{
colorlinks,
citecolor=black,
filecolor=black,
linkcolor=black,
urlcolor=black
}
\begin{document}
\title{Parallelization of Large-Scale Attack and Compliance Graph Generation Using Message-Passing Interface
}
\author{\IEEEauthorblockN{Noah L. Schrick}
\IEEEauthorblockA{\textit{Tandy School of Computer Science} \\
\textit{The University of Tulsa}\\
Tulsa, USA \\
noah-schrick@utulsa.edu}
\and
\IEEEauthorblockN{Peter J. Hawrylak}
\IEEEauthorblockA{\textit{Tandy School of Computer Science} \\
\textit{The University of Tulsa}\\
Tulsa, USA \\
peter-hawrylak@utulsa.edu}
}
\author{NOAH L. SCHRICK\,\orcidlink{0000-0003-0875-8927}~\IEEEmembership{Member,~IEEE,}, AND PETER J. HAWRYLAK\,\orcidlink{0000-0003-3268-7452},~\IEEEmembership{Senior Member,~IEEE,}
%
\thanks{The authors are affiliated with the Tandy School of Computer Science, Department of Computer Science, University of Tulsa, Tulsa,
OK 74104 USA (e-mail: noah-schrick@utulsa.edu, peter-hawrylak@utulsa.edu).}}%
\maketitle
\begin{abstract}
@ -52,11 +41,11 @@ Attack Graph; Compliance Graph; MPI; High-Performance Computing; Cybersecurity;
\end{IEEEkeywords}
\section{Introduction} \label{sec:Intro}
As the size of computer networks continues to grow, cybersecurity analysts are tasked to mitigate risk with increasing difficulty. The authors of \cite{9678822}, \cite{7993827}, and \cite{8652334} discuss how the rapidly expanding network sizes bring about drastic changes along with the requirement to shift and refocus to accommodate the expansion. This includes presenting novel architectures to support the ever-growing IPTV networks, examinations of computer viruses through epidemiology modeling, and evaluations of new routing schemes. In recent years, a greater usage of cyber-physical systems and a growing adoption of the Internet of Things (IoT) also contributes to an increased need for risk mitigation across varying types of networks, as discussed by the authors of \cite{baloyi_guidelines_2019}, \cite{allman_complying_2006}, and \cite{j_hale_compliance_nodate}. One approach for analyzing the large number of hosts and growing lists of exploits is to automate the generation of attack or compliance graphs for later use. Attack and compliance graphs are directed acyclic graphs (DAGs) that typically represent one or many systems as nodes in a graph, and any changes that could be made to them as edges. The automation of these graphs has been used and presented by authors such as \cite{ou_scalable_2006}, \cite{CPSIOT}, and \cite{ming_jo}. The graph generators will take system information and exploits to check for as input, and will exhaustively draw all possible ways that the systems may be at risk of a cybersecurity attack or at risk of violating a compliance regulation or mandate. If a system is able to be modified through a setting change (regardless of intent), have its compliance standing altered, or have a policy updated, an edge is drawn from that node to a new node with the changed system properties. This process is repeated until all possible alterations are identified and represented in the resulting attack or compliance graph.
As the size of computer networks continues to grow, cybersecurity analysts are tasked to mitigate risk with increasing difficulty. The authors of \cite{9678822}, \cite{7993827}, and \cite{8652334} discuss how the rapidly expanding network sizes bring about drastic changes along with the requirement to shift and refocus to accommodate the expansion. This includes presenting novel architectures to support the ever-growing IPTV networks, examinations of computer viruses through epidemiology modeling, and evaluations of new routing schemes. In recent years, a greater usage of cyber-physical systems and a growing adoption of the Internet of Things (IoT) also contributes to an increased need for risk mitigation across varying types of networks, as discussed by the authors of \cite{baloyi_guidelines_2019}, \cite{allman_complying_2006}, and \cite{j_hale_compliance_nodate}. One approach for analyzing the large number of hosts (assets) and growing lists of exploits is to automate the generation of attack or compliance graphs for later use. Attack and compliance graphs are directed acyclic graphs (DAGs) that typically represent one or many systems as nodes in a graph, and any changes that could be made to them as edges. The automation of these graphs has been used and presented by authors such as \cite{ou_scalable_2006}, \cite{CPSIOT}, and \cite{ming_jo}. The graph generators will take system information and exploits to check for as input, and will exhaustively draw all possible ways that the systems may be at risk of a cybersecurity attack or at risk of violating a compliance regulation or mandate. If a system is able to be modified through a setting change (regardless of intent), have its compliance standing altered, or have a policy updated, an edge is drawn from that node to a new node with the changed system properties. This process is repeated until all possible alterations are identified and represented in the resulting attack or compliance graph.
Due to the expansion in network size, and with the inclusion of IoT and cyber-physical devices, the generation of attack and compliance graph quickly becomes difficult with the large number of assets needed to be processed. In addition, the number of regulatory and compliance checks, the large number of exploit and vulnerability entries available, and any custom internal standard checks or zero-day scripting causes a state space explosion in the graph generation process. As a result, real-world graphs become infeasible to generate and process serially.
The attack and compliance graph generation is a viable process to parallelize and deploy on High-Performance Computing (HPC) environments, and related parallel and speedup works are discussed in Section \ref{sec:rel_works}. This work presents an extension to RAGE (RAGE Attack Graph Engine \cite{cook_rage_2018}) 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 a widely used message-passing API, and one goal of this work was 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.
The attack and compliance graph generation is a viable process to parallelize and deploy on High-Performance Computing (HPC) environments, and related parallel and speedup works are discussed in Section \ref{sec:rel_works}. This work presents an extension to RAGE (RAGE Attack Graph Engine) \cite{cook_rage_2018} 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 a widely used message-passing API, and one goal of this work was 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} \label{sec:rel_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
@ -114,12 +103,12 @@ attack and compliance graph generation.
\begin{figure}[htp]
\includegraphics[width=\linewidth]{"./images/horiz_task.drawio.png"}
\vspace{.2truein} \centerline{}
\caption{Task Overview of the Attack and Compliance Graph Generation Process}
\caption{Overview of the Tasking Pipeline for the Attack and Compliance Graph Generation Process}
\label{fig:tasks}
\end{figure}
\subsection{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}; where ``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.
@ -138,7 +127,7 @@ The underlying communication structure for the tasking approach relies on a pseu
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. Additional detail is 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.
\subsubsection{Task 1}
Task 1 begins by distributing the workload between nodes based on the local task communicator rank. Rather than splitting the exploit list at the root node and sending sub-lists to each node allocated to Task 1, each node checks its local communicator rank and performs a modulo operation with the number of nodes allocated to determine whether it should proceed with the current iteration of the exploit loop. Since the exploit list is static, each node has the exploit list initialized prior to the generation process, and communication cost can be avoided from sending sub-lists to each node. Each node in Task 1 works to compile a reduced exploit list that is applicable to the current network state. A breakdown of the Task 1 distribution can be seen in Figure \ref{fig:Task1-Data-Dist}.
Task 1 begins by distributing the workload between nodes based on the local task communicator rank. Rather than splitting the exploit list at the root node and sending sub-lists to each node allocated to Task 1, each node checks its local communicator rank and performs a modulo operation with the number of nodes allocated to determine whether it should proceed with the current iteration of the exploit loop. Since the exploit list is static, each node has the exploit list initialized prior to the generation process, and communication cost can be avoided from sending sub-lists to each node. Each node in Task 1 works to compile a reduced exploit list that is applicable to the current network state. A breakdown of the Task 1 workload distribution can be seen in Figure \ref{fig:Task1-Data-Dist}.
\begin{figure}[htp]
\includegraphics[width=\linewidth]{"./images/Task1-Data-Dist.png"}
@ -302,7 +291,9 @@ All nodes are connected with a 10Gbps Infiniband interconnect.
Each parameter discussed in this section was individually changed until all permutations of parameters were explored. In addition to changing the parameters, all tests were conducted on a varying number of nodes. All permutations of parameters were examined on 1 compute node (serially) through 12 compute nodes. A bash script for looping through parameters was created on the distributed computing testing platform, with jobs sent to Slurm Workload Manager \cite{Slurm}. When a job is completed with Slurm, the bash script would use grep on the output file to extract the necessary data, and add it to a CSV file that was used for the data analysis.
\section{Analysis and Results}
Due to a limited amount of compute time, only preliminary results were gathered, instead of deploying the entire testing benchmark suite. The preliminary results gathered were intended to be the ``slowest" tests that would have the lowest speedup. The ``worst-case", minimum-bound data was collected to determine potential success of this approach. If the slowest tests still yielded promising speedups or efficiencies, then this approach would be viable and appealing for future, in-depth testing that could stress each component of the generation process.
Due to a limited amount of compute time, only preliminary results were gathered, instead of deploying the entire testing benchmark suite. For the local University cluster, job allocations had a fixed amount of allowed runtime prior to job scheduler termination. Users were also permitted only a limited amount of concurrent job allocations. With a limited amount of concurrent jobs and a limited amount of job runtime, the full benchmark suite would need to be broken up into several sequences of jobs that would span across a great length of time, since the next jobs could only begin once the previous sequence ended.
The preliminary results gathered were intended to be the ``slowest" tests that would have the lowest speedup. The ``worst-case", minimum-bound data was collected to determine potential success of this approach. If the slowest tests still yielded promising speedups or efficiencies, then this approach would be viable and appealing for future, in-depth testing that could stress each component of the generation process.
Exploratory data analysis was performed on the resulting data using Python to ascertain data relationships. Due to the multivariate nature of the data, there is difficulty visualizing all four independent variables (parameters) and the outcome (runtime) simultaneously. Using pivot tables, Figures \ref{fig:nodes-exp} and \ref{fig:appl-load} show the runtime as they relate to the average of each individual parameter. These figures display the expected outcome: as the number of nodes increase, the runtime decreases, and as the number of exploits, applicability of exploits, and database load increases, the runtime likewise increases.
@ -310,7 +301,7 @@ Exploratory data analysis was performed on the resulting data using Python to as
\centering
\includegraphics[width=\linewidth]{"./images/nodes-runtime.png"}
\includegraphics[width=\linewidth]{"./images/exploits-runtime.png"}
\caption{Number of Nodes and Exploits (Averaged) vs. Runtime (ms)}
\caption{Number of Nodes and Number of Exploits (Averaged) vs. Runtime (ms)}
\label{fig:nodes-exp}
\end{figure}
@ -330,7 +321,7 @@ Figure \ref{fig:overall-speedup} displays the overall minimum, maximum, and mean
\centering
\includegraphics[width=\linewidth]{"./images/overall-speedup.png"}
\vspace{.2truein} \centerline{}
\caption{Minimum, Maximum, and Mean Speedups of MPI Tasking Across All Problem Sizes}
\caption{Minimum, Maximum, and Mean Speedup of MPI Tasking Across All Problem Sizes}
\label{fig:overall-speedup}
\end{figure}
@ -340,7 +331,7 @@ Figure \ref{fig:overall-efficiency} displays the overall minimum, maximum, and m
\centering
\includegraphics[width=\linewidth]{"./images/overall-efficiency.png"}
\vspace{.2truein} \centerline{}
\caption{Minimum, Maximum, and Mean Efficiencies of MPI Tasking Across All Problem Sizes}
\caption{Minimum, Maximum, and Mean Efficiency of MPI Tasking Across All Problem Sizes}
\label{fig:overall-efficiency}
\end{figure}
@ -377,4 +368,24 @@ The analysis portion of this work also has room for additional investigations. T
\bibliography{Bibliography}
\bibliographystyle{ieeetr}
\begin{IEEEbiography}[
{
\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{"./images/Schrick-Noah_Author-Photo.png"}
}
]
{Noah L. Schrick}
is a fourth-year PhD student in Computer Science at the University of Tulsa. He received his Bachelor of Science in Electrical and Computer Engineering and his Master of Science in Computer Science at the University of Tulsa.\par His research focus is on cybersecurity and compliance, where he is working on the analysis of large-scale attack and compliance graphs to detect, correct, and predict violations in regulations or mandates. He has additional research interests in high-performance computing, research computing, platform engineering, and scientific software development. Noah L. Schrick is a TU-Cyber Fellow at the University of Tulsa, where he focuses on the innovation and growth of industry-applicable research.
\end{IEEEbiography}
\begin{IEEEbiography}[
{
\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{"./images/Hawrylak-Peter_Author-Photo.jpg"}
}
]
{Peter J. Hawrylak}
is an Associate Professor in the Department of Electrical and Computer Engineering, with joint appointments in the Tandy School for Computer Science and the School of Cyber Studies, at The University of Tulsa, Tulsa, OK, USA. He has published more than 60 publications and holds 15 patents in the radio frequency identification (RFID), energy harvesting, and cyber-security areas. His research interests include RFID, security for low-power wireless devices, Internet of Things applications, critical infrastructure security, high-performance computing, and digital design. Dr. Hawrylak's research has been supported by NASA, DOD, the U.S. Army, DOE, Argonne National Laboratory, DOT, EPA, CDC, NSF, and OCAST.\par
Dr. Hawrylak is a senior member of the IEEE and IEEE Computer Society, has served as Secretary of the Tulsa Section of the IEEE 2015-2018, Vice-Chair of the Tulsa Section of the IEEE 2019-2020, and is currently serving as Chair of the Tulsa Section of the IEEE (2020-Present) leading the Section through the COVID-19 pandemic. He served as chair of the RFID Experts Group (REG) of Association for Automatic Identification and Mobility (AIM) in 2012-2013. Peter received AIM Inc.'s Ted Williams Award in 2015 for his contributions to the RFID industry. Dr. Hawrylak serves on the Organizing Committee of the International IEEE RFID Conference, and served two terms as the Editor-in-Chief of the IEEE RFID Virtual Journal (2016-2019) and also as the Editor-in-Chief of the International Journal of Radio Frequency Identification Technology and Applications (IJRFITA) journal published by InderScience Publishers, which focuses on the application and development of RFID technology.\par
Peter is a senior member (M'05-SM'17) of IEEE and the IEEE Computer Society, is a member of IEEE-HKN, and is a member of Tau Beta Pi. He has served as the faculty advisor for the IEEE-HKN chapter at The University of Tulsa (Zeta Nu chapter) from Aug. 2010 to Dec. 2020.
\end{IEEEbiography}
\end{document}

View File

@ -23,7 +23,7 @@
\begin{document}
\title{Parallelization of Large-Scale Attack and Compliance Graph Generation Using Message-Passing Interface
\title{An Algorithm for the Parallelization of Large-Scale Attack and Compliance Graph Generation Using Message-Passing Interface
}
\author{NOAH L. SCHRICK\,\orcidlink{0000-0003-0875-8927}~\IEEEmembership{Member,~IEEE,}, AND PETER J. HAWRYLAK\,\orcidlink{0000-0003-3268-7452},~\IEEEmembership{Senior Member,~IEEE,}
@ -295,13 +295,13 @@ Due to a limited amount of compute time, only preliminary results were gathered,
The preliminary results gathered were intended to be the ``slowest" tests that would have the lowest speedup. The ``worst-case", minimum-bound data was collected to determine potential success of this approach. If the slowest tests still yielded promising speedups or efficiencies, then this approach would be viable and appealing for future, in-depth testing that could stress each component of the generation process.
Exploratory data analysis was performed on the resulting data using Python to ascertain data relationships. Due to the multivariate nature of the data, there is difficulty visualizing all four independent variables (parameters) and the outcome (runtime) simultaneously. Using pivot tables, Figures \ref{fig:nodes-exp} and \ref{fig:appl-load} show the runtime as they relate to the average of each individual parameter. These figures display the expected outcome: as the number of nodes increase, the runtime decreases, and as the number of exploits, applicability of exploits, and database load increases, the runtime likewise increases.
Exploratory data analysis was performed on the resulting data using Python to ascertain data relationships. Due to the multivariate nature of the data, there is difficulty visualizing all four independent variables (parameters) and the outcome (runtime) simultaneously. Using pivot tables, Figures \ref{fig:nodes-exp} and \ref{fig:appl-load} show the runtime as they relate to the average of each individual parameter. All other parameters are combined and averaged, which leads to the high-magnitude drop in runtime. This effect is made more noticeable since the minimum-bound data was collected, where the large majority of data was collected using only one or two nodes. These figures display the expected outcome: as the number of nodes increase, the runtime decreases, and as the number of exploits, applicability of exploits, and database load increases, the runtime likewise increases.
\begin{figure}
\centering
\includegraphics[width=\linewidth]{"./images/schri9.png"}
\includegraphics[width=\linewidth]{"./images/schri10.png"}
\caption{Number of Nodes and Number of Exploits (Averaged) vs. Runtime (ms)}
\caption{Number of Nodes and Number of Exploits (Averaged) vs. Runtime (ms), Combining and Averaging Across All Other Parameters}
\label{fig:nodes-exp}
\end{figure}
@ -309,29 +309,29 @@ Exploratory data analysis was performed on the resulting data using Python to as
\centering
\includegraphics[width=\linewidth]{"./images/schri11.png"}
\includegraphics[width=\linewidth]{"./images/schri12.png"}
\caption{Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms)}
\caption{Applicability of Exploits (\%) and Database Load (\%) (Averaged) vs. Runtime (ms), Combining and Averaging Across All Other Parameters}
\label{fig:appl-load}
\end{figure}
In terms of speedup, when the number of entries in the exploit list is small, the serial approach has better performance. As discussed in Section \ref{sec:Task-perf-expec}, this is expected due to the time elapsed for the communication cost exceeding the time taken to generate a state. However, as the number of items in the exploit list increase, the Tasking Approach quickly begins to outperform the serial approach. It is notable that even when the tasking pipeline is not fully saturated (when there are less compute nodes assigned than tasks), the performance is still approximately equal to that of the serial approach. The other noticeable feature is that as more compute nodes are assigned, the speedup continues to increase.
Figure \ref{fig:overall-speedup} displays the overall minimum, maximum, and mean of speedup across all problem sizes. It is observable through the mean and maximum bars that as other problem size parameters increase, the speedup of the Tasking Approach also increases. Since database load, applicability of exploits, and number of exploits all affect the runtime, increasing the problem size through any of these parameters showcases the viability of the parallelized approach. At the same time, it is worth noting that the parallelized approach is not strictly better. The minimum speedups shown in Figure \ref{fig:overall-speedup} demonstrate that for small problem sizes, the serial approach performs better due to the communication costs.
Figure \ref{fig:overall-speedup} displays the overall minimum, maximum, and mean of speedup across all problem sizes. All parameters are combined and averaged, which leads to the high-magnitude drops in outcome variables. This effect is made more noticeable since the minimum-bound data was collected, where the large majority of data was collected using only a few nodes. It is observable through the mean and maximum bars that as other problem size parameters increase, the speedup of the Tasking Approach also increases. Since database load, applicability of exploits, and number of exploits all affect the runtime, increasing the problem size through any of these parameters showcases the viability of the parallelized approach. At the same time, it is worth noting that the parallelized approach is not strictly better. The minimum speedups shown in Figure \ref{fig:overall-speedup} demonstrate that for small problem sizes, the serial approach performs better due to the communication costs.
\begin{figure}[htp]
\centering
\includegraphics[width=\linewidth]{"./images/schri13.png"}
\vspace{.2truein} \centerline{}
\caption{Minimum, Maximum, and Mean Speedup of MPI Tasking Across All Problem Sizes}
\caption{Minimum, Maximum, and Mean Speedup of MPI Tasking Across All Problem Sizes, Combining and Averaging Across All Parameters}
\label{fig:overall-speedup}
\end{figure}
Figure \ref{fig:overall-efficiency} displays the overall minimum, maximum, and mean of efficiency across all problem sizes. In terms of efficiency, 2 compute nodes offer the greatest value. While the 2 compute node configuration does offer the greatest efficiency, it does not provide a speedup greater than 1.0 on any of the testing cases conducted. The results also demonstrate that an odd number of compute nodes in a fully saturated pipeline has better efficiency that an even number of compute nodes. When referring to Figure \ref{fig:node-alloc}, when there is an odd number number of compute nodes, Task 1 is allocated more nodes than Task 2. Task 1 was responsible for iterating through an increased size of the exploit list, so more nodes is advantageous in distributing the workload. However, when many exploits were not applicable, Task 2 had a lower workload. Some test cases only had 6 applicable exploits, which is a substantially lower workload for Task 2 compared to cases where Task 1 had upwards of 49,000 exploits. As the applicability of exploits increases, the disparity in efficiency for odd and even number of nodes is not present.
Figure \ref{fig:overall-efficiency} displays the overall minimum, maximum, and mean of efficiency across all problem sizes. All parameters are combined and averaged, which leads to the high-magnitude drop in outcome variables. This effect is made more noticeable since the minimum-bound data was collected, where the large majority of data was collected using only a few nodes. In terms of efficiency, 2 compute nodes offer the greatest value. While the 2 compute node configuration does offer the greatest efficiency, it does not provide a speedup greater than 1.0 on any of the testing cases conducted. The results also demonstrate that an odd number of compute nodes in a fully saturated pipeline has better efficiency that an even number of compute nodes. When referring to Figure \ref{fig:node-alloc}, when there is an odd number number of compute nodes, Task 1 is allocated more nodes than Task 2. Task 1 was responsible for iterating through an increased size of the exploit list, so more nodes is advantageous in distributing the workload. However, when many exploits were not applicable, Task 2 had a lower workload. Some test cases only had 6 applicable exploits, which is a substantially lower workload for Task 2 compared to cases where Task 1 had upwards of 49,000 exploits. As the applicability of exploits increases, the disparity in efficiency for odd and even number of nodes is not present.
\begin{figure}[htp]
\centering
\includegraphics[width=\linewidth]{"./images/schri14.png"}
\vspace{.2truein} \centerline{}
\caption{Minimum, Maximum, and Mean Efficiency of MPI Tasking Across All Problem Sizes}
\caption{Minimum, Maximum, and Mean Efficiency of MPI Tasking Across All Problem Sizes, Combining and Averaging Across All Parameters}
\label{fig:overall-efficiency}
\end{figure}
@ -341,7 +341,7 @@ Speedups and efficiencies were also computed across each parameter. Using pivot
\centering
\includegraphics[width=\linewidth]{"./images/schri15.png"}
\includegraphics[width=\linewidth]{"./images/schri16.png"}
\caption{Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes}
\caption{Mean Speedup and Efficiency for the Exploit Parameter Across the Number of Compute Nodes, Combining and Averaging Across All Other Parameters}
\label{fig:param-exploit}
\end{figure}
@ -349,7 +349,7 @@ Speedups and efficiencies were also computed across each parameter. Using pivot
\centering
\includegraphics[width=\linewidth]{"./images/schri17.png"}
\includegraphics[width=\linewidth]{"./images/schri18.png"}
\caption{Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes}
\caption{Mean Speedup and Efficiency for the Applicability of Exploit Parameter Across the Number of Compute Nodes, Combining and Averaging Across All Other Parameters}
\label{fig:param-appl}
\end{figure}

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB