Ignore:
Timestamp:
Apr 27, 2026, 11:59:39 PM (30 hours ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master
Children:
69de8d1
Parents:
c910d308
Message:

revise list perf histogram introduction

File:
1 edited

Legend:

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

    rc910d308 r741d004  
    659659This section explains how the experiment is built.
    660660Many of the following parts define terminology concerning tuning knobs.
    661 \VRef[Figure]{f:ListPerfGlossary} provides a consolidated reference.
    662 
    663 \begin{figure}
     661\VRef[Table]{f:ListPerfGlossary} provides a consolidated reference.
     662
     663\begin{table}
     664\caption{
     665        Glossary of terms used in the list performance evaluation
     666}
     667\label{f:ListPerfGlossary}
    664668\noindent
    665669\begin{tabular}{p{1.75in}@{\ }p{4.5in}}
    666670Insert-Remove (IR)
    667671                & The atomic unit of work being measured: one insertion plus one remove (plus all looping/tracking overheads) \\
    668 Use Case 
     672Use Case
    669673                & Pattern of add-remove calls. \\
    670674-- Movement & \\
     
    688692                & insert through head and remove by element\\
    689693Physical Context & \\
    690 -- Size (number) &  Number of nodes being linked.  Unless specified, equals the \emph{length} of the program's sole list.  \emph{Width}, rarely used, is the number of lists. \\
     694-- Size (number) &  Number of nodes being linked.  Equals the length of the program's sole list. \\
    691695-- Size Zone
    692696                & Contiguous range of sizes, chosen to avoid known anomalies and to sample a brief plateau.  Each zone buckets four specific sizes.     \\
     
    697701   \quad $\ni$ (other)
    698702                &   Not used for comparing intrusive frameworks. \\
    699 -- machine
     703-- Machine
    700704                & Computer running the experiment \\
    701705        \quad $\ni$ AMD
     
    709713$\ni$ \uCpp     & \uCpp's @uSequence@ \\
    710714$\ni$ \CFA      & \CFA's @dlist@ \\
    711 Explanation being
     715Individual config'n (IC)
     716                & Specific situation in which an IR sequence is timed.  One use case, on one machine, driving one exact list size, by one framework. \\
     717Trial
     718                & Timed run of the test program under a given IC, during which a few billion IRs occur. \\
     719Explanation being
    712720                & How independent explanatory variable X is analyzed \\
    713721-- Marginalized
     
    716724                & Held constant, yielding a more relative measure.  Hides the effect that X causes.  Conditioning on X creates more, smaller relative-measure peer groups, by isolating each X-domain value.  Resulting interpretation is, ``Assuming no change in X.'' \\
    717725\end{tabular}
    718 \caption{
    719         Glossary of terms used in the list performance evaluation
    720 }
    721 \label{f:ListPerfGlossary}
    722 \end{figure}
     726\end{table}
    723727
    724728
     
    886890\label{s:UseCases}
    887891
    888 Where \VRef[Figure]{f:ListPerfGlossary} enumerates the specific values, recall the use-case dimensions are:
     892Where \VRef[Table]{f:ListPerfGlossary} enumerates the specific values, recall the use-case dimensions are:
    889893\begin{description}
    890894        \item[movement ($\times 2$)]
     
    9971001
    9981002\subsubsection{Sizing}
     1003\label{s:experiment-sizing}
    9991004
    10001005Intuition suggests measuring IR for different sized lists should just be a multiple of the single linking/unlinking of a node.
     
    10471052\VRef[Figure]{fig:plot-list-zoomin-abs} gives two example responses to size.
    10481053% The dataset here is a small portion of the overall result and it is premature to attempt conclusions about framework differences from it.
    1049 These two example cases show how differently a pair of individual configurations behave.
     1054These two example cases show how differently a pair of configurations can behave.
    10501055% Of more immediate significance, they also have a pattern repeated, in all eight of their size responses.
    10511056% Note the ``small'' and ``medium'' overlaid boxes, which call out the size zones' definitions.
    10521057Outside of an identified box, size response is erratic.
    10531058Inside a box, size response is relatively smooth.
    1054 Within and among boxes there are identifiable patterns, which occur throughout all the experimental results.
    1055 Each individual configuration is tested by five trials, giving the error bars at min and max.
    1056 The amount of error here is typical across the configurations.
    1057 With a few exceptions, it is modest, so experiments are repeatable.
     1059Within and among the boxes there are identifiable patterns, which occur throughout all the experimental results.
     1060
     1061Every data point is one Individual Configuration (IC).
     1062Each IC is tested by five trials; a point's error bars give the best and worst trial results; the point's centre is the mean of the middle three.
     1063The amount of error here is typical across all the configurations (beyond the two shown here).
     1064With a few exceptions, it is modest, so these experiments are repeatable.
    10581065
    10591066To preview, \VRef{s:ResultCoarseComparisonStyles} dismisses large sizes (above 150 elements) and wrapped lists, because the performance story is dominated by the amount of memory touched not by intrusive \vs wrapped lists.
     
    11151122\subsubsection{Recap and Master Legend}
    11161123
    1117 For experiments performed in later section, there are 12 use cases, which are all combinations of 2 movents, 2 polarities and 3 accessors.
     1124For experiments performed in later sections, there are 12 use cases, which are all combinations of 2 movents, 2 polarities and 3 accessors.
    11181125There are 4 pysical contexts, which are all combinations of 2 machines and 2 size (length) zones.
    1119 Each physical context samples 4 specific sizes.
    11201126There are 3.25 frameworks.
    1121 This accounting considers how LQ-list supports only the movement--polarity combination "stack, insert first."
     1127This accounting considers how LQ-list supports only the movement--polarity combination ``stack, insert first.''
    11221128So LQ-list fills a quarter of the otherwise-orthogonal space.
    1123 Use case, physical context and framework are the explanatory factors.
    1124 Taking all combinations of the explanatory factors gives 12 $\times$ 4 $\times$ 4 $\times$ 3.25 = 624 individual configurations.
     1129Physical context, use case, and framework are the explanatory factors.
     1130Each size zone summarizes samples of 4 specific sizes.
     1131Taking all combinations of the explanatory factors and this sampling gives 4 $\times$ 12 $\times$  3.25 $\times$ 4 = 624 individual configurations (ICs).
    11251132
    11261133% \[
     
    11491156  \caption[IR duration, transformed for general anaysis]{
    11501157        IR duration, transformed for general anaysis.
    1151         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.
     1158        The analysis follows the single example setup of \VRef[Figure]{f:zoomin-abs-i-swift}, \ie Use Case I on AMD; there, IR is given as absolute duration.
    11521159        Plot (a) transforms the source dataset by conditioning on specific size.
    11531160        Plot (b) takes the results from only the identified size zones, discards their specific-size information, and shows the resulting distribution.
     
    12001207\end{comment}
    12011208
    1202 It is impossible to present this large amount of information in graphs.
    1203 Therefore, a condensed graphing style is used in subsequent plots.
    1204 \VRef[Figure]{fig:plot-list-rel} shows how the condensed graphing style is generated from raw data.
    1205 \VRef[Figure]{f:zoomin-rel-i-swift} is formed from the data in \VRef[Figure]{f:zoomin-abs-i-swift}, restructured on the Y-axis using a relative duration.
    1206 \VRef[Figure]{f:zoomin-histo-i-swift} shows the interesting data within the two boxes (Small/Medium) and their combination (Both).
    1207 This graph plots a vertical histogram for each of the 4 lists.
     1209A condensed graphing style is used in subsequent plots to present this amount of data.
     1210\VRef[Figure]{fig:plot-list-rel} shows how the condensed graphing style is generated from indvidual-configuration measures.
     1211\VRef[Figure]{f:zoomin-rel-i-swift} is formed from the data in \VRef[Figure]{f:zoomin-abs-i-swift}, transformed on the Y-axis to show duration relative to the mean across all four frameworks, at each specific size.
     1212\VRef[Figure]{f:zoomin-histo-i-swift} consenses the interesting data within the two boxes (Small/Medium) and their combination (Both).
     1213This graph plots a vertical histogram for each of the 4 frameworks.
     1214A data point on \VRef[Figure]{f:zoomin-abs-i-swift} is one-to-one with a point on \VRef[Figure]{f:zoomin-rel-i-swift}; each gives one IC.
     1215Repeatability of the experimet being established previously, retry variance information (error bar on an individual-configuration point) is discarded, and only the expected performance of an IC (mean of its middle three out of five trials) is promoted into the histograms.
     1216Each histogram bin (light-shaded area) counts the number of ICs whose expected performance falls in the bin's range.
     1217A histogram's girth indicates the diversity of its qualifying configurations' performance expectations.
     1218The overlaid tick symbol marks its group's mean performance.
     1219An x label indicates the total number of ICs in a group, \eg ``/4'' $\Rightarrow$ 4 ICs per histogram (here, a size-zone/framework combination).
     1220The totals are small here because attention is still restricted to the example slice of Use Case I on AMD.
     1221But the graph format now scales to handle the full population of tested configurations, which is the subject of all subsequent plots.
     1222
     1223\begin{comment}
    12081224The light-shaded histogram is the raw data (similar data values overlap), and the dark histogram is the goemean average when there are multiple experiments condensed in a column.
    1209 The caption indicates the number of values condensed into this histogram, e.g., ``/4'' $\Rightarrow$ 4 data points.
    1210 The vertical relationship among the averages gives a quick result for a specific experiment, where lower is better.
     1225
     1226The vertical relationship among the averages gives a quick result, where lower is better.
    12111227The relative duration smooths the results, where smoothness diminishes as size increases.
    12121228This flatness gives nicely separated histograms.
    12131229Thus, in the forthcoming comparison plots:
     1230\end{comment}
    12141231
    12151232% \begin{itemize}[leftmargin=*]
     
    12311248\VRef[Figure]{fig:plot-list-zoomout} presents throughput at various list lengths for a linear and random (shuffled) IR test.
    12321249Other kinds of scans were made, but the results are similar in many cases, so it is sufficient to discuss these two scans, representing difference ends of the access spectrum.
    1233 In the graphs, all four intrusive lists (lq-list, lq-tailq, \uCpp, \CFA, see Framework in \VRef[Figure]{f:ListPerfGlossary}) are plotted with the same symbol;
     1250In the graphs, all four intrusive lists (lq-list, lq-tailq, \uCpp, \CFA, see Framework in \VRef[Table]{f:ListPerfGlossary}) are plotted with the same symbol;
    12341251sometimes theses symbols clump on top of each other, showing the performance difference among intrusive lists is small in comparison to the wrapped list (std::list).
    12351252See~\VRef{s:ComparingIntrusiveImplementations} for details among intrusive lists.
Note: See TracChangeset for help on using the changeset viewer.