Changeset 1abcec9b for doc/theses/mike_brooks_MMath/list.tex
- Timestamp:
- Apr 13, 2026, 3:05:44 AM (2 weeks ago)
- Branches:
- master
- Children:
- 5b21636b
- Parents:
- 2581f1e
- File:
-
- 1 edited
-
doc/theses/mike_brooks_MMath/list.tex (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
doc/theses/mike_brooks_MMath/list.tex
r2581f1e r1abcec9b 1034 1034 \includegraphics{plot-list-1ord.pdf} 1035 1035 \caption{Histogram of operation durations, decomposed by all first-order effects. 1036 Each of the three breakdowns divides the entire population of test results into its mutually disjoint constituents. 1037 \MLB{missing: overlay of means}} 1036 Each of the three breakdowns divides the entire population of test results into its mutually disjoint constituents.} 1038 1037 \label{fig:plot-list-1ord} 1039 1038 \end{figure} … … 1046 1045 1047 1046 A similar situation comes from \VRef[Figure]{fig:plot-list-1ord}'s second comparison, by operation type. 1048 Specific interactions like framework X doing better on stacks do occur; a selection of them is addressed in \MLB{TODO: cross reference}.1047 Specific interactions do occur, like framework X doing better on stacks than on queues; a selection of these is addressed in \VRef[Figure]{fig:plot-list-2ord} and discussed shortly. 1049 1048 But they are so irrelevant to the issue of picking a winning framework that it is sufficient here to number the operations opaquely. 1050 1049 Whether a given list implementation is suitable for a language's general library succeeds or fails without knowledge of whether your use will have stack or queue movement. … … 1060 1059 As does a small size on the Intel typically beat a medium size on the AMD by 66\%. 1061 1060 Framework choice is simply not where you stand to win or lose the most. 1061 1062 \begin{figure} 1063 \centering 1064 \includegraphics{plot-list-2ord.pdf} 1065 \caption{Histogram of operation durations, illustrating interactions with framework. 1066 Each distribution shows how its framework reacts to a single other factor being varied across one pair of options. 1067 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. 1068 This point's y-axis score is the ratio of these setups' durations. 1069 The point lands in a bin closer to the label of the option that performs better. 1070 } 1071 \label{fig:plot-list-2ord} 1072 \end{figure} 1073 1074 \VRef[Figure]{fig:plot-list-1ord} stays razor-focused on only first-order effects in order to contextualize a winner/loser framework observation. 1075 But this perspective cannot address questions like, ``Where are \CFA's sore spots?'' 1076 Moreover, the shallow threatment of operations by ordinals said nothing about how stack usage compares with queues'. 1077 1078 \VRef[Figure]{fig:plot-list-2ord} provides such answers. 1079 Its size-zone criterion refines the obvious notion that a small size runs faster than a big size; this issue is by how much. 1080 Indeed, all means favour small and few tails favour medium. 1081 But the various frameworks do no respond to the different sizes and machines uniformly. 1082 On the AMD, \CFA and \uCpp have a modest size sensitivity, LQ-tailq's is moderate amd LQ-list seems unaffected. 1083 On the Intel, \CFA's increases to moderate, while \uCpp is now unaffected, and both LQs have a dramatic response. 1084 The Intel is more sensitive to size than the AMD. 1085 1086 Turning next to movement and polarity, the responses appear more subdued. 1087 Note that LQ-list has no represntation in these comparisons because it only supports stacks that push and pop with the first element. 1088 \CFA is completely stable under movement and polarity changes. 1089 \uCpp and LQ show modest responses favouring queues and insertion at last. 1090 1091 Finally, with accessor, a \CFA sore spot emerges. 1092 Note the pair of two-way comparisons pulled from the three experiment setups used. 1093 First, the all-head/insert-element opposition addresses which insertion style is better---by-head (top) and by-element (bottom). 1094 Then, the all-head/remove-element opposition addresses which removal style is better---by-head (top) and by-element (bottom). 1095 The LQs favour insertion by head and removal by element. 1096 \CFA and \uCpp favour both operations by head. 1097 The strongest effect is \CFA's aversion to removal by element---certainly an opportunity for improvement. 1098 1099 \begin{comment} 1100 These remarks are mostly about 3ord over 2ord. 1101 This analysis does not provide more detail about one framework beating another; it offers different benefits. 1102 These interactions further illustrate the lottery-ticket unpredictability that a linked-list user inevitably faces, by revealing stronger-still performance swings hidden from the first-order view. 1103 They illustrate the difficult signal-to-noise ratio that I had to overcome in preparing this data. 1104 They may serve as a reference guiding future \CFA linked-list work by informing on where to target improvements. 1105 Finally, the findings offer the conclusion that \CFA's list offers more consostent performance across usage scenarios, than the other lists. 1106 \end{comment} 1107 1108 \begin{comment} 1109 Further to the interpretation guidance of \VRef[Figure]{fig:plot-list-2ord}'s caption, a comparison with the construction of \VRef[Figure]{fig:plot-list-1ord} may be helpful. 1110 In the first-order graph, the factors being compared had many options: four, twelve and four. 1111 # XXX Each option contributes its own, seemingly independent, mean and distribution. 1112 # XXX But, in fact, they are not totally independent. 1113 # WRONG: it's not just about binary, you also need a split on a conditioned factor 1114 I'm trying to get to: 1115 Side by side in earlier style, but they're opposites, so they mirror each other, so you take option B, flip it over, and have option A---I'll just show A 1116 \end{comment} 1117 1118 1062 1119 1063 1120 \MLB{ TODO: find a home for these original conclusions: … … 1124 1181 \caption{Histogram of operation durations, decomposed by physical factors. 1125 1182 Measurements are included from only the sizes in the ``small'' and ``medium'' stable zones. 1126 This breakdown divides the entire population of test results into four mutually disjoint constituents.} 1183 This breakdown divides the entire population of test results into four mutually disjoint constituents. 1184 \MLB{I see that I broke it. But we might be getting rid of it.} 1185 } 1127 1186 \label{fig:plot-list-mchn-szz} 1128 1187 \end{figure} … … 1131 1190 Each of these four histograms shows variation in duration coming from the four specific sizes in a size zone, from combining results of all twelve operations and all four frameworks. 1132 1191 Among the means of the four histograms, there is a standard deviation of 0.9 ns, which is 20\% of the global mean. 1133 This variability is due solely to physi al factors.1192 This variability is due solely to physical factors. 1134 1193 1135 1194 From the perspective of assessing winning/losing frameworks, these physical effects are noise.
Note:
See TracChangeset
for help on using the changeset viewer.