Skip to content
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

New Build System #791

Open
wants to merge 71 commits into
base: main
Choose a base branch
from
Open

New Build System #791

wants to merge 71 commits into from

Conversation

pmocz
Copy link
Member

@pmocz pmocz commented Mar 2, 2025

by Vincent Vanlaer

VincentVanlaer and others added 30 commits January 23, 2025 14:28
This commit introduces a new build system (still based on make files).
Reasons for replacing the previous build system were:

- the previous build system had a lot of duplication between the
  modules, both in terms of make files and shell scripts.
- parallelisation was limited. The new build system parallelises better
  within a module, and between modules.
- build scripts and output from the build ended up in the same folder.
  With the new system, all build output files are stored in the folder
  ``build`` in the repository root, making cleaning build files
  equivalent to deleting this folder

For the details of the implementation, see the newly added documentation
(Developing -> Build system).

Some further notable changes:

- makedepf90 has been replaced by a perl script that scans the fortran
  source files. This allows for better flexibility in construction the
  make files.
- Currently, `pymesa` does not work with the new build system, as the
  new system does not provide a way to build shared libraries for every
  module.
- Dependencies are being discovered using pkg-config. This change
  makes it easier to build MESA without the SDK, as linux distributions
  typically ship with pkg-config files.
This commit adds the necessary pkg-config files until the SDK ships
them.
It makes more sense to place the data processing script under proper
version control.
Some of the preprocessor code has been modified to actually build, and
to catch some errors in a cleaner way
Needed to build GYRE with the SDK
This is difficult to do across platforms
@warrickball
Copy link
Contributor

I decided that I'll fight with ifort after the build system is refreshed, so I configured our University cluster to run using the SDK. It submitted test results over the course of last night. There are 25 failures but I want to get some big picture input on that result.

tl;dr: We have two options:

  1. We could probably go back to whatever compiler options meant that stuff runs under the current build system.
  2. We can try to fix a lot of issues that have been raised first.

I'm strongly in favour of 2. I think these runs have flagged some genuine issues that are worth fixing now rather than sweeping back under a rug of compiler options. Or maybe some of these are fixed on main or just missing one or two reasonable compiler flags?

Regarding those issues, they actually fall into some large categories.

  • double_bh, 15M_dynamo, accreted_material_j, high_rot_darkening and ppisn fail because of a checksum difference in the final model when it's computed from a restart. This is presumably a symptom of something not being correctly passed into and out of the photo, though I can't tell at a glance if it's the same thing.
  • 1M_thermohaline, 20M_z2m2_high_rotation, conserve_angular_momentum and magnetic_braking hit a shared issue, where it looks like s% D_ST(2) is NaN on restart. I guess this is also something not being restored from a photo correctly.
  • The RSP tests all fail because of the same energy conservation test.
  • The astero failures are all caused by index out of bounds errors in ADIPLS. I'll make investigating these my next priority.

The remaining tests (carbon_kh, relax_composition_j_entropy and simplex_solar_calibration) have unique issues. simplex_solar_calibration has an unusual structure that includes a bit of astero that BillP isolated. I think the build system just needs updating here.

@warrickball
Copy link
Contributor

Also probably worth mentioning that this is a continuation of this original external PR (#724).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants