-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove dependency on MPI compilers #350
Conversation
54930e1
to
b4df739
Compare
Ok, I think this branch is ready for more extensive tests on actual simulation pipelines. Running small local tests seem to indicate consistent results and timing compared to the current master branch. |
- Require only mpi4py (all MPI operations done in python). This allows us to build our compiled extensions with any compiler rather than requiring consistency with the compilers used to build mpi4py. - Port the high-level C++ atmosphere simulation code to python and use compiled code only on a single process. Change the on-disk format of cached atmosphere realizations to use hdf5. - Update build system to not look for MPI compilers. - Add a new log level, "VERBOSE" which is even lower than "DEBUG". The intention for this is to contain messages that might come from every single process. - The MPIShared and MPILock classes are found in the upstream pshmem package. Bundle a tagged release of that package for now until it is widely available on PyPI / conda-forge. - Clean up the generation of version.cpp so that it only happens if the version actually changes.
…nto place at the end.
function is actually called. TOAST does not use numba since it conflicts with our existing explicit parallelism. The set_numba_threading() function is designed to be used before calling external packages that use numba, in order to ensure consistency between toast and numba.
… that the kolmo_x spectrum was not being reduced across processes.
Ok @keskitalo, this branch now agrees with master on the small test case you shared with me offline. If you could reconfirm that consistency it would be great, and then hopefully we can merge this. |
The branch is now fully compatible with |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Enthusiastically approved.
This is still a work in progress. By reorganizing the atmosphere simulation code, we can remove our need for MPI compilers (we just need mpi4py). This means that the internal toast compiled code can be built with any serial compiler. There is no need for consistency between the compilers used to build toast and the compilers used to install mpi4py. This greatly simplifies toast installation and will enable us to distribute binary pip packages.