-
Notifications
You must be signed in to change notification settings - Fork 37
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
failed test: "unit_tests: Can pull variables from container based on Metadata" #585
Comments
Hmm that's a weird one. The test that's failing is this one: But likely the error is much deeper... in the |
@kurtsansom I see that you're working with a version coming from AthenaPK. PS: Feel free to tag me directly for any AthenaPK related issues here. |
Apologies @pgrete for not returning to this sooner. I am working off the main athenapk branch. I was looking into the expose-flux-div branch with the upstream dev branch merged in. It looks like that branch has been updated, so I will bring in those changes to see if that changes anything. |
I pulled in the latest changes to the branch and parthenon still chokes on that test. is there a way to test where the computation is taking place? i.e. is trying to do the test on a GPU? What do you suggest to narrow it down. (e.g. tips on how to debug would be helpful, I am still relatively new to kokkos ) |
@kurtsansom would you mind sharing your full configuration, i.e., what hardware are you running on and what cmake line did you use to configure your build and what's the output of the configure step. $ ctest -V -R "unit_tests:Can pull variables from containers based"
UpdateCTestConfiguration from :/mnt/home/gretephi/src/athenapk/build-test/DartConfiguration.tcl
Parse Config file:/mnt/home/gretephi/src/athenapk/build-test/DartConfiguration.tcl
Add coverage exclude regular expressions.
SetCTestConfiguration:CMakeCommand:/opt/software/CMake/3.17.1/bin/cmake
UpdateCTestConfiguration from :/mnt/home/gretephi/src/athenapk/build-test/DartConfiguration.tcl
Parse Config file:/mnt/home/gretephi/src/athenapk/build-test/DartConfiguration.tcl
Test project /mnt/home/gretephi/src/athenapk/build-test
Run command: bash /mnt/home/gretephi/src/athenapk/external/parthenon/scripts/device_check.sh 1 /opt/software/OpenMPI/4.0.3-gcccuda-2020a/bin/mpiexec 4
****************************************** Beginning Precheck ******************************************
Number of GPUs detected per node: 4
Number of GPUs per node, requested in tests: 1
Number of nodes detected: 1
Number of MPI procs, requested in tests: 4
Number of MPI procs per node: 4
****************************************** Ending Precheck ******************************************
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 24
Start 24: unit_tests:Can pull variables from containers based on Metadata
24: Test command: /mnt/home/gretephi/src/athenapk/build-test/parthenon/tst/unit/unit_tests "Can pull variables from containers based on Metadata"
24: Test timeout computed to be: 1500
24: Filters: Can pull variables from containers based on Metadata
24: ===============================================================================
24: All tests passed (34 assertions in 1 test case)
24:
1/1 Test #24: unit_tests:Can pull variables from containers based on Metadata ... Passed 0.88 sec
The following tests passed:
unit_tests:Can pull variables from containers based on Metadata
100% tests passed, 0 tests failed out of 1
Label Time Summary:
meshblockdataiterator = 0.88 sec*proc (1 test)
unit_tests = 0.88 sec*proc (1 test)
Total Test time (real) = 0.91 sec |
Hardware/OS
Compiler /Libraries / Environment
I am working on getting a paired down cmake configuration to provide |
I tried running on another OS, platform and GPU and appears to also fail. will investigate and provide more detail. |
here is the athenapk branch that is using parthenon. https://gitlab.com/kayarre/athenapk/-/tree/test_branch I am testing the branch from the pull request #558 |
I tried using cuda+openmpi+hdf5 all installed into a spack environment but ran into a weird gcc 10.3.0 ICE bug, will have to try again tomorrow, but here is configuration I attempted. # This is a Spack Environment file.
#
# It describes a set of packages to be installed, along with
# configuration settings.
spack:
# add package specs to the `specs` list
specs: [hdf5+cxx+fortran+hl+mpi+tools ^openmpi+cuda+cxx, openmpi+cuda+cxx]
view: true cmake -DHDF5_DIR=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/share/cmake/hdf5 \
-DCATCH_BUILD_TESTING:BOOL=OFF \
-DBUILD_TESTING:BOOL=ON \
-DCMAKE_INSTALL_PREFIX:PATH=/home/kurt.sansom/build/athena/athenapk/install \
-DAthenaPK_ENABLE_TESTING:BOOL=OFF \
-DBLACK:FILEPATH=/home/kurt.sansom/miniconda3/envs/athenapk/bin/black \
-DCLANG_FORMAT:FILEPATH=/home/kurt.sansom/tools/spack/opt/spack/linux-centos7-cascadelake/gcc-10.3.0/llvm-12.0.1-dj3n5onm2z2qt5eajbs4atrj6nrws66k/bin/clang-format \
-DCMAKE_CUDA_COMPILER:STRING=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/bin/nvcc \
-DCUDAToolkit_INCLUDE_DIR:FILEPATH=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/targets/x86_64-linux/include \
-DCMAKE_CXX_COMPILER:STRING=/home/kurt.sansom/tools/spack/opt/spack/linux-centos7-cascadelake/gcc-10.3.0/gcc-10.3.0-5ohqqvljcsohjccahbiydifzjctwifh5/bin/g++ \
-DCMAKE_C_COMPILER:STRING=/home/kurt.sansom/tools/spack/opt/spack/linux-centos7-cascadelake/gcc-10.3.0/gcc-10.3.0-5ohqqvljcsohjccahbiydifzjctwifh5/bin/gcc \
-DCMAKE_CXX_FLAGS_DEBUG:STRING=-g \
-DMPIEXEC_EXECUTABLE:FILEPATH=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/bin/mpiexec \
-DMPI_CXX_COMPILER:FILEPATH=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/bin/mpicxx \
-DKokkos_ENABLE_CUDA:BOOL=ON \
-DKokkos_ENABLE_CUDA_LAMBDA:BOOL=ON \
-DKokkos_ENABLE_DEBUG:BOOL=ON \
-DKokkos_CUDA_DIR:FILEPATH=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/targets/x86_64-linux/lib \
-DCUDAToolkit_BIN_DIR:FILEPATH=/home/kurt.sansom/tools/spack/var/spack/environments/athenapk/.spack-env/view/targets/x86_64-linux/bin \
-DKokkos_ARCH_TURING75:BOOL=ON \
-DKokkos_CXX_STANDARD:STRING=17 \
-DKokkos_ENABLE_DEBUG:BOOL=ON \
-DKokkos_ENABLE_EXAMPLES:BOOL=OFF \
-DKokkos_ENABLE_OPENMP:BOOL=ON \
-DKokkos_ENABLE_SERIAL:BOOL=ON \
-DKokkos_ENABLE_TESTS:BOOL=ON \
-DNUM_GPU_DEVICES_PER_NODE:STRING=2 \
-DPARTHENON_ENABLE_CPP17:BOOL=ON \
-DPARTHENON_ENABLE_GPU_MPI_CHECKS:BOOL=ON \
-DPARTHENON_ENABLE_INTEGRATION_TESTS:BOOL=ON \
-DPARTHENON_ENABLE_UNIT_TESTS:BOOL=ON \
-DPARTHENON_ENABLE_PYTHON_MODULE_CHECK:BOOL=ON \
-DPARTHENON_DISABLE_EXAMPLES:BOOL=ON \
-DPARTHENON_DISABLE_OPENMP:BOOL=OFF \
-DPARTHENON_ENABLE_PYTHON_MODULE_CHECK:BOOL=ON \
-DAthenaPK_ENABLE_TESTING:BOOL=OFF \
-B /home/kurt.sansom/build/athena/athenapk/build/ \
-S /home/kurt.sansom/build/athena/athenapk/athenapk/ |
Thanks for the additional info.
[ 94%] Building CXX object parthenon/tst/unit/CMakeFiles/unit_tests.dir/test_state_descriptor.cpp.o
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(312): error: qualified name is not allowed
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(312): error: expected a ";"
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(316): error: qualified name is not allowed
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(316): error: expected a ";"
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(317): error: identifier "expected_flags" is undefined
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(317): error: identifier "actual_flags" is undefined
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(317): error: identifier "expected_flags" is undefined
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(317): error: identifier "actual_flags" is undefined
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(39): warning: variable "<unnamed>::autoRegistrar1" was declared but never referenced
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(61): warning: variable "<unnamed>::autoRegistrar8" was declared but never referenced
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(78): warning: variable "<unnamed>::autoRegistrar13" was declared but never referenced
/mnt/home/gretephi/src/athenapk/external/parthenon/tst/unit/test_state_descriptor.cpp(294): warning: variable "<unnamed>::autoRegistrar51" was declared but never referenced I will bisect the your cmake options tomorrow as I don't see the issue for my configuration
|
I didn’t realize my athenapk fork was private by default, should be public now. |
I think I found the bug. Out of curiosity: Did you specify the options above (e.g., enabling some test but disabling others) on purpose or just during debugging attempts? |
@pgrete thank you so much. I fiddled around with the test switches some to try and elicit what I thought was primarily important at the moment, (i.e. If the unit tests don't work, does running regression tests matter) I generally try to keep the environment clean so I don't get myself into a bind with clashes and dependency hell. This means having to explicitly tell cmake where things are. I generally use ccmake and fill things iteratively and there isn't a workflow I know of that makes it easy to go from that to the cmake command line arguments (it would be nice!) I am also using spack to make it easier to get the hdf5 libraries, which then led to using a newer compiler. If you have an example cmake line with less options I would be happy to try that, it's what I came it with from the ccmake iterations. UPDATE: had some trouble redoing my environment and haven't gotten it tested yet but will keep working on it. |
I understand. My approach here is use a consistent module/spack environment, i.e., calling
Have you seen the "machine configuration" capability of Parthenon? In other words, you can create a simple file
then either do a As mentioned above all command line options take precedence, so if I want a debug build I simply call |
Oh, one more thing. We try to set some "reasonable" defaults in AthenaPK's |
@pgrete, thank you the input about configurations. I usually just make a shell script, but I like the cmake approach. I paired down the cmake options and am currently testing out the develop branch. unit test is now passing. |
Glad to hear your issue is resolved, @kurtsansom . I'm going to close this issue, but feel free to re-open it if you run into more trouble. |
I am seeing warnings similar to what is shown above |
Are you just seeing warning or also hitting the ICEs? |
we might need to bump catch2 as the warnings seem to have been fixed in more recent versions, see catchorg/Catch2#2427 |
It's just the warning, it went away with a newer version of gcc, I suspect a newer catch2 or newer gcc or both will fix so it seems like this is catch's fault and I won't worry about it anymore. |
I am trying to figure our why this unit test fails:
I am using a branch that has 'develop' merged into pgrete/expose-flux-div.
Any hints would be helpful.
The text was updated successfully, but these errors were encountered: