ENH: MPI parallelization
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).
ENH: Further parallel MPI enhancements; Python interface, improved finding of libraries, tests now run in parallel, bug fixes and support for PFFT.
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'
CMAKE: Don't require fftwf to be present.
MAINT: Fixed effc++ error that occured with gcc-7
Merge branch 'feat/mpi' of ssh://c4science.ch/source/muSpectre into feat/mpi
CMAKE: Improved search for FFT libraries.
CMAKE: Standard (double precision) FFTW MPI libraries were overriden when single precision version was present.
BUG: Test for odd number of dimensions should be on domain_resolutions, not resolutions
WIP: 2d procmesh, not yet working and commented.
Merge branch 'feat/mpi' of ssh://c4science.ch/source/muSpectre into feat/mpi
TST: Projection test should compile even if FFTWMPI and PFFT is not present. Re-enabled small strain test.
BUG: WITH_FFTWMPI -> WITH_PFFT
CMAKE: Also search in PKG_*_PREFIX
TST: Nonparallel engines should through error when used in parallel.
CMAKE: Run MPI test also in serial.
Merge branch 'master' of ssh://c4science.ch/source/muSpectre
Merge branch 'feat/mpi'
Test Plan: tests pass
Reviewers: junge
Reviewed By: junge
Differential Revision: https://c4science.ch/D174