===================================================================================================================================== OVERVIEW of benchmarks in directory 'micro-benchmarks' ===================================================================================================================================== ------------------------------------------------------------------------------------------------------------------------------------- Property labels for race-yes set | Property labels for race-no set ------------------------------------------------------------------------------------------------------------------------------------- Y1: Unresolvable dependences | N1: Embarrassingly parallel Y2: Missing data sharing clauses | N2: Use of data sharing clauses Y3: Missing synchronization | N3: Use of synchronization Y4: SIMD data races | N4: Use of SIMD directives Y5: Accelerator data races | N5: Use of accelerator directives Y6: Undefined behaviors | N6: Use of special language features Y7: Numerical kernel data races | N7: Numerical kernels ------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------- MIRCOBENCHMARKS WITH KNOWN DATA RACES (RACE-YES-SET) ------------------------------------------------------------------------------------------------------------------------------------- P-Label| Micro-bechmark | Source | Description ------------------------------------------------------------------------------------------------------------------------------------- Y1 | antidep1 | AutoPar | Anti-dependence within a single loop Y1 | antidep2 | AutoPar | Anti-dependence within a two-level loop nest Y2 | lastprivatemissing | AutoPar | Data race due to a missing lastprivate() clause Y3 | minusminus | AutoPar | Unprotected $--$ operation Y3 | nowait | AutoPar | Missing barrier due to a wrongfully used nowait Y6 | outofbounds | AutoPar | Out of bound access of the 2nd dimension of array Y1 | outputdep | AutoPar | Output dependence and true dependence within a loop Y1 | plusplus | AutoPar | $++$operation on array index variable Y2 | privatemissing | AutoPar | Missing private() for a temp variable Y2 | reductionmissing | AutoPar | Missing reduction() for a variable Y1 | truedep1 | AutoPar | True data dependence among multiple array elements within a single level loop Y1 | truedepfirstdimension | AutoPar | True data dependence of first dimension for a 2-D array accesses Y1 | truedeplinear | AutoPar | Linear equation as array subscript Y1 | truedepscalar | AutoPar | True data dependence due to scalar Y1 | truedepseconddimension | AutoPar | True data dependence on 2nd dimension of a 2-D array accesses Y1 | truedepsingleelement | AutoPar | True data dependence due to a single array element ------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------------------------------------------------------- MICROBENCHMARKS WITHOUT KNOWN DATA RACES (RACE-NO-SET) ------------------------------------------------------------------------------------------------------------------------------------- P-Label| Micro-bechmark | Source | Description ------------------------------------------------------------------------------------------------------------------------------------- N2 | 3mm-parallel | Polyhedral | 3-step matrix-matrix multiplication, non-optimized version N2,N4 | 3mm-tile | Polyhedral | 3-step matrix-matrix multiplication, with tiling and nested SIMD N2 | adi-parallel | Polyhedral | Alternating Direction Implicit solver, non-optimized version N2,N4 | adi-tile | Polyhedral | Alternating Direction Implicit solver, with tiling and nested SIMD N1 | doall1 | AutoPar | Classic DOAll loop operating on a one dimensional array N1 | doall2 | AutoPar | Classic DOAll loop operating on a two dimensional array N2 | firstprivate | AutoPar | Example use of firstprivate N1 | inneronly1 | AutoPar | Two-level nested loops, inner level is parallelizable. True dependence on outer level N1 | inneronly2 | AutoPar | Two-level nested loops, inner level is parallelizable. Anti dependence on outer level N7 | jacobiinitialize | AutoPar | The array initialization parallel loop in Jacobi N7 | jacobikernel | AutoPar | Parallel Jacobi stencil computation kernel with array copying and reduction N2 | lastprivate | AutoPar | Example use of lastprivate N7 | matrixmultiply | AutoPar | Classic i-k-j order matrix multiplication using OpenMP N7 | matrixvector1 | AutoPar | Matrix-vector multiplication parallelized at the outer level loop N7 | matrixvector2 | AutoPar | Matrix-vector multiplication parallelized at the inner level loop with reduction N2 | outeronly1 | AutoPar | Two-level nested loops, outer level is parallelizable. True dependence on inner level N2 | outeronly2 | AutoPar | Two-level nested loops, outer level is parallelizable. Anti dependence on inner level N7 | pireduction | AutoPar | PI calculation using reduction -------------------------------------------------------------------------------------------------------------------------------------