From 3709cc115b01df0ea1c188c450a5204f8f1130b4 Mon Sep 17 00:00:00 2001 From: noah Date: Mon, 4 Apr 2022 21:06:09 -0500 Subject: [PATCH] Minor corrections to Testing Arrangements in 4.3.1 and 5.4.4 --- Chapter4.tex | 6 +++--- Chapter5.aux | 2 +- Chapter5.tex | 12 +++++++++++- Schrick-Noah_MS-Thesis.log | 32 ++++++++++++++++---------------- Schrick-Noah_MS-Thesis.pdf | Bin 2636301 -> 2636912 bytes Schrick-Noah_MS-Thesis.tex | 2 +- 6 files changed, 32 insertions(+), 22 deletions(-) diff --git a/Chapter4.tex b/Chapter4.tex index 93a87af..de90d9b 100644 --- a/Chapter4.tex +++ b/Chapter4.tex @@ -103,12 +103,12 @@ All nodes are connected with a 10Gbps Infiniband interconnect. \TUsubsection{Experimental Networks} \label{sec:Sync-Test} The example networks for testing the effectiveness of synchronous firing follow the compliance graph generation approach. These networks analyze two assets, both of which are identical 2006 Toyota Corolla cars with identical qualities. The generation examines both cars at their current states, and proceeds to advance in time by a pre-determined amount, up to a pre-determined limit. Each time increment updates each car by an identical amount of mileage. During the generation process, it is determined if a car is out of compliance either through mileage or time since its last maintenance in accordance with the Toyota Corolla Maintenance Schedule manual. -In addition, the tests employ the use of ``services", where if a car is out of compliance, it will go through a correction process and reset the mileage and time since last service. Each test varies in the number of services used. The 1 Service test only employs one service, and it is dedicated to brake pads. The 2 Service test employs two services, where the first service is dedicated to the brake pads, and the second is for exhaust pipes. This process extends to the 3 and 4 Service tests. +In addition, the tests employ the use of ``services", where if a car is out of compliance, it will go through a correction process and reset the mileage and time since last service. Each test varies in the number of services used. The 1 Service test only employs one service, and it is dedicated to brake pads. The 2 Service test employs two services, where the first service is dedicated to the brake pads, and the second is for exhaust pipes. This process extends to the 3, 4, 5, and 6 Service tests. The testing information is as follows: \begin{itemize} \item{All tests ran for 12 months, with time steps of 1 month.} -\item{All tests had the same number of compliance checks: brake pads, exhaust pipes, vacuum pumps, and AC filters.} -\item{There were 10 base exploits, and an additional 4 exploits were individually added in the form of services for each test.} +\item{All tests had the same number of compliance checks: brake pads, exhaust pipes, vacuum pumps, AC filters, oil changes, and driveshaft boots.} +\item{There were 12 base exploits, and an additional 6 exploits were individually added in the form of services for each test.} \item{All tests used the same network model.} \item{All tests used the same exploit file, with the exception of the ``group" keyword being present in the synchronous firing testing.} \item{Services must be performed prior to advancing time, if services are applicable.} diff --git a/Chapter5.aux b/Chapter5.aux index 1800ce2..1a9de40 100644 --- a/Chapter5.aux +++ b/Chapter5.aux @@ -62,11 +62,11 @@ \@writefile{toc}{\contentsline {subsubsection}{\numberline {5.4.2.4}MPI Tags}{46}{}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.3}\it Performance Expectations and Use Cases}{46}{}\protected@file@percent } \newlabel{sec:perf_expec_subg}{{5.4.3}{46}} -\citation{lawrence_livermore_national_laboratory_mpip_nodate} \@writefile{lot}{\contentsline {table}{\numberline {5.2}{\ignorespaces MPI Tags for the MPI Subgraphing Approach\relax }}{47}{}\protected@file@percent } \newlabel{table:subg-tag}{{5.2}{47}} \@writefile{toc}{\contentsline {subsection}{\numberline {5.4.4}\it Results}{47}{}\protected@file@percent } \newlabel{sec:Subgraphing-Results}{{5.4.4}{47}} +\citation{lawrence_livermore_national_laboratory_mpip_nodate} \@writefile{lof}{\contentsline {figure}{\numberline {5.13}{\ignorespaces First iteration results of MPI Subgraphing in terms of Runtime\relax }}{48}{}\protected@file@percent } \newlabel{fig:Subg_base}{{5.13}{48}} \@writefile{lof}{\contentsline {figure}{\numberline {5.14}{\ignorespaces First iteration results of MPI Subgraphing in terms of Speedup and Efficiency\relax }}{49}{}\protected@file@percent } diff --git a/Chapter5.tex b/Chapter5.tex index 1004616..3c27d2e 100644 --- a/Chapter5.tex +++ b/Chapter5.tex @@ -238,7 +238,17 @@ Similar to Section \ref{sec:tasking-tag} that discussed the usage of MPI Tags fo This approach is intended to reduce runtime when the frontier grows at a rate faster than it can be explored. However, since this approach is designed for distributed systems, there is no guarantee that speedup can be achieved when duplicate work is performed. Not only is there wasted time by the worker nodes when duplicate work occurs, but duplicate work also contributes to increased communication between nodes to adequately explore the graph, and also leads to an increased number of merging calls by the root node. The ideal scenario for the subgraphing approach is when the graph is sparse, and the graph aligns more with a N-Ary tree structure where each node only has one parent. When the graph is sparse, there is a lower likelihood of duplicate work occurring, since worker nodes have a lower probability of exploring a graph state that connects to a different graph state that has been (or will be) explored by another worker node. If each graph state was able to have only one parent, there is a lower likelihood that worker nodes would explore the same graph cluster. \TUsubsection{Results} \label{sec:Subgraphing-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 Subgraphing approach on the 4 example networks discussed in \ref{sec:Sync-Test}. All tests used synchronous firing. Figure \ref{fig:Subg_base} shows the runtimes of each of the test cases. Only the serial runtime from the 2 Service test is displayed for conciseness. The results in terms of speedup and efficiency are seen in Figure \ref{fig:Subg_SE}. +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 Subgraphing approach on 4 example networks that had a testing arrangement as follows: +\begin{itemize} + \item{All tests ran for 12 months, with time steps of 1 month.} + \item{All tests had the same number of compliance checks: brake pads, exhaust pipes, vacuum pumps, and AC filters.} + \item{There were 10 base exploits, and an additional 4 exploits were individually added in the form of services for each test.} + \item{All tests used the same network model.} + \item{Services must be performed prior to advancing time, if services are applicable.} + \item{Graph visualization was not timed. Only the generation and database operation time was measured.} +\end{itemize} + +All tests used synchronous firing. Figure \ref{fig:Subg_base} shows the runtimes of each of the test cases. Only the serial runtime from the 2 Service test is displayed for conciseness. The results in terms of speedup and efficiency are seen in Figure \ref{fig:Subg_SE}. \begin{figure}[htp] \includegraphics[width=\linewidth]{"./Chapter5_img/MPISubg_RT_No_DHT.png"} diff --git a/Schrick-Noah_MS-Thesis.log b/Schrick-Noah_MS-Thesis.log index 927aad7..8a9b27c 100644 --- a/Schrick-Noah_MS-Thesis.log +++ b/Schrick-Noah_MS-Thesis.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 4 APR 2022 20:42 +This is pdfTeX, Version 3.141592653-2.6-1.40.23 (TeX Live 2021/Arch Linux) (preloaded format=pdflatex 2022.3.21) 4 APR 2022 21:04 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -477,53 +477,53 @@ ine 202. LaTeX Warning: No positions in optional float specifier. Default added (so using `tbp') on input line 216. -[46 <./Chapter5_img/front_merge.drawio.png>] -<./Chapter5_img/MPISubg_RT_No_DHT.png, id=233, 399.018pt x 250.098pt> +[46 <./Chapter5_img/front_merge.drawio.png>] [47] +<./Chapter5_img/MPISubg_RT_No_DHT.png, id=236, 399.018pt x 250.098pt> File: ./Chapter5_img/MPISubg_RT_No_DHT.png Graphic file (type png) Package pdftex.def Info: ./Chapter5_img/MPISubg_RT_No_DHT.png used on input li -ne 244. +ne 254. (pdftex.def) Requested size: 469.75499pt x 294.44524pt. -<./Chapter5_img/no_DHT_Spd.png, id=234, 424.422pt x 249.003pt> +<./Chapter5_img/no_DHT_Spd.png, id=237, 424.422pt x 249.003pt> File: ./Chapter5_img/no_DHT_Spd.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/no_DHT_Spd.png used on input line 252. +Package pdftex.def Info: ./Chapter5_img/no_DHT_Spd.png used on input line 262. (pdftex.def) Requested size: 469.75499pt x 275.60631pt. -<./Chapter5_img/no_DHT_eff.png, id=235, 429.021pt x 249.222pt> +<./Chapter5_img/no_DHT_eff.png, id=238, 429.021pt x 249.222pt> File: ./Chapter5_img/no_DHT_eff.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/no_DHT_eff.png used on input line 253. +Package pdftex.def Info: ./Chapter5_img/no_DHT_eff.png used on input line 263. (pdftex.def) Requested size: 469.75499pt x 272.8939pt. - [47] [48 <./Chapter5_img/MPISubg_RT_No_DHT.png>] [49 <./Chapter5_img/no_DHT_Sp -d.png> <./Chapter5_img/no_DHT_eff.png>] + [48 <./Chapter5_img/MPISubg_RT_No_DHT.png>] [49 <./Chapter5_img/no_DHT_Spd.png +> <./Chapter5_img/no_DHT_eff.png>] <./Chapter5_img/dup.drawio.png, id=248, 815.045pt x 744.7825pt> File: ./Chapter5_img/dup.drawio.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/dup.drawio.png used on input line 261. +Package pdftex.def Info: ./Chapter5_img/dup.drawio.png used on input line 271. (pdftex.def) Requested size: 469.75499pt x 429.25806pt. <./Chapter5_img/Dup_DHT.png, id=249, 796.065pt x 483.99pt> File: ./Chapter5_img/Dup_DHT.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/Dup_DHT.png used on input line 268. +Package pdftex.def Info: ./Chapter5_img/Dup_DHT.png used on input line 278. (pdftex.def) Requested size: 469.75499pt x 285.59593pt. [50] [51 <./Chapter5_img/dup.drawio.png>] [52 <./Chapter5_img/Dup_DHT.png>] <./Chapter5_img/DHT_Spd.png, id=262, 421.575pt x 233.235pt> File: ./Chapter5_img/DHT_Spd.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/DHT_Spd.png used on input line 278. +Package pdftex.def Info: ./Chapter5_img/DHT_Spd.png used on input line 288. (pdftex.def) Requested size: 469.75499pt x 259.89395pt. <./Chapter5_img/DHT_Eff.png, id=263, 422.889pt x 233.235pt> File: ./Chapter5_img/DHT_Eff.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/DHT_Eff.png used on input line 279. +Package pdftex.def Info: ./Chapter5_img/DHT_Eff.png used on input line 289. (pdftex.def) Requested size: 469.75499pt x 259.08965pt. <./Chapter5_img/DHT_noDHT.png, id=264, 806.577pt x 496.692pt> File: ./Chapter5_img/DHT_noDHT.png Graphic file (type png) -Package pdftex.def Info: ./Chapter5_img/DHT_noDHT.png used on input line 285. +Package pdftex.def Info: ./Chapter5_img/DHT_noDHT.png used on input line 295. (pdftex.def) Requested size: 469.75499pt x 289.27902pt. ) [53] [54 <./Chapter5_img/DHT_Spd.png> <./Chapter5_img/DHT_Eff.png>] [55 <./Ch apter5_img/DHT_noDHT.png>] @@ -605,7 +605,7 @@ ts/type1/public/amsfonts/cm/cmr12.pfb> -Output written on Schrick-Noah_MS-Thesis.pdf (74 pages, 2636301 bytes). +Output written on Schrick-Noah_MS-Thesis.pdf (74 pages, 2636912 bytes). PDF statistics: 344 PDF objects out of 1000 (max. 8388607) 192 compressed objects within 2 object streams diff --git a/Schrick-Noah_MS-Thesis.pdf b/Schrick-Noah_MS-Thesis.pdf index e08c999e28e603964abab8a951134359c07c0c66..679498753234f017ea0f1f53180c16a0ae4b2b62 100644 GIT binary patch delta 12354 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 delta 11715 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