Skip to content

Unit testing and start moving away from MPIIO format#44

Open
ageorgou wants to merge 41 commits intomerge-develop-mpifrom
feature/unit-testing
Open

Unit testing and start moving away from MPIIO format#44
ageorgou wants to merge 41 commits intomerge-develop-mpifrom
feature/unit-testing

Conversation

@ageorgou
Copy link
Collaborator

@ageorgou ageorgou commented Oct 7, 2021

This already has a lot of work. Opening to review and check CI. Will fix conflicts after testing locally.

JamieJQuinn and others added 11 commits July 5, 2021 12:53
* 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

Comments