#2289: CT_MultiLevel tests abort when run using more than one thread via simfactory
| Reporter: | Roland Haas |
| Status: | new |
| Milestone: | |
| Version: | |
| Type: | bug |
| Priority: | minor |
| Component: | EinsteinToolkit thorn |
In git hash f813545 "CT_MultiLevel: request single-thread execution of all tests." of ctthorns the CT_MultiLevel tests were changed to force a single OpenMP thread. This is a good thing as there is a (known, harmless) race condition in the Gauss-Seidel sweep that the code uses when more than a single thread is used which renders results non-deterministic.
Unfortunately the change interferes badly with the sanity checks in Carpet using CACTUS_NUM_THREADS to check that the number of threads requested in the RunScript agrees with the number of threads that Carpet sees in use during its SetupGH routine:
if (cactus_num_threads != mynthreads) { CCTK_VWarn(CCTK_WARN_ABORT, __LINE__, __FILE__, CCTK_THORNSTRING, "The environment variable CACTUS_NUM_THREADS is set to %d, " "but there are %d threads on this process. This may " "indicate a severe problem with the OpenMP startup " "mechanism.", cactus_num_threads, mynthreads); }
which uses the env variable --CA
Ticket URL: https://bitbucket.org/einsteintoolkit/tickets/issues/2289/ct_multilevel-tests-abort-when-run-using