Unit testing and start moving away from MPIIO format#44
Open
ageorgou wants to merge 41 commits intomerge-develop-mpifrom
Open
Unit testing and start moving away from MPIIO format#44ageorgou wants to merge 41 commits intomerge-develop-mpifrom
ageorgou wants to merge 41 commits intomerge-develop-mpifrom
Conversation
…KL when using gfortran
…also set up blacs)
…n's record format
* Fixes for build * Don't take size of unspecified-length string (Intel error) * Avoid polymorphism problems with Intel compiler To use an unlimited-polymorphic value as argument in a subroutine, the corresponding dummy argument must also be declared as unlimited polymorphic. This isn't the case with the MPI_File_Write routines, so we have to explicitly check the type each time. The gfortran compiler is happy to ignore this (or perhaps it looks up the right subroutine to use automatically) - this error only appears with the Intel compiler. * Pass in libraries from main Makefile for all compilers The LAPACK variable is only used if we're building with MPI, which requires having built TROVE first anyway. So this doesn't stop us from testing the serial ioHandler. * Use concrete types so tests pass with Intel At this point, the MPI tests pass when using 2 or 4 processes. The second test (writing a column-distributed array) fails when using only 1 process only due to a dimension mismatch between read and write (which is maybe to be expected, as I don't think that code is called in TROVE when comm_size is 1). * Use ioHandler in more matelem variants * Write j0_matelem with new handler * Set up pFUnit on CI * Use the right compiler for unit tests * Allow GitHub Actions to get submodule Maybe it doesn't have an SSH key? * Only test MPI I/O handler when building with MPI Leave this out for CI purposes for now, it will be simpler to re-enable when we include the other CI changes. * Avoid cluttering test output with pFUnit build Might also make it easier to cache built library in the future. * Separate MPI unit tests for easier control * Remove unnecessary checks We are only including this file when using MPI anyway. This way may also catch errors earlier if we accidentally try to compile it. * Exclude io_handler_mpi completely unless using MPI
* Don't open file when allocating handler Using source= was causing issues with the Intel compiler, because the "source" handler was immediately deallocated, and the file was accidentally closed. * Fix some build issues on CI
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This already has a lot of work. Opening to review and check CI. Will fix conflicts after testing locally.