Ignore:
Timestamp:
Apr 24, 2026, 1:27:24 PM (5 days ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master
Children:
8501107
Parents:
534188b
Message:

revisions to ll perf intro and graph formatting

File:
1 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/mike_brooks_MMath/list.tex

    r534188b rbf73608  
    963963\end{figure}
    964964
    965 Where \VRef[Figure]{f:ListPerfGlossary} enumerates the specific values, reall the use-case dimensions are:
     965Where \VRef[Figure]{f:ListPerfGlossary} enumerates the specific values, recall the use-case dimensions are:
    966966\begin{description}
    967967        \item[movement ($\times 2$)]
     
    10151015Rather, size zones are picked, specific effects inside of a zone are averaged away, and the story at one zone is compared to that at another zone.
    10161016
     1017\begin{figure}
     1018\centering
     1019  \setlength{\tabcolsep}{0pt}
     1020  \begin{tabular}{p{3.4375in}p{0.125in}p{2.9375in}}
     1021        \subfloat[ ]{\label{f:zoomin-abs-i-swift}
     1022                \includegraphics{plot-list-zoomin-abs-i-swift.pdf}
     1023        } & &
     1024        \subfloat[ ]{\label{f:zoomin-abs-viii-java}
     1025                \includegraphics{plot-list-zoomin-abs-viii-java.pdf}
     1026        }
     1027  \end{tabular}
     1028  \caption{Variety of IR duration \vs list length, at small--medium lengths.  Two example use cases are shown: I, stack movement with head-only access (plot a); VIII, queue movement with element-oriented removal access (plot b); both use cases have insert-first polarity.  One example is run on each machine: UC-I on AMD (ploat a); UC-VIII on Intel (plot b).  Lower duration is better.}
     1029  \label{fig:plot-list-zoomin-abs}
     1030\end{figure}
     1031
     1032\VRef[Figure]{fig:plot-list-zoomin-abs} gives two example responses to size.
     1033The dataset here is a small portion of the overall result and it is premature to attempt conclusions about framework differences from it.
     1034These two examples show, firstly, how differently a pair of individual configurations can behave.
     1035Of more immediate significance, they also have a pattern repeated, in all eight of their size responses.
     1036Note the ``small'' and ``medium'' overlaid boxes, which call out the size zones' definitions.
     1037Outside of an identified box, size response is erratic.
     1038Inside a box, size response is smooth.
     1039This pattern occurs generally throughout all the experimental results, beyond the two examples here.
     1040
    10171041To preview, \VRef[Section]{toc:coarse-compre} dismisses ``Large'' sizes (above 150 elements), where the performance story is dominated by the amount of memory touched, inherently, by the choice of intrusive list \vs wrapped, and where one intrusive framework is quite obviously as good as another.
    1018 At smaller sizes, comparing one intrusive framework to another makes sense; this comparion occurs in the remaining ``Result'' sections.
    1019 Among the ``not Large'' sizes used there, two further zones, Small and Medium, are selected as representatives of what can vary when the scale is changed.
     1042At smaller sizes, comparing one intrusive framework to another makes sense; this comparison occurs in the remaining ``Result'' sections.
     1043Among the remaining ``not Large'' sizes, two further zones, \VRef[Figure]{fig:plot-list-zoomin-abs}'s Small and Medium, are selected as representatives of what can vary when the scale is changed.
    10201044These particular ranges were chosen beacause each range tends to have one story repeated across its constituent sizes.
    10211045If \CFA's duration increases across Small, then the other frameworks' usually do too.
     
    10761100
    10771101Use case, physical context and framework are the explanatory factors.
    1078 Taking all combinations of the explanatory factors gives 624 individual configurations.
    1079 
    1080 Though there are multiple experimental trials of each configuration (to assure repeatability), the usual measure is mean AIR among the trials, considered for each of the 624 individual configurations.
    1081 
    1082 All means reported in this analysis are geometric.
    1083 
    1084 \MLB{TODO: add example plots; explain histogram of 624}
     1102Taking all combinations of the explanatory factors gives 624 individual configurations:
     1103\[
     1104        \textrm{624 individual configurations} =
     1105        \sum_{\substack{
     1106                \textrm{12 use cases}\\
     1107                \textrm{4 physical contexts}\\
     1108                \textrm{4 specific sizes}\\
     1109                \textrm{3.25 frameworks}
     1110        }}
     1111        \textrm{1 individual configuration}
     1112\]
     1113
     1114\begin{figure}
     1115\centering
     1116  \setlength{\tabcolsep}{0pt}
     1117  \includegraphics[trim={0in, 1.75in, 0in, 0in}, clip]{plot-list-legend-rel-i-swift.pdf}
     1118  \begin{tabular}{p{2.75in}p{0.125in}p{3.625in}}
     1119        \subfloat[ ]{\label{f:zoomin-rel-i-swift}
     1120                \includegraphics{plot-list-zoomin-rel-i-swift.pdf}
     1121        } & &
     1122        \subfloat[ ]{\label{f:zoomin-histo-i-swift}
     1123                \includegraphics{plot-list-histo-rel-i-swift.pdf}
     1124        }
     1125  \end{tabular}
     1126  \caption{IR duration, transformed for general anaysis.  The analysis follows the single example setup of \VRef[Figure]{f:zoomin-abs-i-swift}, \ie Use Case I on AMD, where IR is given as absolute duration.  Plot (a) transforms the source dataset by conditioning on specific size.  Plot (b) takes the results from only the identified size zones, discards their specific-size information, and shows the resulting distribution.  Lower duration is better.}
     1127  \label{fig:plot-list-rel}
     1128\end{figure}
     1129
     113032 of these individual configurations, plucked from  \VRef[Figure]{f:zoomin-abs-i-swift}, are the subject of \VRef[Figure]{fig:plot-list-rel}, where they are now transformed into the format used for general analysis.
     1131In \subref*{f:zoomin-rel-i-swift}, each of the 56 data points is an individual configuration; the subset within the two boxes has the 32 of interest.
     1132In \subref*{f:zoomin-histo-i-swift}, the very leftmost histogram (Small, \CFA) summarizes the 4 Small--\CFA individual configurations.
     1133Each remaining framework, at size zone Small, similarly summarizes 4 individual configurations.
     1134This statement is the interpretation of the x-category label, ``Small (/4).''
     1135Each line under the ``/4'' label has 4 individual configurations; so, this group has 16 individual configurations.
     1136The interpretation of ``Medium (/4)'' is similar; it groups the remaining 16 configurations.
     1137When both size zones are pooled together, ``Both (/8)'' results; this group revisits all 32 configurations.
     1138
     1139This example's use of 32 individual configurations is in contrast with full-universe comparisons like the forthcoming \VRef[Figure]{fig:plot-list-1ord}, whose coverage further includes all use cases and both machines.
     1140
     1141The transformation of \VRef[Figure]{f:zoomin-abs-i-swift} into \VRef[Figure]{f:zoomin-rel-i-swift} conditions on the configuration's specific size.
     1142At a particular size, the average duration is computed, across the three frameworks that work on all use cases: \CFA, \uCpp and LQ-@tailq@.
     1143\VRef[Figure]{fig:plot-list-rel} shows a particular configuration's duration relative to this average.
     1144
     1145The effect of conditioning on specific size erases the fact that \VRef[Figure]{fig:plot-list-zoomin-abs} shows, aside from the coarse hops, all frameworks getting smoothly slower as size increases.
     1146This effect is partiularly relevant \emph{within} a size zone, most noticeable as the data lines all going up across the Small box.
     1147Now, with size conditioned, \VRef[Figure]{f:zoomin-rel-i-swift} has the trends inside a zone box being flat.
     1148This flatness gives \subref*{f:histo-rel-i-swift} nicely separated histograms.
     1149
     1150Specific size is the only factor conditioned in this view.
     1151This choice was made to keep the relationship between \VRef[Figures]{f:zoomin-abs-i-swift} and \VRef[]{:zoomin-rel-i-swift} perceptible.
     1152By contrast, general comparisons like \VRef[Figure]{fig:plot-list-1ord} condition on more, generally, everyting not presented.
     1153Its physical-factor breakdown conditions on use case and framework, but not on physical factors; its other two breakdowns are defined similarly.
     1154
     1155The noteworthy performance hop, in this example, is LQ-@list@, which \VRef[Figures]{f:zoomin-abs-i-swift} has as consistently slow in the Small range, and consistently fast in the Medium range.
     1156Therefore, in \VRef{f:zoomin-histo-i-swift}, its two per-size-zone histograms are far apart, and its cross-size-zone histogram is bimdal.
     1157Hops and distribution contributions, like this one, are common.
     1158They are attention-grabbing curiosities when comparing nearly any pair of individual configurations.
     1159They are the background noise of the all-in inter-configuration comparisons following.
     1160With this one, \VRef[Figure]{fig:plot-list-1ord}'s LQ-@list@ distribution (farthest right) does have a perceptible bump at $1.8\times$, corresponding to the upper mode seen here.
     1161But this UC-I--Intel contribution is only $1/6 = 8/48$ of the configurations summarized there.
     1162
     1163Each individual configuration is tested by five trials, giving the error bars of \VRef[Figure]{:zoomin-rel-i-swift} (at min and max).
     1164This trial error is unaffected by the size conditioning.
     1165Though this error is presented only for the narrow slice of the current examples, the amount of it seen here is typical across all the configurations.
     1166With a few exceptions, it is modest; so, the experiment is repeatable.
     1167The data points in \subref{f:zoomin-rel-i-swift} show mean excluding min and max.
     1168This value, alone, is the contribution to the histogram in \subref{f:zoomin-histo-i-swift}.
     1169That is, inter-configuration rollups discard the modest trial-repeatability error.
     1170The girth of a histogram's distribution is entirely the inter-configuration variance, of its configurations' expected performance.
     1171
     1172Thus, in the forthcoming comparison plots:
     1173\begin{itemize}
     1174\item
     1175The measure is mean IR among the middle 3 trials out of 5, that occurred for an individual configuration.
     1176\item
     1177The number of individual configurations per histogram is stated as ``/N,'' at a relevant grnaularity.
     1178\item
     1179All reported averages are geometric means and all IR duration axes (verticals) are logarithmic.
     1180\item
     1181Unless indicated otherwise, all explanatory factors appearing on a plot are marginalized, while those not appearing on the plot are conditioned.
     1182\end{itemize}
    10851183
    10861184
     
    11241222  \caption{Insert/remove duration \vs list length.
    11251223  Lengths go as large possible without error.
    1126   One example use case is shown: stack movement, insert-first polarity and head-mediated access. Lower is better.}
     1224  One example use case is shown: I, stack movement, insert-first polarity and head-mediated access. Lower duration is better.}
    11271225  \label{fig:plot-list-zoomout}
    11281226\end{figure}
     
    12111309\begin{figure}
    12121310  \centering
    1213   \includegraphics{plot-list-1ord.pdf}
     1311  \includegraphics{plot-list-1ord.pdf} \\
     1312  \small{\textsuperscript{\textdagger} LQ-@list@ is (/48) by its incomplete (25\%) use case coverage.  Its bars are scaled to match.}
    12141313  \caption{Histogram of IR durations, decomposed by all first-order effects.
    1215   Each of the three breakdowns divides the entire population of test results into its mutually disjoint constituents. The measure is duration; lower is better.}
     1314  Each of the three breakdowns divides the entire population of test results into its mutually disjoint constituents. Lower duration is better. \MLB{To fix: the size-zone bars are broken (wrong data)}}
    12161315  \label{fig:plot-list-1ord}
    12171316\end{figure}
     
    12461345
    12471346
    1248 \subsection{Intrusive Sweet and Sore Spots}
     1347\subsection{Result: Sweet and Sore Spots}
    12491348
    12501349\begin{figure}
    12511350        \centering
    1252         \includegraphics{plot-list-2ord.pdf}
     1351        \includegraphics{plot-list-2ord.pdf}\\
     1352
     1353        \small{
     1354        \textsuperscript{\textdagger} LQ-@list@ is absent from Movement and Polarity comparisons because it does not support queue and insert-last, respectively.\\
     1355        \textsuperscript{\textdaggerdbl} LQ-@list@ is (/24) by its incomplete (25\%) use case coverage.  Its bars are scaled to match.\\
     1356        \textsuperscript{*} The full population of 192 individual configurations applies (48 for LQ-@list@), but this analysis summarizes pairs of them, giving each histogram's 96 contributions (24 for LQ-@list@).
     1357        }
    12531358        \caption{Histogram of IR durations, illustrating interactions with framework.
    12541359        Each distribution shows how its framework reacts to a single other factor being varied across one pair of options.
    12551360        Every (binned and mean-contributing) individual data point represents a pair of test setups, one with the criterion set to the option labelled at the top; the other setup uses the bottom option.
    12561361        This point's y-axis score is the ratio of these setups' durations.
    1257         The point lands in a bin closer to the label of the option that performs better.
     1362        The point lands in a bin closer to the label of the option that performs better. \MLB{To fix: the size-zone bars are broken (no data)}
    12581363        }
    12591364        \label{fig:plot-list-2ord}
     
    12921397It occurs only for the queue movement, only on the AMD machine, and only for the \CFA framework.
    12931398
    1294 Length-1 performane is an important case.
     1399Length-1 performance is an important case.
    12951400Lists like those of waiting threads are frequently left empty, with the occasional thread (or few) momentarily joining.
    12961401These scenarios need to work.
    12971402
    1298 A cause of this behaviour was never determined.
    1299 Speculation is that \CFA's increased data dependency, a result of the tagging scheme, pairs poorly with the situation implied by queue movement.
     1403A cause of the slowdown was never determined.
     1404Speculation is that \CFA's increased data dependency, a result of the tagging scheme, pairs poorly with the aliasing implied by queue movement.
    13001405The aliasing, at length 1, is: the head's first element is the head's last element.
    1301 With stack movement, one of these aliases is used twice, while with queue movement, both are used in alternation.
    1302 
    1303 The breakdowns earlier in the performane assessment work by varying length only.
     1406With stack movement, one of these names for the first element is reaused for both insert and remove.
     1407While with queue movement, both names are used in alternation.
     1408
     1409The breakdowns earlier in the performance assessment vary length only.
    13041410That is, they see the story down the leftmost column in a triangle.
    13051411The insight for contextualizing this issue was to inspect both length and width.
     
    13581464\begin{comment}
    13591465
    1360 \begin{figure}
    1361 \centering
    1362   \setlength{\tabcolsep}{0pt}
    1363   \begin{tabular}{p{0.75in}p{2.75in}p{3in}}
    1364   &
    1365   \subfloat[Operation I, AMD]{\label{f:AbsoluteTime-i-swift}
    1366         \hspace*{-0.75in}
    1367         \includegraphics{plot-list-zoomin-abs-i-swift.pdf}
    1368   } % subfigure
    1369   &
    1370   \subfloat[Operation I, Intel]{\label{f:AbsoluteTime-i-java}
    1371         \includegraphics{plot-list-zoomin-abs-i-java.pdf}
    1372   } % subfigure
    1373   \\
    1374   &
    1375   \subfloat[Operation VIII, AMD]{\label{f:AbsoluteTime-viii-swift}
    1376         \hspace*{-0.75in}
    1377         \includegraphics{plot-list-zoomin-abs-viii-swift.pdf}
    1378   } % subfigure
    1379   &
    1380   \subfloat[Operation VIII, Intel]{\label{f:AbsoluteTime-viii-java}
    1381         \includegraphics{plot-list-zoomin-abs-viii-java.pdf}
    1382   } % subfigure
    1383   \end{tabular}
    1384   \caption{Operation duration \vs list length at small-medium lengths.  Two example operations are shown: [I] stack movement with head-only access (plots a and b); [VIII] queue movement with element-oriented removal access (plots c and d); both operations use insert-first polarity. Lower is better.}
    1385   \label{fig:plot-list-zoomin}
    1386 \end{figure}
    13871466
    13881467\VRef[Figure]{fig:plot-list-zoomin} shows the sizes below 150 blown up.
Note: See TracChangeset for help on using the changeset viewer.