27
27
${{ github.event.pull_request.head.repo.clone_url }}
28
28
outputs :
29
29
skip : ${{ env.SKIP_CHECKS }}
30
+
30
31
build_UB_sanitizer :
31
32
name : Clang UB sanitizer
32
33
runs-on : ubuntu-24.04
@@ -82,12 +83,13 @@ jobs:
82
83
mpirun -n 2 ./build/bin/warpx.1d Examples/Physics_applications/laser_acceleration/inputs_base_1d
83
84
mpirun -n 2 ./build/bin/warpx.2d Examples/Physics_applications/laser_acceleration/inputs_base_2d
84
85
mpirun -n 2 ./build/bin/warpx.3d Examples/Physics_applications/laser_acceleration/inputs_base_3d
86
+ mpirun -n 2 ./build/bin/warpx.2d Examples/Tests/implicit/inputs_test_2d_theta_implicit_jfnk_vandb
87
+
85
88
build_thread_sanitizer :
86
89
name : Clang thread sanitizer
87
90
runs-on : ubuntu-24.04
88
- # TODO Fix data race conditions and re-enable job
89
91
needs : skip_checks
90
- if : 0 # ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }}
92
+ if : ${{ github.event.pull_request.draft == false && needs.skip_checks.outputs.skip == 'false' }}
91
93
env :
92
94
CC : clang
93
95
CXX : clang++
@@ -124,30 +126,28 @@ jobs:
124
126
-DWarpX_QED=ON \
125
127
-DWarpX_QED_TABLE_GEN=ON \
126
128
-DWarpX_OPENPMD=ON \
127
- -DWarpX_EB=OFF \
128
129
-DWarpX_PRECISION=DOUBLE \
129
130
-DWarpX_PARTICLE_PRECISION=DOUBLE
130
131
cmake --build build -j 4
131
- cmake -S . -B build_EB \
132
- -GNinja \
133
- -DCMAKE_VERBOSE_MAKEFILE=ON \
134
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
135
- -DWarpX_DIMS="2" \
136
- -DWarpX_FFT=ON \
137
- -DWarpX_QED=ON \
138
- -DWarpX_QED_TABLE_GEN=ON \
139
- -DWarpX_OPENPMD=ON \
140
- -DWarpX_EB=ON \
141
- -DWarpX_PRECISION=DOUBLE \
142
- -DWarpX_PARTICLE_PRECISION=DOUBLE
143
- cmake --build build_EB -j 4
144
132
ccache -s
145
133
du -hs ~/.cache/ccache
146
134
- name : Run with thread sanitizer
147
135
run : |
136
+ # Disabling the gds/shmem component by using gds/hash instead
137
+ # is required to avoid issues with shared memory.
148
138
export PMIX_MCA_gds=hash
149
- export TSAN_OPTIONS='ignore_noninstrumented_modules=1'
139
+ # Archer is a data race detector for OpenMP programs.
140
+ # It is required to avoid false positives with OpenMP and it is
141
+ # included in llvm. However with many Linux it is necessary
142
+ # to define this environment variable to make sure that the
143
+ # Archer library is actually used.
144
+ # When the Archer library is used and ARCHER_OPTIONS="verbose=1",
145
+ # the following message should be displayed:
146
+ # Archer detected OpenMP application with TSan, supplying OpenMP synchronization semantics
147
+ export OMP_TOOL_LIBRARIES=/usr/lib/llvm-17/lib/libarcher.so
150
148
export ARCHER_OPTIONS="verbose=1"
149
+ # This option is required to avoid false positive reports from the OpenMP runtime
150
+ export TSAN_OPTIONS='ignore_noninstrumented_modules=1'
151
151
export OMP_NUM_THREADS=2
152
152
mpirun -n 2 ./build/bin/warpx.rz Examples/Physics_applications/laser_acceleration/inputs_base_rz warpx.serialize_initial_conditions = 0
153
153
mpirun -n 2 ./build/bin/warpx.1d Examples/Physics_applications/laser_acceleration/inputs_base_1d warpx.serialize_initial_conditions = 0
@@ -156,4 +156,4 @@ jobs:
156
156
git clone https://github.com/BLAST-WarpX/warpx-data ../warpx-data
157
157
cd Examples/Tests/embedded_circle
158
158
ulimit -c unlimited
159
- mpirun -n 2 ../../../build_EB /bin/warpx.2d inputs_test_2d_embedded_circle warpx.serialize_initial_conditions = 0
159
+ mpirun -n 2 ../../../build /bin/warpx.2d inputs_test_2d_embedded_circle warpx.serialize_initial_conditions = 0
0 commit comments