Changes in / [eac318a:60e14fc]


Ignore:
Location:
doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt
Files:
2 added
4 deleted
3 edited

Legend:

Unmodified
Added
Removed
  • doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/bench.h

    reac318a r60e14fc  
    4747#endif
    4848
    49 size_t threads = 1, num_locks = -1;
     49size_t threads = 1;
    5050
    5151#define BENCH_START()                           \
    52         if ( argc > 3 ) exit( EXIT_FAILURE );   \
     52        if ( argc > 2 ) exit( EXIT_FAILURE );   \
    5353        if ( argc == 2 ) {                      \
    5454                threads = atoi( argv[1] );      \
    55         } else if ( argc == 3 ) {                       \
    56                 threads = atoi( argv[1] );      \
    57         num_locks = atoi( argv[2] );    \
    5855        }
    5956
     
    8077}
    8178#endif
    82 
    83 // splitmix64 rand num generator
    84 // https://rosettacode.org/wiki/Pseudo-random_numbers/Splitmix64
    85 uint64_t state;                                  /* The state can be seeded with any (upto) 64 bit integer value. */
    86 
    87 uint64_t next_int() {
    88     state += 0x9e3779b97f4a7c15;               /* increment the state variable */
    89     uint64_t z = state;                          /* copy the state to a working variable */
    90     z = (z ^ (z >> 30)) * 0xbf58476d1ce4e5b9;  /* xor the variable with the variable right bit shifted 30 then multiply by a constant */
    91     z = (z ^ (z >> 27)) * 0x94d049bb133111eb;  /* xor the variable with the variable right bit shifted 27 then multiply by a constant */
    92     return z ^ (z >> 31);                      /* return the variable xored with itself right bit shifted 31 */
    93 }
    94 
  • doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/cfa/order.cfa

    reac318a r60e14fc  
    1010uint64_t total = 0;
    1111thread worker {};
    12 static inline void ?{}( worker & this, cluster & clu ) {
    13     ((thread &)this){ clu };
    14 }
    1512void main( worker & w ) {
    1613    BENCH( mutex ( LOCKS ) { }, total, done )
     
    1916int main( int argc, char * argv[] ) {
    2017        BENCH_START()
    21     cluster clus;
    22     processor * proc[threads];
    23     for ( i; threads ) // create procs
    24         (*(proc[i] = alloc())){clus};
    25 
    26     worker * w[threads];
    27     for ( i; threads ) // create threads
    28         (*(w[i] = alloc())){ clus };
    29    
    30     sleep( 10`s );
    31     done = true;
    32 
    33     for ( i; threads ) // delete threads
    34         delete(w[i]);
    35 
    36     for ( i; threads ) // delete procs
    37         delete(proc[i]);
     18    processor p[threads]; // one extra for main thread
     19    {
     20        worker w[threads];
     21        sleep( 10`s );
     22        done = true;
     23    }
    3824        printf( "%lu\n", total );
    3925}
  • doc/theses/colby_parsons_MMAth/benchmarks/mutex_stmt/run

    reac318a r60e14fc  
    8585}
    8686
    87 numtimes=11
     87numtimes=1
    8888
    8989# locks=('-DLOCKS=L1' '-DLOCKS=L2' '-DLOCKS=L3' '-DLOCKS=L4' '-DLOCKS=L5' '-DLOCKS=L6' '-DLOCKS=L7' '-DLOCKS=L8')
     
    9292locks=('2' '4' '8')
    9393
    94 num_threads='2 4 8 16 24 32'
    95 # num_threads='2 4 8'
     94# num_threads='2 4 8 16 24 32'
     95num_threads='2 4 8'
    9696
    9797# toggle benchmarks
    9898order=${true}
    99 rand=${true}
    100 baseline=${true}
    10199
    102100runCFA=${true}
     
    158156
    159157if [ ${runCFA} -eq ${true} ] ; then
    160     if [ ${order} -eq ${true} ] ; then
    161         echo -n 'CFA-order '
    162     fi
    163     if [ ${baseline} -eq ${true} ] ; then
    164         echo -n 'CFA-baseline '
    165     fi
    166     if [ ${rand} -eq ${true} ] ; then
    167         echo -n 'CFA-rand '
    168     fi
     158    echo -n 'CFA '
    169159fi # done CFA
    170160if [ ${runCPP} -eq ${true} ] ; then
    171     if [ ${order} -eq ${true} ] ; then
    172         echo -n 'CPP-order '
    173     fi
    174     if [ ${baseline} -eq ${true} ] ; then
    175         echo -n 'CPP-baseline '
    176     fi
    177     if [ ${rand} -eq ${true} ] ; then
    178         echo -n 'CPP-rand '
    179     fi
     161    echo -n 'CPP '
    180162fi # done CPP
    181163echo ""
     
    192174
    193175run_order() {
    194     echo "locks: "${1}
    195     post_args=${1}
     176    echo "order locks: "${1}
    196177
    197178    if [ ${runCFA} -eq ${true} ] ; then
    198179        cd cfa # CFA RUN
    199         print_header 'CFA-'${3}
    200         ${cfa} ${cfa_flags} ${2} ${3}.cfa -o a.${hostname} > /dev/null 2>&1
     180        print_header 'CFA'${3}
     181        ${cfa} ${cfa_flags} ${2} order${3}.cfa -o a.${hostname} > /dev/null 2>&1
    201182        run_bench
    202183        rm a.${hostname}
     
    206187    if [ ${runCPP} -eq ${true} ] ; then
    207188        cd cpp # CPP RUN
    208         print_header 'CPP-'${3}
    209         ${cpp} ${cpp_flags} ${2} ${3}.cc -o a.${hostname} > /dev/null 2>&1
     189        print_header 'CPP'${3}
     190        ${cpp} ${cpp_flags} ${2} order${3}.cc -o a.${hostname} > /dev/null 2>&1
    210191        run_bench
    211192        rm a.${hostname}
     
    215196
    216197# /usr/bin/time -f "%Uu %Ss %Er %Mkb"
    217 
    218 for i in ${!locks[@]}; do
    219     if [ ${order} -eq ${true} ] ; then
    220         run_order ${locks[$i]} ${lock_flags[$i]} 'order'
    221     fi
    222     if [ ${baseline} -eq ${true} ] ; then
    223         run_order ${locks[$i]} ${lock_flags[$i]} 'baseline'
    224     fi
    225     if [ ${rand} -eq ${true} ] ; then
    226         run_order ${locks[$i]} '-DLOCKS=L8' 'rand'
    227     fi
    228 done
    229 
    230 
     198if [ ${order} -eq ${true} ] ; then
     199    for i in ${!locks[@]}; do
     200        run_order ${locks[$i]} ${lock_flags[$i]} ''
     201        run_order ${locks[$i]} ${lock_flags[$i]} '-basic'
     202    done
     203fi
     204
Note: See TracChangeset for help on using the changeset viewer.