Skip to content

MFC v4.3.0

Compare
Choose a tag to compare
@sbryngelson sbryngelson released this 14 Jan 02:05
· 1060 commits to master since this release
694ad71

What's Changed

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