hiker / fab_new

BOM version of the flexible build system for scientific software
https://metoffice.github.io/fab/
BSD 3-Clause "New" or "Revised" License
1 stars 0 forks source link

Mpi omp support #14

Closed hiker closed 1 month ago

hiker commented 2 months ago

Adds support for specifying MPI and OpenMP in the config file.

hiker commented 2 months ago

This patch is not 'as big' as it appears to be - because of adding parameters to BuildConfig, they had to be added to a lot of files and examples. Additionally, I addressed coding style issues as suggested by Matthew recently (max 80 characters/line). Note that the MPI based compiler classes are not proper wrapper yet, they will be re-implemented in the next PR.

hiker commented 2 months ago

Quick explanation: the idea of this PR is that the user defines in the BuildConfig if the build is to be done with MPI, and with OpenMP (they are not exclusive). This means that the ToolRepository can pick an appropriate compiler by default (if the user doesn't specify what compiler they want), which solves e.g. the problem that e.g. ifort is being picked as default for an intel-based build (instead of an Intel based MPI wrapper). ATM we hard-code this still in the script. The support for OpenMP means that the compiler can select its own (compiler-specific) OpenMP flags. ATM we have these flags hard-coded in the scripts.

hiker commented 1 month ago

I hope I've addressed all issues. Ready for next review.