Changeset e2e927e


Ignore:
Timestamp:
Apr 10, 2026, 10:55:49 PM (25 hours ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master
Children:
e8a7b66d
Parents:
d1ccc57
Message:

Add the list perf non-physical comparison (as promised).

This commit is a save-snapshot before I pivot this comparison to compare all first-order effects, which really is the right context.

Location:
doc/theses/mike_brooks_MMath
Files:
3 added
2 edited

Legend:

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

    rd1ccc57 re2e927e  
    993993\VRef[Figure]{fig:plot-list-zoomin} has the pair machines, each in a column.
    994994It also has a pair of operating scenarios, each in a row.
    995 The experiment runs twelve operating scenarios; the ones chosen for their variety happen to be items I and VIII from the listing of \MLB{TODO: cross reference}.
     995The experiment runs twelve operating scenarios; the ones chosen for their variety happen to be items I and VIII from the listing of \VRef[Figure]{fig:plot-list-mchn-szz}.
    996996Note that LQ-list does not support queue operations, so this framework is absent from Operation VIII.
    997997
     
    10101010So these zones are used for basing comparison.
    10111011
     1012\MLB{Peter, caution beyond here.  I am reconsidering if this first-dismiss-physical approach to comparison is simplest.}
     1013
    10121014\begin{figure}
    10131015  \centering
    10141016  \includegraphics{plot-list-mchn-szz.pdf}
    1015   \caption{Histogram of operation durations, decomposed by physical factos.
    1016   Measurements are included from only the sizes in the ``small'' and ``medium'' stable zones.}
     1017  \caption{Histogram of operation durations, decomposed by physical factors.
     1018  Measurements are included from only the sizes in the ``small'' and ``medium'' stable zones.
     1019  This breakdown divides the entire population of test results into four mutually disjoint constituents.}
    10171020  \label{fig:plot-list-mchn-szz}
    10181021\end{figure}
     
    10251028From the perspective of assessing winning/losing frameworks, these physical effects are noise.
    10261029So, subsequent analysis conditions on the phisical effects.
    1027 That is, it presents results relative to the mean of the physical quadrant (\VRef[fig]{fig:plot-list-mchn-szz} histogram) to which it belogs.
     1030That is, it supposes you are put into an unknown physical situation (that is one of the four being tested), then presents all the ways your outcome could change as a result of non-physical factors, assuming that the physical situation is kept constant.
     1031It does do by presenting results relative to the mean of the physical quadrant (\VRef[fig]{fig:plot-list-mchn-szz} histogram) to which it belogs.
    10281032With this adjustment, absolute duration values (in nonsecods) are lost.
    10291033In return, the physical quadrants are re-combined, enabling assessment of the non-physical factors.
    10301034
    1031 \MLB{Peter, stop here.  Graph and discussion of these non-physical factos is coming.}
     1035\begin{figure}
     1036  \centering
     1037  \includegraphics{plot-list-op-fx.pdf}
     1038  \caption{Histogram of operation durations, decomposed by non-physical factors.
     1039  The twelve-way by-operation breakdown, and the four-way by-framework breakdown, each divides the entire population of test results into its mutually disjoint constituents.}
     1040  \label{fig:plot-list-op-fx}
     1041\end{figure}
     1042
     1043\VRef[Figure]{fig:plot-list-op-fx} gives this non-physical decomposition.
     1044
     1045\MLB{Peter, stop here.  Discussion of these non-physical factos is coming.}
    10321046
    10331047\begin{comment}
     
    10381052On the server, \CFA and \uCpp lists are can be fast by up to 100\%.
    10391053Overall, LQ-tailq does the best at short lengths but loses out above a dozen elements.
    1040 
    1041 \VRef[Figure]{f:RelativeTime} shows the percentage difference by treating @tailq@ as the control benchmark, and showing the other list results relative to it.
    1042 This change does not affect the who-wins statements, it just removes the ``sweet spot'' bend that the earlier discussion dismissed as incidental.
    1043 Runs faster than @tailq@'s are below the zero and slower runs are above;
    1044 @tailq@'s mean is always zero by definition, but its error bars, representing a single scenario's re-run stability, are still meaningful.
    1045 With this bend straightened out, aggregating across lengths is feasible.
    10461054\end{comment}
    10471055
    1048 \begin{figure}
    1049 \centering
    1050   \setlength{\tabcolsep}{0pt}
    1051   \begin{tabular}{p{0.75in}p{2.75in}p{3in}}
    1052   &
    1053   \subfloat[Supersets, AMD]{\label{f:Superset-swift}
    1054         \hspace*{-0.75in}
    1055         \includegraphics{plot-list-cmp-exout-swift.pdf}
    1056   } % subfigure
    1057   &
    1058   \subfloat[Supersets, Intel]{\label{f:Superset-java}
    1059         \includegraphics{plot-list-cmp-exout-java.pdf}
    1060   } % subfigure
    1061   \\
    1062   &
    1063   \subfloat[1st Level Slice, AMD]{\label{f:1stLevelSlice-swift}
    1064         \hspace*{-0.75in}
    1065         \includegraphics{plot-list-cmp-survey-swift.pdf}
    1066   } % subfigure
    1067   &
    1068   \subfloat[1st Level Slice, Intel]{\label{f:1stLevelSlice-java}
    1069         \includegraphics{plot-list-cmp-survey-java.pdf}
    1070   } % subfigure
    1071   \end{tabular}
    1072   \caption{Operation duration ranges across operational scenarios.  (a) has the supersets of the running example operation.  (b) has the first-level slices of the full space of operations.}
    1073   \label{fig:plot-list-cmp-overall}
    1074 \end{figure}
    1075 
    1076 \VRef[Figure]{fig:plot-list-cmp-overall} introduces alternative views of the data.
    1077 Part \ref*{f:Superset-swift}--\ref*{f:Superset-java}'s first column summarizes all the data of \VRef{f:RelativeTime}.
    1078 Its x-axis label, ``stack/insfirst/allhead,'' names the concrete scenario that has been discussed until now.
    1079 Moving across the columns, the next three each stretch to include more scenarios on each of the operation dimensions, one at a time.
    1080 The second column considers the scenarios $\{\mathrm{stack}\} \times \{\mathrm{insfirst}\} \times \{\mathrm{allhead}, \mathrm{inselem}, \mathrm{remelem}\}$,
    1081 while the third stretches polarity and the fourth stretches accessor.
    1082 Then next three columns each stretch two scenario dimensions and the last column stretches all three.
    1083 The \CFA bar in the last column is summarizing 840 test-program runs: 14 list lengths, 2 movements, 2 polarities, 3 accessors and 5 repetitions.
    1084 
    1085 In the earlier plots of a single scenario broken down by length, each data point, with its error bars, represents just 5 repetitions.
    1086 With a couple exceptions, this reproducibility error was small.
    1087 Now, for a \CFA bar, summarizing 70 (first column) to 840 (last column) runs, a bar's height is dominated by the different behaviours of the scenarios and list lengths that it summarizes.
    1088 Accordingly, the first column's bars are short and last one's are tall.
    1089 A box represents the inner 68\% of the durations, while its lines extend to cover 95\%.
    1090 The symbol on the bar is the mean duration.
    1091 
    1092 The chosen benchmark of LQ-@tailq@ is not shown in this format because it would be trivial here.
    1093 With iter-scenario differences dominating the bar size, and @tailq@'s mean performance defined to be zero in all scenarios, a @tailq@ bar on this plot would only show @tailq@'s re-run stability, which is of no comparison value.
    1094 
    1095 The LQ-@list@ implementation does not support all scenarios, only stack movement with insert-first polarity.
    1096 So, its 1, 3, 4 and 7\textsuperscript{th} bars all summarize the same set of points (those with accessor constrained to all-head), as do its 2, 5, 6 and 8\textsuperscript{th} (those with accessor unconstrained).
    1097 
    1098 Rather than exploring from one scenario out, \VRef{fig:plot-list-cmp-overall}-(b) gives a more systematic breakdown of the entire experimental space.
    1099 Other than the last grand-total column, each breakdown column shows one value from one operation dimension.
    1100 
    1101 LQ-@list@'s partial scenario coverage gives missing bars where it does not support the operation.
    1102 And, again, it gives repetition where all data points occur in several columns' intersection, such as stack/*/* and */insfirst/*.
    1103 
     1056
     1057\MLB{Here is the conclusion of the earlier analysis. It basically stands, but needs refreshing.}
    11041058In the grand total, and in all halves by movement or polarity, \CFA and uC++ are equivalent, while LQ-@list@ beats them slightly.
    11051059Splitting on accessor, \CFA has a poor result on element removal, LQ-@list@ has a great result on the other accessors, and uC++ is unaffected.
  • doc/theses/mike_brooks_MMath/plots/ListCommon.py

    rd1ccc57 re2e927e  
    488488        histo.insert(y_lo_col_loc + 1, "y_hi", histo["y_lo"].apply(topValOfBucketBotVal))
    489489
    490         header = str.join(', ', dkey)
     490        dkey_str = list( map( str, dkey ) )
     491        header = str.join(', ', dkey_str)
    491492        print(f'"{header}"')
    492493        text = histo.to_csv(header=False, index=False, sep='\t')
Note: See TracChangeset for help on using the changeset viewer.