MFC v4.3.0
What's Changed
- Cray Fortran + Docs + Toolchain Refactor by @henryleberre in #52
- Update m_mpi_proxy.fpp by @sbryngelson in #55
Includes:
Cray / CCE
Introduce support for the compilation of pre_process and simulation with the Cray Fortran compiler (ftn) for CPUs with limited GPU support. The GPU version of simulation doesn't work yet because of a compiler bug. I am waiting on the vendor to fix this issue. Most GPU-related changes/fixes are included in this Pull Request. These include:
- Ensuring HDF5 and FFTW3 are not configured/built by the CMake superbuild file for dependencies when Cray is the target compiler. We create dummy CMake targets in this case.
- Adding the correct flags for compilation with Cray. Since ACC offloading is enabled by default, we supply -h noacc -x acc when targeting CPUs and/or building a target other than simulation.
- Creating a macros.fpp file to seamlessly handle the allocation of GPU arrays with a single call.
Adding an entry to mfc.sh load for Crusher.
mfc.sh - We now keep track and install Python dependencies into the virtualenv in a far simpler and more efficient manner.
Added mfc.sh cloc. - Toolchain/
Refactor (for a final time) the toolchain code
- modes have been replaced with simpler and more versatile switches: --[no-]mpi, --[no-]gpu, and --[no-]debug. These are options that can be turned on and off independently.
- We properly handle cases where CMake configuration has failed or was incomplete. We do so by checking for the existence of a CMakeCache.txt file.
- Removed the user .yml configuration file.
- Parsing of template files has been improved and simplified. Expressions inside {} are now directly passed to eval() with special access to the dictionary of parsed command-line arguments.
- References to member classes within the global MFCState are no longer. Modules are now publicly available and export their functionality to others.
Website / Documentation
- MFC's website and documentation have been updated for a smoother user onboarding experience. Note: We now have to build and install the most recent release of Doxygen for the documentation to render properly.
- I also added bibtex syntax highlighting to the MFC paper citation.
CMake
- case.fpp files are gone from all targets except simulation.
- CMakeLists.txt handles src/common code more carefully:
- src/common code is now preprocessed into src//autogen where is the name of the current target being compiled. This fixes bugs that resulted from different targets updating the same (common) src/common/autogen/*.f90 source files and causing undesirable recompilations.
src/common
is now part of the Fypp include path.
Windows
I updated the mfc.bat file to work better!
Full Changelog: v4.2.0...v4.3.0