Homec4science

ENH: MPI parallelization

Authored by pastewka on Mar 29 2018, 22:24.

Description

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

Details

Committed
pastewkaMar 30 2018, 13:55
Pushed
pastewkaMar 30 2018, 13:55
Reviewer
junge
Differential Revision
Restricted Differential Revision
Parents
rMUSPECTREb6e79168b2d4: added a ref to de Geus
Branches
Unknown
Tags
Unknown
Reverts
rMUSPECTRE191227c40c9a: BUG: Throw exception when one component of resolutions is zero.