Changeset 6767f27


Ignore:
Timestamp:
Apr 10, 2026, 12:25:07 AM (15 hours ago)
Author:
Michael Brooks <mlbrooks@…>
Branches:
master
Children:
17f2a7f4
Parents:
d6ce310
Message:

Refactor list plotting code to enable new analyses.

Visible difference in relative plots no longer being 3 others baselined to lq-tailq, now all 4 baselined to their mean.

Location:
doc/theses/mike_brooks_MMath/plots
Files:
3 added
25 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/mike_brooks_MMath/plots/ListCommon.py

    rd6ce310 r6767f27  
    1 # Based on crunch1
    2 # updates for run-scenario columns not seen back then
    3 # result eyeballs okay
    4 
    51import pandas as pd
    62import numpy as np
     
    84import os
    95from subprocess import Popen, PIPE
     6from scipy.stats import gmean
    107
    118def getDataset( infile ):
     
    3229    timings[['ExperimentDurSec',
    3330        'CheckDonePeriod',
    34         'NumNodes',
     31        'Length',
    3532        'ExperimentDurOpCount',
    3633        'Seed',
    3734        'InterleaveFrac']] = timings['Args'].str.strip().str.split(expand=True)
    38     timings["NumNodes"] = pd.to_numeric(timings["NumNodes"])
     35    timings["Length"] = pd.to_numeric(timings["Length"])
    3936    timings["InterleaveFrac"] = pd.to_numeric(timings["InterleaveFrac"]).round(3)
     37
     38    timings["NumNodes"] = timings["Length"] * timings["Width"]
    4039
    4140    timings[['__ProgramPrefix',
     
    4645        'polarity',
    4746        'accessor']] = timings['op'].str.split('-', expand=True)
    48 
    49     ## calculate relative to baselines
    50     baseline_fx = 'lq-tailq'
    51     baseline_intrl = 0.0
    52 
    53     # chose calc "FineCrossRun" from labpc:crunch3
    54     byPeer = timings.groupby(['NumNodes', 'op', 'InterleaveFrac'])
    55     for [NumNodes, op, intrlFrac], peerGroup in byPeer:
    56         grpfx = peerGroup.groupby(['fx'])
    57         if baseline_fx in grpfx.groups:
    58             baselineRows = grpfx.get_group(baseline_fx)
    59             baselineDur = meanNoOutlr( baselineRows['mean_op_dur_ns'] )
    60         else:
    61             baselineDur = 1.0
    62         timings.loc[peerGroup.index, 'BaselineFxOpDurNs'] = baselineDur
    63     timings['OpDurRelFx'] = timings['mean_op_dur_ns'] / timings['BaselineFxOpDurNs']
    64 
    65     # relative to same fx, no interleave
    66     byPeer = timings.groupby(['NumNodes', 'op', 'fx'])
    67     for [NumNodes, op, fx], peerGroup in byPeer:
    68         baselineRows = peerGroup.groupby(['InterleaveFrac']).get_group(baseline_intrl)
    69         baselineDur = meanNoOutlr( baselineRows['mean_op_dur_ns'] )
    70         timings.loc[peerGroup.index, 'BaselineIntrlOpDurNs'] = baselineDur
    71     timings['OpDurRelIntrl'] = timings['mean_op_dur_ns'] / timings['BaselineIntrlOpDurNs']
     47   
     48    ## SizeZone as NumNodes t-shirt size
     49    timings['SizeZone'] = np.select(
     50        condlist = [
     51            (4 <= timings['NumNodes']) & (timings['NumNodes'] <= 16),
     52            (48 <= timings['NumNodes']) & (timings['NumNodes'] <= 256)
     53        ],
     54        choicelist = [
     55            'SM',
     56            'ML'
     57        ],
     58        default = 'none'
     59    )
    7260
    7361    return timings
    7462
    75 def getSingleResults(infileLocal, *,
    76     tgtMovement = 'all',
    77     tgtPolarity = 'all',
    78     tgtAccessor = 'all',
    79     tgtInterleave = 0.0 ):
    80 
     63# `c` = column name
     64def c( baseName, marginalizeOn ):
     65    margSlug = str.join( "_", marginalizeOn )
     66    return baseName + "_" + margSlug
     67
     68explanations = ['movement', 'polarity', 'accessor',
     69                'NumNodes',
     70                'SizeZone', # note fd: NumNodes -> SizeZone
     71                'fx',
     72                'machine',
     73                'InterleaveFrac', # unused and always zero
     74                ]
     75
     76# helper for avoiding pollution from e.g. alternate cfa list versions
     77# when a preference-limiting factor is marginalized, make bl value from preferred subset
     78# but still stamp result everywhere; e.g. even cfa-strip has canon-bl-relative perf
     79# when conditioning on such factor, peer groups are already small enough to stop such pollution
     80# use nontrivial marginalizeOn when calculating baseline values, to achieve the above outside-canonical behaviour non-degenerately
     81# use default full marginalizeOn when removing points from a graph, which leaves only canonical points
     82def getJustCanon( timings,
     83                  marginalizeOn = explanations, *,
     84                    # no c++: bl is for comparing intrusives
     85                    # no lq-list: sparse
     86                    # no cfa-fredDisbled: bl is for comparing prod-readies
     87                  fxInc = ['cfa-cfa', 'lq-tailq', 'upp-upp'],
     88                  szInc = ['SM', 'ML'],
     89                  sExcl = [1]
     90                  ): # all explanations marginalized => maximally aggressive filter
     91    if 'fx' in marginalizeOn:
     92        fxIsCanon = timings.fx.isin(fxInc)
     93        timings = timings[ fxIsCanon ]
     94    if 'SizeZone' in marginalizeOn:
     95        szIsCanon = timings.SizeZone.isin(szInc)
     96        timings = timings[ szIsCanon ]
     97    if 'NumNodes' in marginalizeOn:
     98        sIsCanon = ~ timings.NumNodes.isin(sExcl)
     99        timings = timings[ sIsCanon ]
     100    return timings
     101
     102
     103def annotateBaseline( timings, marginalizeOn ):
     104    c_tgtPeers = c( 'Peers', marginalizeOn )
     105    c_tgtBl = c("Baseline", marginalizeOn)
     106    c_tgtRel = c("OpDurRel", marginalizeOn)
     107    if c_tgtBl in timings.columns or c_tgtRel in timings.columns:
     108        assert( c_tgtBl in timings.columns and c_tgtRel in timings.columns )
     109        return
     110    # size handling:
     111    # two ordinary baselines (sz-nn, nn) and one synthetic baseline (sz)
     112    # the SizeZone-only baseline has no interpretation wrt a real peer group
     113    # it isolates the effect of belonging to one SZ or the other
     114    # while conditioning away the specific-size effects within the SZ
     115    # notably in zone SM, opDur-v-size usually pitches upward
     116    # comparing to sz-only baseline gets rid of "they all pitch up," while keeping "SM is faster then ML"
     117    if 'SizeZone' in marginalizeOn and 'NumNodes' not in marginalizeOn:
     118        # special case: sz-only synthetic benchmark
     119        margNeither = list( set(marginalizeOn) - {'SizeZone'} )
     120        margBoth = list( set(marginalizeOn) | {'NumNodes'} )
     121        margJustNn = list( set(margNeither) | {'NumNodes'} )
     122        annotateBaseline( timings, margNeither )
     123        annotateBaseline( timings, margBoth )
     124        annotateBaseline( timings, margJustNn )
     125        c_neitherRel = c("OpDurRel", margNeither)
     126        c_bothBl = c("Baseline", margBoth)
     127        c_justNnBl = c("Baseline", margJustNn)
     128        timings[ c_tgtBl ] = np.nan
     129        timings[ c_tgtRel ] = timings[ c_justNnBl ] / timings[ c_bothBl ] * timings[ c_neitherRel ]
     130    else: # general case
     131        # prevent non-canonical samples from polluting baseline values
     132        # note, depending on the presentation, the polluting points may already be removed from timings entirely
     133        canonSrc = getJustCanon(timings, marginalizeOn)
     134    #   print(f"for marg on {marginalizeOn}, |canonSrc| = {len(canonSrc)}, |timings| = {len(timings)}", file=sys.stderr)
     135        conditionOn = list( set(explanations) - set(marginalizeOn) )
     136    #   print( "marginalizing on", marginalizeOn, "conditioning on", conditionOn, file=sys.stderr )
     137
     138        stats = canonSrc.groupby(conditionOn)['mean_op_dur_ns'].agg(**{
     139            c_tgtPeers: 'count',
     140            c_tgtBl: gmean
     141        })
     142        group_lookup = timings.set_index(conditionOn).index
     143        timings[c_tgtPeers] = stats[c_tgtPeers].reindex(group_lookup).values
     144        timings[c_tgtBl] = stats[c_tgtBl].reindex(group_lookup).values
     145
     146        # everywhere := itself / [preferred-subset derived]
     147        timings[c_tgtRel] = timings['mean_op_dur_ns'] / timings[c_tgtBl]
     148
     149
     150# longer column name (Peers_%, Baseline_%, OpDurRel_%) gives larger peer group and more (total) variation
     151def annotateCommonBaselines( timings ):
     152    def applyGeneralExplanations( bgMarginalizeOn ):
     153        def fg( marginalizeOn ):
     154            return bgMarginalizeOn + marginalizeOn
     155        annotateBaseline( timings, fg( [] ) ) # all-in baseline (all factors conditioned): only inter-run differences
     156        annotateBaseline( timings, fg( ['movement', 'polarity'] ) )
     157        annotateBaseline( timings, fg( ['accessor'] ) )
     158        annotateBaseline( timings, fg( ['machine'] ) )
     159
     160        annotateBaseline( timings, fg( ['SizeZone', 'NumNodes'] ) )  # SizeZone is NOT redundant; conditioned on neither
     161        annotateBaseline( timings, fg( ['NumNodes'] ) )  # still conditioned on SizeZone
     162        annotateBaseline( timings, fg( ['SizeZone'] ) )  # synthetic: conditioned on NumNodes but not SizeZone
     163    applyGeneralExplanations( [] )
     164    applyGeneralExplanations( ['fx'] )
     165
     166def getMachineDataset( dsname, machine ):
     167    infileLocal = f"results-{machine}-{dsname}.csv"
    81168    infile = os.path.dirname(os.path.abspath(__file__)) + '/../benchmarks/list/' + infileLocal
    82 
    83169    timings = getDataset( infile )
     170    timings['machine'] = machine
     171    return timings
     172
     173allMachines = ['swift', 'java']
     174
     175
     176# general, as in exclude the stripped-down experimental CFAs
     177general_fxs_full = ['cfa-cfa', 'cpp-stlref', 'upp-upp', 'lq-tailq', 'lq-list']
     178general_fxs_intrusive = ['cfa-cfa', 'upp-upp', 'lq-tailq', 'lq-list']
     179
     180def getSingleResults(
     181        dsname = 'general',
     182        machines = allMachines,
     183        *,
     184        fxs = general_fxs_full,
     185        tgtMovement = 'all',
     186        tgtPolarity = 'all',
     187        tgtAccessor = 'all',
     188        tgtInterleave = 0.0 ):
     189
     190    timings = pd.concat([
     191        getMachineDataset( dsname, m )
     192        for m in machines ])
     193   
     194#    print(timings, file=sys.stderr)
    84195
    85196    movements = timings['movement'].unique()
     
    94205    if accessors.size > 1:
    95206        accessors = np.append(accessors, 'all')
     207
     208#    print(f"trying to filter {dsname} {machines} {len(timings)}", file=sys.stderr)
     209    grp = timings.groupby('fx')
     210#    print(f"with fxs {grp.groups.keys()}", file=sys.stderr)
     211    timings = pd.concat([
     212        grp.get_group(fx)
     213        for fx in fxs ])
    96214
    97215    if (tgtMovement != 'all'):
     
    106224    if (tgtInterleave != 'all'):
    107225        timings = timings[ timings['InterleaveFrac'] == float(tgtInterleave) ]
     226
    108227
    109228    return timings
     
    139258
    140259def printManySummary(*,
    141         infileLocal,
     260        dsname = 'general',
     261        machines = allMachines,
    142262        metafileCore,
    143263        fxs,
    144264        sizeQual,
    145265        tgtInterleave = 0.0,
    146         measure = 'OpDurRelFx') :
     266        marginalizeOn = ['fx'] ) :
    147267   
    148268    metadata = getSummaryMeta(metafileCore)
    149269
     270    measure = c( 'OpDurRel', marginalizeOn )
     271
    150272    print("# op_num\tfx_num\tfx\tmean\tstdev\tmin\tmax\tcount\tpl95\tpl68\tp50\tph68\tph95")
    151273
    152274    for op in metadata.itertuples():
    153         timings = getSingleResults(infileLocal,
     275        timings = getSingleResults(dsname, machines,
     276            fxs=fxs,
    154277            tgtMovement = op.movement,
    155278            tgtPolarity = op.polarity,
    156279            tgtAccessor = op.accessor,
    157280            tgtInterleave = tgtInterleave )
     281        annotateBaseline(timings, marginalizeOn)
    158282
    159283        timings = timings[ timings['fx'].isin(fxs) ]
     
    180304        print(text, end='')
    181305
    182 def printSingleDetail(infileLocal, *,
    183     tgtMovement = 'all',
    184     tgtPolarity = 'all',
    185     tgtAccessor = 'all',
    186     tgtInterleave = 0.0,
    187     measure = 'mean_op_dur_ns' ):
    188 
    189     timings = getSingleResults(infileLocal,
     306def printSingleDetail(
     307        dsname = 'general',
     308        machines = allMachines,
     309        *,
     310        fxs = general_fxs_full,
     311        tgtMovement = 'all',
     312        tgtPolarity = 'all',
     313        tgtAccessor = 'all',
     314        tgtInterleave = 0.0,
     315        measureBase = 'mean_op_dur_ns',
     316        marginalizeOn = explanations ):
     317
     318
     319    timings = getSingleResults(dsname, machines,
     320        fxs = fxs,
    190321        tgtMovement = tgtMovement,
    191322        tgtPolarity = tgtPolarity,
    192323        tgtAccessor = tgtAccessor,
    193324        tgtInterleave = tgtInterleave)
     325
     326    if measureBase == 'OpDurRel':
     327        annotateBaseline(timings, marginalizeOn)
     328        measure = c( measureBase, marginalizeOn )
     329    elif measureBase == 'mean_op_dur_ns':
     330        measure = measureBase
     331    else:
     332        raise RuntimeError(f"measureBase '{measureBase}' not handled")
     333   
    194334    groupedFx = timings.groupby('fx')
    195 
    196335    for fx, fgroup in groupedFx:
    197336        # print(fgroup.head())
     
    214353        print()
    215354
    216 def meanNoOutlr(range):
     355def aMeanNoOutlr(range):
    217356    return ( range.sum() - range.min() - range.max() ) / ( range.count() - 2 )
     357
     358def gMeanNoOutlr(range):
     359    return ( range.prod() / range.min() / range.max() ) ** ( 1 / ( range.count() - 2 ) )
  • doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-java.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-java-general.csv',
     12    machines=['java'],
    1313    metafileCore = stripMachine(thisPy),
    1414    fxs=['cfa-cfa', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip'],
  • doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem-java.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-java-general.csv',
     12    machines=['java'],
    1313    metafileCore = stripMachine(thisPy),
    1414    fxs=['cfa-cfa', 'cfa-mandHead', 'cfa-noListed', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip'],
  • doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-remelem-swift.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-swift-general.csv',
     12    machines=['swift'],
    1313    metafileCore = stripMachine(thisPy),
    1414    fxs=['cfa-cfa', 'cfa-mandHead', 'cfa-noListed', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip'],
  • doc/theses/mike_brooks_MMath/plots/list-cfa-attrib-swift.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-swift-general.csv',
     12    machines=['swift'],
    1313    metafileCore = stripMachine(thisPy),
    1414    fxs=['cfa-cfa', 'cfa-likeLq', 'cfa-noIter', 'cfa-strip'],
  • doc/theses/mike_brooks_MMath/plots/list-cmp-exout-java.gp

    rd6ce310 r6767f27  
    3131
    3232set grid
    33 set key top center horizontal
     33set key bottom center horizontal
    3434
    35 BOXSPACING=0.25
     35BOXSPACING=0.20
    3636BOXWIDTH=BOXSPACING * .88
    3737set boxwidth BOXWIDTH absolute
    3838
    39 NUM_FXS=3
     39NUM_FXS=4
    4040
    4141offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
     
    5353        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"        , \
    5454     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
    55      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
     55     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-tailq' with candlesticks lt rgb "magenta" , \
     56     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
    5657     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"        , \
    5758     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
    58      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
     59     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 11 lt rgb "magenta"  , \
     60     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
    5961     SRCDIR.'/list-cmp-exout-meta.dat' \
    60         using 1:(-999):xtic(2) notitle with points, \
    61      $Singleton using (3.73):(7.50)                         notitle         with points pt 7  lt rgb "blue"        , \
    62      $Singleton using (5.44):(7.50)                         notitle         with points pt 9  lt rgb "dark-orange", \
    63      $Singleton using (7.14):(7.50)                         notitle         with points pt 13 lt rgb "purple"
     62        using 1:(-999):xtic(2) notitle with points \
  • doc/theses/mike_brooks_MMath/plots/list-cmp-exout-java.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-java-general.csv',
     12    machines=['java'],
    1313    metafileCore = stripMachine(thisPy),
    14     fxs=['cfa-cfa', 'upp-upp', 'lq-list'],
     14    fxs=['cfa-cfa', 'upp-upp', 'lq-tailq', 'lq-list'],
    1515    sizeQual = javaSweetspot
    1616)
  • doc/theses/mike_brooks_MMath/plots/list-cmp-exout-swift.gp

    rd6ce310 r6767f27  
    3131
    3232set grid
    33 set key top center horizontal
     33set key bottom center horizontal
    3434
    35 BOXSPACING=0.25
     35BOXSPACING=0.20
    3636BOXWIDTH=BOXSPACING * .88
    3737set boxwidth BOXWIDTH absolute
    3838
    39 NUM_FXS=3
     39NUM_FXS=4
    4040
    4141offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
     
    5353        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"        , \
    5454     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
    55      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
     55     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-tailq' with candlesticks lt rgb "magenta" , \
     56     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
    5657     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"        , \
    5758     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
    58      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
     59     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 11 lt rgb "magenta"  , \
     60     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
    5961     SRCDIR.'/list-cmp-exout-meta.dat' \
    60         using 1:(-999):xtic(2) notitle with points, \
    61      $Singleton using (3.73):(7.50)                         notitle         with points pt 7  lt rgb "blue"        , \
    62      $Singleton using (5.44):(7.50)                         notitle         with points pt 9  lt rgb "dark-orange", \
    63      $Singleton using (7.14):(7.50)                         notitle         with points pt 13 lt rgb "purple"
     62        using 1:(-999):xtic(2) notitle with points \
  • doc/theses/mike_brooks_MMath/plots/list-cmp-exout-swift.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-swift-general.csv',
     12    machines=['swift'],
    1313    metafileCore = stripMachine(thisPy),
    14     fxs=['cfa-cfa', 'upp-upp', 'lq-list'],
     14    fxs=['cfa-cfa', 'upp-upp', 'lq-tailq', 'lq-list'],
    1515    sizeQual = swiftSweetspot
    1616)
  • doc/theses/mike_brooks_MMath/plots/list-cmp-survey-java.gp

    rd6ce310 r6767f27  
    3333
    3434set grid
    35 set key top center horizontal
     35set key bottom center horizontal
    3636
    37 BOXSPACING=0.25
     37BOXSPACING=0.20
    3838BOXWIDTH=BOXSPACING * .88
    3939set boxwidth BOXWIDTH absolute
    4040
    41 NUM_FXS=3
     41NUM_FXS=4
    4242
    4343offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
     
    5555        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"        , \
    5656     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
    57      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
     57     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-tailq' with candlesticks lt rgb "magenta" , \
     58     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
    5859     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"        , \
    5960     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
    60      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
     61     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 11 lt rgb "magenta"  , \
     62     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
    6163     SRCDIR.'/list-cmp-survey-meta.dat' \
    6264        using 1:(-999):xtic(2) notitle with points, \
  • doc/theses/mike_brooks_MMath/plots/list-cmp-survey-java.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-java-general.csv',
     12    machines=['java'],
    1313    metafileCore = stripMachine(thisPy),
    14     fxs=['cfa-cfa', 'upp-upp', 'lq-list'],
     14    fxs=['cfa-cfa', 'upp-upp', 'lq-tailq', 'lq-list'],
    1515    sizeQual = javaSweetspot
    1616)
  • doc/theses/mike_brooks_MMath/plots/list-cmp-survey-swift.gp

    rd6ce310 r6767f27  
    3333
    3434set grid
    35 set key top center horizontal
     35set key bottom center horizontal
    3636
    37 BOXSPACING=0.25
     37BOXSPACING=0.20
    3838BOXWIDTH=BOXSPACING * .88
    3939set boxwidth BOXWIDTH absolute
    4040
    41 NUM_FXS=3
     41NUM_FXS=4
    4242
    4343offset(opNum, fxNum) = opNum + fxNum * BOXSPACING - (NUM_FXS+1) * BOXSPACING / 2 + 0.5
     
    5555        using ($2 == 1 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'cfa-cfa' with candlesticks lt rgb "blue"        , \
    5656     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'upp-upp' with candlesticks lt rgb "dark-orange", \
    57      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
     57     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-tailq' with candlesticks lt rgb "magenta" , \
     58     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):10:9:13:12 title 'lq-list' with candlesticks lt rgb "purple"   , \
    5859     '' using ($2 == 1 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 7  lt rgb "blue"        , \
    5960     '' using ($2 == 2 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 9  lt rgb "dark-orange", \
    60      '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
     61     '' using ($2 == 3 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 11 lt rgb "magenta"  , \
     62     '' using ($2 == 4 ? (offset($1, $2)) : 1/0):4          notitle         with points pt 13 lt rgb "purple"   , \
    6163     SRCDIR.'/list-cmp-survey-meta.dat' \
    6264        using 1:(-999):xtic(2) notitle with points, \
  • doc/theses/mike_brooks_MMath/plots/list-cmp-survey-swift.py

    rd6ce310 r6767f27  
    1010
    1111printManySummary(
    12     infileLocal = 'results-swift-general.csv',
     12    machines=['swift'],
    1313    metafileCore = stripMachine(thisPy),
    14     fxs=['cfa-cfa', 'upp-upp', 'lq-list'],
     14    fxs=['cfa-cfa', 'upp-upp', 'lq-tailq', 'lq-list'],
    1515    sizeQual = swiftSweetspot
    1616)
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-abs-java.gp

    rd6ce310 r6767f27  
    3030plot INDIR."/plot-list-zoomin-abs-java.dat" \
    3131       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue"        pt  6  ps 0.85 lw 1, \
    32     '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
    33     '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
    34     '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
     32    '' i 4 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
     33    '' i 3 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
     34    '' i 2 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-abs-java.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-java-general.csv',
     10    machines=['java'],
    1111    tgtMovement = 'stack',
    1212    tgtPolarity = 'insfirst',
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-abs-swift.gp

    rd6ce310 r6767f27  
    2727plot INDIR."/plot-list-zoomin-abs-swift.dat" \
    2828       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue"        pt  6  ps 0.85 lw 1, \
    29     '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
    30     '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
    31     '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
     29    '' i 4 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
     30    '' i 3 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
     31    '' i 2 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-abs-swift.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-swift-general.csv',
     10    machines=['swift'],
    1111    tgtMovement = 'stack',
    1212    tgtPolarity = 'insfirst',
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-rel-java.gp

    rd6ce310 r6767f27  
    4141plot INDIR."/plot-list-zoomin-rel-java.dat" \
    4242       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue"        pt  6  ps 0.85 lw 1, \
    43     '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
    44     '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
    45     '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
     43    '' i 4 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
     44    '' i 3 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
     45    '' i 2 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-rel-java.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-java-general.csv',
     10    machines=['java'],
    1111    tgtMovement = 'stack',
    1212    tgtPolarity = 'insfirst',
     
    2020
    2121
    22     measure='OpDurRelFx'
     22    measureBase='OpDurRel',
     23    marginalizeOn=['fx']
    2324)
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-rel-swift.gp

    rd6ce310 r6767f27  
    4343plot INDIR."/plot-list-zoomin-rel-swift.dat" \
    4444       i 0 using ($1 * 0.98):8:4:5 title columnheader(1) with yerrorbars lt rgb "blue"        pt  6  ps 0.85 lw 1, \
    45     '' i 9 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
    46     '' i 8 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
    47     '' i 7 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
     45    '' i 4 using ($1 * 0.94):8:4:5 title columnheader(1) with yerrorbars lt rgb "dark-orange"   pt  8  ps 0.75 lw 1, \
     46    '' i 3 using ($1 * 1.02):8:4:5 title columnheader(1) with yerrorbars lt rgb "magenta"             pt  10 ps 0.85 lw 1, \
     47    '' i 2 using ($1 * 1.06):8:4:5 title columnheader(1) with yerrorbars lt rgb "purple"              pt  12 ps 1.0  lw 1
  • doc/theses/mike_brooks_MMath/plots/list-zoomin-rel-swift.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-swift-general.csv',
     10    machines=['swift'],
    1111    tgtMovement = 'stack',
    1212    tgtPolarity = 'insfirst',
     
    2020
    2121
    22     measure='OpDurRelFx'
     22    measureBase='OpDurRel',
     23    marginalizeOn=['fx']
    2324)
  • doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf-java.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-java-zoomout-noshuf.csv',
     10    dsname='zoomout-noshuf',
     11    machines=['java'],
    1112    tgtMovement = 'stack',
    1213    tgtPolarity = 'insfirst',
  • doc/theses/mike_brooks_MMath/plots/list-zoomout-noshuf-swift.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-swift-zoomout-noshuf.csv',
     10    dsname='zoomout-noshuf',
     11    machines=['swift'],
    1112    tgtMovement = 'stack',
    1213    tgtPolarity = 'insfirst',
  • doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf-java.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-java-zoomout-shuf.csv',
     10    dsname='zoomout-shuf',
     11    machines=['java'],
    1112    tgtMovement = 'stack',
    1213    tgtPolarity = 'insfirst',
  • doc/theses/mike_brooks_MMath/plots/list-zoomout-shuf-swift.py

    rd6ce310 r6767f27  
    88
    99printSingleDetail(
    10     infileLocal='results-swift-zoomout-shuf.csv',
     10    dsname='zoomout-shuf',
     11    machines=['swift'],
    1112    tgtMovement = 'stack',
    1213    tgtPolarity = 'insfirst',
Note: See TracChangeset for help on using the changeset viewer.