| 1 | DRB001-antidep1-orig-yes.c Y1 Anti-dependence within a single loop AutoPar
|
|---|
| 2 | DRB002-antidep1-var-yes.c Y1 Anti-dependence within a single loop AutoPar
|
|---|
| 3 | DRB003-antidep2-orig-yes.c Y1 Anti-dependence within a two-level loop nest AutoPar
|
|---|
| 4 | DRB004-antidep2-var-yes.c Y1 Anti-dependence within a two-level loop nest AutoPar
|
|---|
| 5 | DRB005-indirectaccess1-orig-yes.c Y7 Indirect access with overlapped index array elements LLNL App
|
|---|
| 6 | DRB006-indirectaccess2-orig-yes.c Y7 Overlapping index array elements when 36 or more threads are used LLNL App
|
|---|
| 7 | DRB007-indirectaccess3-orig-yes.c Y7 Overlapping index array elements when 60 or more threads are used LLNL App
|
|---|
| 8 | DRB008-indirectaccess4-orig-yes.c Y7 Overlapping index array elements when 180 or more threads are used LLNL App
|
|---|
| 9 | DRB009-lastprivatemissing-orig-yes.c Y2 Data race due to a missing lastprivate() clause AutoPar
|
|---|
| 10 | DRB010-lastprivatemissing-var-yes.c Y2 Data race due to a missing lastprivate() clause AutoPar
|
|---|
| 11 | DRB011-minusminus-orig-yes.c Y3 Unprotected decrement operation -- AutoPar
|
|---|
| 12 | DRB012-minusminus-var-yes.c Y3 Unprotected decrement operation -- AutoPar
|
|---|
| 13 | DRB013-nowait-orig-yes.c Y3 Missing barrier due to a wrongfully used nowait AutoPar
|
|---|
| 14 | DRB014-outofbounds-orig-yes.c Y6 Out of bound access of the 2nd dimension of array AutoPar
|
|---|
| 15 | DRB015-outofbounds-var-yes.c Y6 Out of bound access of the 2nd dimension of array AutoPar
|
|---|
| 16 | DRB016-outputdep-orig-yes.c Y1 Output dependence and true dependence within a loop AutoPar
|
|---|
| 17 | DRB017-outputdep-var-yes.c Y1 Output dependence and true dependence within a loop AutoPar
|
|---|
| 18 | DRB018-plusplus-orig-yes.c Y1 increment operation ++ on array index variable AutoPar
|
|---|
| 19 | DRB019-plusplus-var-yes.c Y1 increment operation ++ on array index variable AutoPar
|
|---|
| 20 | DRB020-privatemissing-orig-yes.c Y2 Missing private() for a temp variable AutoPar
|
|---|
| 21 | DRB021-privatemissing-var-yes.c Y2 Missing private() for a temp variable AutoPar
|
|---|
| 22 | DRB022-reductionmissing-orig-yes.c Y2 Missing reduction() for a variable AutoPar
|
|---|
| 23 | DRB023-reductionmissing-var-yes.c Y2 Missing reduction() for a variable AutoPar
|
|---|
| 24 | DRB024-sections1-orig-yes.c Y3 Unprotected data writes in parallel sections New
|
|---|
| 25 | DRB025-simdtruedep-orig-yes.c Y1,Y4 SIMD instruction level data races New
|
|---|
| 26 | DRB026-simdtruedep-var-yes.c Y1,Y4 SIMD instruction level data races New
|
|---|
| 27 | DRB027-targetparallelfor-orig-yes.c Y1,Y5 Data races in loops offloaded to accelerators New
|
|---|
| 28 | DRB028-taskdependmissing-orig-yes.c Y3 Unprotected data writes in two tasks New
|
|---|
| 29 | DRB029-truedep1-orig-yes.c Y1 True data dependence among multiple array elements within a single level loop AutoPar
|
|---|
| 30 | DRB030-truedep1-var-yes.c Y1 True data dependence among multiple array elements within a single level loop AutoPar
|
|---|
| 31 | DRB031-truedepfirstdimension-(orig|var)-yes.c Y1 True data dependence of first dimension for a 2-D array accesses AutoPar
|
|---|
| 32 | DRB032-truedepfirstdimension-(orig|var)-yes.c Y1 True data dependence of first dimension for a 2-D array accesses AutoPar
|
|---|
| 33 | DRB033-truedeplinear-orig-yes.c Y1 Linear equation as array subscript AutoPar
|
|---|
| 34 | DRB034-truedeplinear-var-yes.c Y1 Linear equation as array subscript AutoPar
|
|---|
| 35 | DRB035-truedepscalar-orig-yes.c Y1 True data dependence due to scalar AutoPar
|
|---|
| 36 | DRB036-truedepscalar-var-yes.c Y1 True data dependence due to scalar AutoPar
|
|---|
| 37 | DRB037-truedepseconddimension-(orig|var)-yes.c Y1 True data dependence on 2nd dimension of a 2-D array accesses AutoPar
|
|---|
| 38 | DRB038-truedepseconddimension-(orig|var)-yes.c Y1 True data dependence on 2nd dimension of a 2-D array accesses AutoPar
|
|---|
| 39 | DRB039-truedepsingleelement-(orig|var)-yes.c Y1 True data dependence due to a single array element AutoPar
|
|---|
| 40 | DRB040-truedepsingleelement-(orig|var)-yes.c Y1 True data dependence due to a single array element AutoPar
|
|---|
| 41 | DRB041-3mm-parallel-no.c N2 3-step matrix-matrix multiplication, non-optimized version Polyhedral
|
|---|
| 42 | DRB042-3mm-tile-no.c N2,N4 3-step matrix-matrix multiplication, with tiling and nested SIMD Polyhedral
|
|---|
| 43 | DRB043-adi-parallel-no.c N2 Alternating Direction Implicit solver, non-optimized version Polyhedral
|
|---|
| 44 | DRB044-adi-tile-no.c N2,N4 Alternating Direction Implicit solver, with tiling and nested SIMD Polyhedral
|
|---|
| 45 | DRB045-doall1-orig-no.c N1 Classic DOAll loop operating on a one dimensional array AutoPar
|
|---|
| 46 | DRB046-doall2-orig-no.c N1 Classic DOAll loop operating on a two dimensional array AutoPar
|
|---|
| 47 | DRB047-doallchar-orig-no.c N1 Classic DOALL loop operating on a character array New
|
|---|
| 48 | DRB048-firstprivate-orig-no.c N2 Example use of firstprivate AutoPar
|
|---|
| 49 | DRB049-fprintf-orig-no.c N6 Use of fprintf() New
|
|---|
| 50 | DRB050-functionparameter-orig-no.c N6 Arrays passed as function parameters LLNL App
|
|---|
| 51 | DRB051-getthreadnum-orig-no.c N2 single thread execution using if (omp_get_thread_num()==0) New
|
|---|
| 52 | DRB052-indirectaccesssharebase-orig-no.c N7 Indirect array accesses using index arrays without overlapping LLNL App
|
|---|
| 53 | DRB053-inneronly1-orig-no.c N1 Two-level nested loops, inner level is parallelizable. Anti dependence on outer level AutoPar
|
|---|
| 54 | DRB054-inneronly2-orig-no.c N1 Two-level nested loops, inner level is parallelizable. True dependence on outer level AutoPar
|
|---|
| 55 | DRB055-jacobi2d-parallel-no.c N7 Jacobi with array copying, no reduction, non-optimized version Polyhedral
|
|---|
| 56 | DRB056-jacobi2d-tile-no.c N4,N7 Jacobi with array copying, no reduction, with tiling and nested SIMD Polyhedral
|
|---|
| 57 | DRB057-jacobiinitialize-orig-no.c N7 The array initialization parallel loop in Jacobi AutoPar
|
|---|
| 58 | DRB058-jacobikernel-orig-no.c N7 Parallel Jacobi stencil computation kernel with array copying and reduction AutoPar
|
|---|
| 59 | DRB059-lastprivate-orig-no.c N2 Example use of lastprivate AutoPar
|
|---|
| 60 | DRB060-matrixmultiply-orig-no.c N7 Classic i-k-j order matrix multiplication using OpenMP AutoPar
|
|---|
| 61 | DRB061-matrixvector1-orig-no.c N7 Matrix-vector multiplication parallelized at the outer level loop AutoPar
|
|---|
| 62 | DRB062-matrixvector2-orig-no.c N7 Matrix-vector multiplication parallelized at the inner level loop with reduction AutoPar
|
|---|
| 63 | DRB063-outeronly1-orig-no.c N2 Two-level nested loops, outer level is parallelizable. Anti dependence on inner level AutoPar
|
|---|
| 64 | DRB064-outeronly2-orig-no.c N2 Two-level nested loops, outer level is parallelizable. True dependence on inner level AutoPar
|
|---|
| 65 | DRB065-pireduction-orig-no.c N7 PI calculation using reduction AutoPar
|
|---|
| 66 | DRB066-pointernoaliasing-orig-no.c N6 Pointers assigned by different malloc calls, without aliasing LLNL App
|
|---|
| 67 | DRB067-restrictpointer1-orig-no.c N6 C99 restrict pointers used for array initialization, no aliasing LLNL App
|
|---|
| 68 | DRB068-restrictpointer2-orig-no.c N6 C99 restrict pointers used for array computation, no aliasing LLNL App
|
|---|
| 69 | DRB069-sectionslock1-orig-no.c N3 OpenMP parallel sections with a lock to protect shared data writes New
|
|---|
| 70 | DRB070-simd1-orig-no.c N1,N4 OpenMP SIMD directive to indicate vectorization of a loop New
|
|---|
| 71 | DRB071-targetparallelfor-orig-no.c N1,N5 No data races in loops offloaded to accelerators New
|
|---|
| 72 | DRB072-taskdep1-orig-no.c N3 OpenMP task with depend clauses to avoid data races New
|
|---|
| 73 | DRB073-doall2-orig-yes.c Y2 Missing private() for inner loop nest's loop index variable New
|
|---|
| 74 | DRB074-flush-orig-yes.c Y2 Reduction using a shared variable, extracted from an official OpenMP example New
|
|---|
| 75 | DRB075-getthreadnum-orig-yes.c Y1 Work sharing within one branch of a if statement New
|
|---|
| 76 | DRB076-flush-orig-no.c N2 OpenMP private clause to avoid data races New
|
|---|
| 77 | DRB077-single-orig-no.c N1 OpenMP single directive to use only one thread for execution New
|
|---|
| 78 | DRB078-taskdep2-orig-no.c N3 OpenMP task depend clause to avoid data races New
|
|---|
| 79 | DRB079-taskdep3-orig-no.c N3 OpenMP task depend clause to avoid data races New
|
|---|
| 80 | DRB080-func-arg-orig-yes.c Y6 Function arguments passed by reference, inheriting shared attribute New
|
|---|
| 81 | DRB081-func-arg-orig-no.c N6 Function arguments passed by value, private New
|
|---|
| 82 | DRB082-declared-in-func-orig-yes.c Y6 A variable declared within a function called by a parallel region New
|
|---|
| 83 | DRB083-declared-in-func-orig-no.c N6 A variable declared within a function called by a parallel region New
|
|---|
| 84 | DRB084-threadprivatemissing-orig-yes.c Y2 Missing threadprivate for a global var, not referenced within a construct New
|
|---|
| 85 | DRB085-threadprivate-orig-no.c N2 Use threadprivate to protect a file scope variable, not referenced within a construct New
|
|---|
| 86 | DRB086-static-data-member-orig-yes.cpp Y2 Missing threadprivate for a static member, not referenced within a construct New
|
|---|
| 87 | DRB087-static-data-member2-orig-yes.cpp Y2 Missing threadprivate for a static member, referenced within a construct New
|
|---|
| 88 | DRB088-dynamic-storage-orig-yes.c Y2 Data race for a dynamica storage variable, not referenced within a construct New
|
|---|
| 89 | DRB089-dynamic-storage2-orig-yes.c Y2 Data race for a dynamica storage variable, referenced within a construct New
|
|---|
| 90 | DRB090-static-local-orig-yes.c Y2 Data race for a locally declared static variable New
|
|---|
| 91 | DRB091-threadprivate2-orig-no.c N2 Use threadprivate to protect a file scope variable, referenced within a construct New
|
|---|
| 92 | DRB092-threadprivatemissing2-orig-yes.c Y2 Missing threadprivate for a variable referenced within a construct New
|
|---|
| 93 | DRB093-doall2-collapse-orig-no.c N2 Use collapse(n) to control the number of associated loops of omp for New
|
|---|
| 94 | DRB094-doall2-ordered-orig-no.c N2 Use ordered(n) to control the number of associated loops of omp for New
|
|---|
| 95 | DRB095-doall2-taskloop-orig-yes.c Y2 Missing protection for inner loop's loop variable New
|
|---|
| 96 | DRB096-doall2-taskloop-collapse-orig-no.c N2 Use ordered(n) to control the number of associated loops of taskloop New
|
|---|
| 97 | DRB097-target-teams-distribute-orig-no.c N2 Predetermined attribute rule for loop variable associated with distribute New
|
|---|
| 98 | DRB098-simd2-orig-no.c N1,N2 OpenMP SIMD directive to indicate vectorization of two nested loops New
|
|---|
| 99 | DRB099-targetparallelfor2-orig-no.c N1,N5 Loops offloaded to accelerators: array sections derived from pointer New
|
|---|
| 100 | DRB100-task-reference-orig-no.cpp N1 OpenMP 4.5 feature: orphaned task generating construct using pass-by-reference New
|
|---|
| 101 | DRB101-task-value-orig-no.cpp N1 In a task generating construct, a variable without applicable rules is firstprivate New
|
|---|
| 102 | DRB102-copyprivate-orig-no.c N2 threadprivate+copyprivate, a variable without applicable rules is firstprivate New
|
|---|
| 103 | DRB103-master-orig-no.c N1 master directive to ensure only one thread will execute data accesses New
|
|---|
| 104 | DRB104-nowait-barrier-orig-no.c N3 Use barrier to ensure correct order of initialization and assignment phases New
|
|---|
| 105 | DRB105-taskwait-orig-no.c N3 Use taskwait to ensure correct order of tasks New
|
|---|
| 106 | DRB106-taskwaitmissing-orig-yes.c Y3 Missing taskwait to ensure correct order of calculations New
|
|---|
| 107 | DRB107-taskgroup-orig-no.c N3 Use taskgroup to ensure correct order of tasks New
|
|---|
| 108 | DRB108-atomic-orig-no.c N3 Use atomic to protect shared accesses to a variable New
|
|---|
| 109 | DRB109-orderedmissing-orig-yes.c Y3 Missing the ordered clause, causing data races New
|
|---|
| 110 | DRB110-ordered-orig-no.c N3 Proper use of the ordered clause to avoid data races New
|
|---|
| 111 | DRB111-linearmissing-orig-yes.c Y2 Missing linear for a shared variable, causing data races New
|
|---|
| 112 | DRB112-linear-orig-no.c N2 Use linear to privatize a variable New
|
|---|
| 113 | DRB113-default-orig-no.c N1 default(none) to enforce explicitly listing variables in data-sharing clauses New
|
|---|
| 114 | DRB114-if-orig-yes.c Y1 True data dependence within a single level loop, with if() clause New
|
|---|
| 115 | DRB115-forsimd-orig-yes.c Y1,Y4 Both thread and instruction level data races due to omp loop simd New
|
|---|
| 116 | DRB116-target-teams-orig-yes.c Y3 Master threads of two teams do not have synchronization, causing data races New
|
|---|
| 117 | DRB117-taskwait-waitonlychild-orig-yes.c Y3 Thread encountering the taskwait is only waiting for the child task's completion, not the descendant tasks. New
|
|---|
| 118 | DRB118-nestlock-orig-no.c N3 Use of omp_set_nest_lock to be able to lock several times. Extracted from an official OpenMP example OpenMP Official Example
|
|---|
| 119 | DRB119-nestlock-orig-yes.c Y3 Missing omp_set_nest_lock() on a function called at multiple points. New
|
|---|
| 120 | DRB120-barrier-orig-no.c N3 Use barrier to ensure the correct order of increment ops. New
|
|---|
| 121 | DRB121-reduction-orig-no.c N2 Use reduction clause to get the correct sum within a parallel region. New
|
|---|
| 122 | DRB122-taskundeferred-orig-no.c N6 Undeferred all the tasks using if(0) OpenMP Official Example
|
|---|
| 123 | DRB123-taskundeferred-orig-yes.c Y6 A single thread spawning multiple tasks due to missing if(0) New
|
|---|
| 124 | DRB124-master-orig-yes.c Y3 Master construct does not have an implicit barrier. New
|
|---|
| 125 | DRB125-single-orig-no.c N1 Single construct usage to have implicit barrier, private. New
|
|---|
| 126 | DRB126-firstprivatesections-orig-no.c N1 Use of firstprivate and omp_set_num_threads() to ensure that the same thread executes both the sections. New
|
|---|
| 127 | DRB127-tasking-threadprivate1-orig-no.c N1 Order execution is undefined. There is a race condition but no data race. New
|
|---|
| 128 | DRB128-tasking-threadprivate2-orig-no.c N1 Restricting update to a threadprivate variable. New
|
|---|
| 129 | DRB129-mergeable-taskwait-orig-yes.c Y2 Created task will access different instances of a variable depending on the mergeable status. Missing shared clause. New
|
|---|
| 130 | DRB130-mergeable-taskwait-orig-no.c N2 Use of mergeable construct on a shared variable ensures that the outcome does not depend on task's merged status. New
|
|---|
| 131 | DRB131-taskdep4-orig-omp45-yes.c Y3 Accessing a variable before the completion of the operation. Missing taskwait. New
|
|---|
| 132 | DRB132-taskdep4-orig-omp45-no.c N3, N1 Accessing a variable safely after taskwait directive, two variables. OpenMP 4.5 compliant. New
|
|---|
| 133 | DRB133-taskdep5-orig-omp45-no.c N3 Accessing a variable safely after taskwait directive, single variable. OpenMP 4.5 compliant. New
|
|---|
| 134 | DRB134-taskdep5-orig-omp45-yes.c Y1 Operation depends on two variables, but the depend clause is mentioned only for one variable. New
|
|---|
| 135 | DRB135-taskdep-mutexinoutset-orig-no.c N1 Use of mutexinoutset in depend clause to avoid data race. OpenMP Official Example
|
|---|
| 136 | DRB136-taskdep-mutexinoutset-orig-yes.c Y1,Y6 Missing mutexinoutset dependence type on a variable. Undefined execution order. OpenMP Official Examples
|
|---|
| 137 | DRB137-simdsafelen-orig-no.c N1 Use of safelen construct to avoid udnefined behavior. New
|
|---|
| 138 | DRB138-simdsafelen-orig-yes.c Y6 Parameter for safelen() clause having a value lesser than required for a defined execution. New
|
|---|
| 139 | DRB139-worksharingcritical-orig-no.c N1 Use of single directive inside a nested parallel region within a critical construct. New
|
|---|
| 140 | DRB140-reduction-barrier-orig-yes.c Y3 Asynchronous update by master directive and usage in reduction clause. New
|
|---|
| 141 | DRB141-reduction-barrier-orig-no.c N3 Addition of explicit barrier to ensure completion of initialization of a variable before encountering a parallel region. New
|
|---|
| 142 | DRB142-acquirerelease-orig-yes.c Y3 Missing implicit flush after critical construct. New
|
|---|
| 143 | DRB143-acquirerelease-orig-no.c N3 Use of flush after critical construct to avoid data race. New
|
|---|
| 144 | DRB144-critical-missingreduction-orig-gpu-yes.c Y5, Y3 Asynchronous update of a variable across teams due to improper critical and atomic construct usage. New
|
|---|
| 145 | DRB145-atomiccritical-orig-gpu-no.c N5, N2 Use of reduction construct to synchronize across teams. New
|
|---|
| 146 | DRB146-atomicupdate-orig-gpu-no.c N5, N3, N1 Use of atomic update construct to have synchronization across teams. New
|
|---|
| 147 | DRB147-critical1-orig-gpu-no.c N5, N1 To have synchronization across distribute parallel loop across teams, usage of atomic construct. New
|
|---|
| 148 | DRB148-critical1-orig-gpu-yes.c Y5, Y3 Due to different locks, addition and subtraction interleave. DRACC
|
|---|
| 149 | DRB149-missingdata1-orig-gpu-no.c N5 Classic i-k-j matrix multiplication on accelerator. New
|
|---|
| 150 | DRB150-missinglock1-orig-gpu-yes.c Y5, Y3 distribute parallel for directive executes across teams. omp_set_lock() ensures synchronization only within a team. DRACC
|
|---|
| 151 | DRB151-missinglock3-orig-gpu-yes.c Y5, Y3 Missing synchronization in teams distribute parallel for construct among a team of threads. DRACC
|
|---|
| 152 | DRB152-missinglock2-orig-gpu-no.c N5, N3 Use of omp_set_lock() to synchronize within a team. New
|
|---|
| 153 | DRB153-missinglock2-orig-gpu-yes.c Y5, Y2 Concurrent access of a variable in an intra region with locks leading to intra region data race. DRACC
|
|---|
| 154 | DRB154-missinglock3-orig-gpu-no.c N5, N3 Use omp_set_lock() and reduction construct to avoid atomicity violations across teams on accelerators. New
|
|---|
| 155 | DRB155-missingordered-orig-gpu-no.c N5, N1 Proper use of the ordered clause to avoid data races, ensuring sequential consistency. New
|
|---|
| 156 | DRB156-missingordered-orig-gpu-yes.c Y5, Y6 Execution on accelerators with missing ordered directive causes data race. DRACC
|
|---|
| 157 | DRB157-missingorderedsimd-orig-gpu-yes.c Y5, Y4 Missing synchronization on accelerator due to simd directive. DRACC
|
|---|
| 158 | DRB158-missingtaskbarrier-orig-gpu-no.c N5, N1 Use of depend clause to ensure correct execution sequence. New
|
|---|
| 159 | DRB159-nobarrier-orig-gpu-no.c N5, N3 Vector addition and multiplication employing the same variable should have a barrier in between. New
|
|---|
| 160 | DRB160-nobarrier-orig-gpu-yes.c Y5, Y3 Missing implicit barrier due to distribute directive. DRACC
|
|---|
| 161 | DRB161-nolocksimd-orig-gpu-yes.c Y5, Y3 Concurrent access on a counter with no lock with simd—atomicity Violation. DRACC
|
|---|
| 162 | DRB162-nolocksimd-orig-gpu-no.c N5, N4 Use reduction clause to avoid concurrent access on a variable due to exceeding permitted threads usage per warp limit. New
|
|---|
| 163 | DRB163-simdmissinglock1-orig-gpu-no.c N5, N4 SIMD directive indicates vectorization of a loop on the accelerator; usage of reduction to ensure no data race. New
|
|---|
| 164 | DRB164-simdmissinglock1-orig-gpu-yes.c Y5, Y3 Concurrent access on a counter with no lock with simd across teams. Inter-region data race DRACC
|
|---|
| 165 | DRB165-taskdep4-orig-omp50-yes.c Y3 Missing taskwait. Accessing a variable before task completion. OpenMP Official Examples
|
|---|
| 166 | DRB166-taskdep4-orig-omp50-no.c N1 Use of takwait to avoid data race due to access before decrement operation. OpenMP 5.0 compliant. OpenMP Official Example
|
|---|
| 167 | DRB167-taskdep4-orig-omp50-no.c N1 Dependency on two variables but defined only on one. Use of taskwait ensures no data race. OpenMP5.0 compliant. OpenMP Official Example
|
|---|
| 168 | DRB168-taskdep5-orig-omp50-yes.c Y1 OpenMP depend clause for only one variable in a bivariate equation. OpenMP Official Examples
|
|---|