Changeset 2316525 for benchmark/schedext


Ignore:
Timestamp:
Jan 19, 2020, 4:16:27 PM (2 years ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
f090750
Parents:
9e63a2b
Message:

update benchmarks for concurrency paper

Location:
benchmark/schedext
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • benchmark/schedext/cfa1.cfa

    r9e63a2b r2316525  
    44#include <stdio.h>
    55
    6 #include "bench.h"
     6#include "../bench.h"
    77
    88volatile int go = 0;
    99
    10 monitor M {};
    11 M m1;
     10monitor M {} m1;
    1211
    13 void __attribute__((noinline)) call( M & mutex a1 ) {}
     12void __attribute__((noinline)) call( M & mutex p1 ) {}
    1413
    15 int  __attribute__((noinline)) wait( M & mutex a1 ) {
     14void __attribute__((noinline)) wait( M & mutex p1 ) {
    1615        go = 1;
    17         for ( i; times ) {
    18                 waitfor(call : a1);
     16        for ( times ) {
     17                waitfor( call : p1 );
    1918        }
    2019        go = 0;
    21         return 0;
    2220}
    2321
    2422thread T {};
    25 void ^?{}( T & mutex this ) {}
    2623void main( T & ) {
    27         while(go == 0) { yield(); }
     24        while ( go == 0 ) { yield(); }
    2825        BENCH(
    29                 while(go == 1) { call(m1); },
     26                while ( go == 1 ) { call( m1 ); },
    3027                result
    3128        )
     
    3633        BENCH_START()
    3734        T t;
    38         return wait( m1 );
     35        wait( m1 );
    3936}
    4037
  • benchmark/schedext/cfa2.cfa

    r9e63a2b r2316525  
    88volatile int go = 0;
    99
    10 monitor M {};
    11 M m1, m2;
     10monitor M {} m1, m2;
    1211
    13 void __attribute__((noinline)) call( M & mutex a1, M & mutex a2 ) {}
     12void __attribute__((noinline)) call( M & mutex p1, M & mutex p2 ) {}
    1413
    15 int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2 ) {
     14void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2 ) {
    1615        go = 1;
    17         for ( i; times ) {
    18                 waitfor(call : a1, a2);
     16        for ( times ) {
     17                waitfor( call : p1, p2 );
    1918        }
    2019        go = 0;
    21         return 0;
    2220}
    2321
    2422thread T {};
    25 void ^?{}( T & mutex this ) {}
    2623void main( T & ) {
    27         while(go == 0) { yield(); }
     24        while( go == 0 ) { yield(); }
    2825        BENCH(
    29                 while(go == 1) { call(m1, m2); },
     26                while ( go == 1 ) { call( m1, m2 ); },
    3027                result
    3128        )
     
    3633        BENCH_START()
    3734        T t;
    38         return wait( m1, m2 );
     35        wait( m1, m2 );
    3936}
    4037
  • benchmark/schedext/cfa4.cfa

    r9e63a2b r2316525  
    88volatile int go = 0;
    99
    10 monitor M {};
    11 M m1, m2, m3, m4;
     10monitor M {} m1, m2, m3, m4;
    1211
    13 void __attribute__((noinline)) call( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {}
     12void __attribute__((noinline)) call( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {}
    1413
    15 int  __attribute__((noinline)) wait( M & mutex a1, M & mutex a2, M & mutex a3, M & mutex a4 ) {
     14void __attribute__((noinline)) wait( M & mutex p1, M & mutex p2, M & mutex p3, M & mutex p4 ) {
    1615        go = 1;
    17         for ( i; times ) {
    18                 waitfor( call : a1, a2, a3, a4 );
     16        for ( times ) {
     17                waitfor( call : p1, p2, p3, p4 );
    1918        }
    2019        go = 0;
    21         return 0;
    2220}
    2321
    2422thread T {};
    25 void ^?{}( T & mutex this ) {}
    2623void main( T & ) {
    27         while(go == 0) { yield(); }
     24        while( go == 0 ) { yield(); }
    2825        BENCH(
    29                 while(go == 1) { call(m1, m2, m3, m4); },
     26                while( go == 1 ) { call( m1, m2, m3, m4 ); },
    3027                result
    3128        )
     
    3633        BENCH_START()
    3734        T t;
    38         return wait( m1, m2, m3, m4 );
     35        wait( m1, m2, m3, m4 );
    3936}
    4037
  • benchmark/schedext/upp.cc

    r9e63a2b r2316525  
    1111        int __attribute__((noinline)) wait() {
    1212                go = 1;
    13                 for (size_t i = 0; i < times; i++) {
     13                for ( size_t i = 0; i < times; i++ ) {
    1414                        _Accept(call);
    1515                }
     
    1717                return 0;
    1818        }
    19 };
    20 
    21 M m;
     19} m;
    2220
    2321_Task T {
    2422        void main() {
    25                 while(go == 0) { yield(); }
     23                while ( go == 0 ) { yield(); }
    2624                BENCH(
    27                         while(go == 1) { m.call(); },
     25                        while ( go == 1 ) { m.call(); },
    2826                        result
    2927                )
Note: See TracChangeset for help on using the changeset viewer.