ENH: Further parallel MPI enhancements; Python interface, improved finding of libraries, tests now run in parallel, bug fixes and support for PFFT.
Summary:
Merge branch 'arcpatch-D169' into feat/mpi
CMAKE: Removed finding of FFT packages from top level CMake file.
ENH: Added method that returns size of communicator.
ENH: Added ParallelCellFactory to Python bindings. MPI communicator needs to be passed as raw handle. For mpi4py, use mpi4py.MPI._handleof(...) to get handle.
CMAKE: Define WITH_FFTWMPI, WITH_PFFT and WITH_P3DFFT depending on which libraries were found.
ENH: Expose cell factories for different FFT engines to Python.
MAINT: Added barrier before finalizing MPI.
MAINT: Only print from rank 0
BUG: Only set zeros component to zero if locations is 0,0.
BUG: Throw exception when one component of resolutions is zero.
Revert "BUG: Throw exception when one component of resolutions is zero."
This reverts commit 191227c40c9a288773d2630ae2988abfa5067042.
BUG: Throw exception when one component of resolutions is zero.
TST: Hard-coded to run MPI test on two processes.
CMAKE: Use mpiexec found by FindMPI
MAINT: Cleanup FFTWMPI and PFFT engine code.
MAINT: Throw error when trying to use FFTWEngine in parallel runs. Added test for that.
CMAKE: Use pkg-config prefix if found.
ENH: PFFT engine works.
CMAKE: Fixed 'add_external_package', no longer requires finding Python libraries in language bindings.
ENH: Added small wrapper around cell factory functions.
MAINT: CellFactory -> Cell
BUG: Pass name of FFT engine when constructing erro string.
BUG: PFFT engine does not work with transpose out. Disabled this for now. Also added PFFT engine to projection test.
BUG: Corrected transposed dimensions.
WIP: Create 2d process mesh when using PFFT.
ENH: Modified 'Pixels' to support arbitrary transpose operations (not just flipping first two axes).
Merge branch 'feat/mpi'
Test Plan: tests pass
Reviewers: junge
Differential Revision: https://c4science.ch/D172