Open DamynChipman opened 4 months ago
Hi @DamynChipman, thank you for reporting the issue. are you by any chance using an M1 or M2 Mac processor? Possibly with OpenMPI? We recently noticed that this combination seems to have issues with the MPI shared memory implementation.
Shared memory not being active does not result in accuracy loss. It will increase the memory usage. However, the real use of shared memory for us kicks in when running on a cluster on > 1000 CPUs.
Yeah, my laptop is an M1 MacBook and I have OpenMPI installed. I ran into the same warnings and failed test when building, testing, and running on a Linux cluster as well however.
Sounds good, if something else shows up, I'll let you all know, thanks!
Thanks you.
I want to keep the issue open anyways so that we do not forget about it. We should investigate and address these warnings in future.
The combination OpenMPI together with libsc's CMake build system seems to be the culprit for the warnings. Libsc's CMake build system checks for the symbol MPI_COMM_TYPE_SHARED
using the function check_symbol_exists
in the header file mpi.h.
MPICH defines this symbol as a macro but OpenMPI defines it as part of an anonymous enum which check_symbol_exists
does not check for. Thus the compile definition SC_ENABLE_MPICOMMSHARED
is missing causing the warnings.
Next tep Update the sc version to develop.
When running
make test
and some of the tutorials, I see repeated errors and warnings aboutt8_shmem
. One of the tests fails and any tutorial example with parallelism outputs a warning. Besides the failed test, it looks like all of the tutorials are successful regardless of the warning. I get these issues when building/running on my laptop and on a Linux cluster.The main warning I see is the following:
I guess my question/issue is: does this affect accuracy or performance?
I am reviewing
t8code
for JOSS: https://github.com/openjournals/joss-reviews/issues/6887For reference, here is some information on building, testing, and running the tutorials:
Build Info
Testing
See the attached
test-output.txt
for the output ofmake -j test ARGS="--rerun-failed --output-on-failure"
test-output.txt
Tutorials
Here is the output for the 3rd tutorial: