Open romintomasetti opened 1 week ago
We decided to create a PR with shuffling environment variables in the Jenkins configuration and some GitHub actions and see what happens.
diff --git a/.jenkins b/.jenkins
index c2c6f500f..d50781bc2 100644
--- a/.jenkins
+++ b/.jenkins
@@ -5,6 +5,7 @@ pipeline {
CCACHE_DIR = '/tmp/ccache'
CCACHE_MAXSIZE = '5G'
CCACHE_CPP2 = 'true'
+ GTEST_SHUFFLE = 1
}
options {
It seems that
Kokkos
tests aren't being shuffled when they run.I think they should.
Attached is an example that illustrates the need for shuffling. If the test
first
runs first, the testsecond
succeeds. If you swap the execution order, i.e. the test casesecond
runs before the test casefirst
, it fails as expected :bomb:Sample code with 2 tests that fail if `second` runs before `first`.
```c++ class NoShuffleIsBad : public ::testing::Test { public: static constexpr size_t size = 2<<12; using memory_space = Kokkos::CudaSpace; using execution_space = Kokkos::Cuda; using view_t = Kokkos::View`Kokkos` configuration output.
```bash [ RUN ] print.config Kokkos Version: 4.4.99 Compiler: KOKKOS_COMPILER_GNU: 1230 KOKKOS_COMPILER_NVCC: 1260 Architecture: CPU architecture: none Default Device: Cuda GPU architecture: AMPERE86 platform: 64bit Atomics: Vectorization: KOKKOS_ENABLE_PRAGMA_IVDEP: no KOKKOS_ENABLE_PRAGMA_LOOPCOUNT: no KOKKOS_ENABLE_PRAGMA_UNROLL: no KOKKOS_ENABLE_PRAGMA_VECTOR: no Memory: Options: KOKKOS_ENABLE_ASM: yes KOKKOS_ENABLE_CXX17: yes KOKKOS_ENABLE_CXX20: no KOKKOS_ENABLE_CXX23: no KOKKOS_ENABLE_CXX26: no KOKKOS_ENABLE_DEBUG_BOUNDS_CHECK: no KOKKOS_ENABLE_HWLOC: yes KOKKOS_ENABLE_LIBDL: yes Host Parallel Execution Space: KOKKOS_ENABLE_OPENMP: yes OpenMP Runtime Configuration: Kokkos::OpenMP thread_pool_topology[ 1 x 16 x 1 ] Host Serial Execution Space: KOKKOS_ENABLE_SERIAL: yes Serial Runtime Configuration: Device Execution Space: KOKKOS_ENABLE_CUDA: yes Cuda Options: KOKKOS_ENABLE_CUDA_RELOCATABLE_DEVICE_CODE: no KOKKOS_ENABLE_CUDA_UVM: no KOKKOS_ENABLE_IMPL_CUDA_MALLOC_ASYNC: no Cuda Runtime Configuration: macro KOKKOS_ENABLE_CUDA : defined macro CUDA_VERSION = 12060 = version 12.6 Kokkos::Cuda[ 0 ] NVIDIA GeForce RTX 3060 Laptop GPU capability 8.6, Total Global Memory: 5.698 GiB, Shared Memory per Block: 48 KiB : Selected ```