Skip to content

Add self-bundling to ecTrans#399

Merged
samhatfield merged 3 commits into
ecmwf-ifs:developfrom
marsdeno:feature/integrated-bundle
May 11, 2026
Merged

Add self-bundling to ecTrans#399
samhatfield merged 3 commits into
ecmwf-ifs:developfrom
marsdeno:feature/integrated-bundle

Conversation

@marsdeno
Copy link
Copy Markdown
Collaborator

@marsdeno marsdeno commented May 8, 2026

Description

Add ectrans-bundle to the ecTrans repo.

  • bundle scripts and metadata added in package/bundle
  • arch files added for intel, GNU, nvhpc on ECMWF Atos
  • arch file added for BananaPi F3 on BSC HCA cluster
  • bundle-related text in README.md could be moved to online documentation (installation.html)

Contributor Declaration

By opening this pull request, I affirm the following:

  • All authors agree to the Contributor License Agreement.
  • The code follows the project's coding standards.
  • I have performed self-review and added comments where needed.
  • I have added or updated tests to verify that my changes are effective and functional.
  • I have run all existing tests and confirmed they pass.

@samhatfield
Copy link
Copy Markdown
Collaborator

Nice to see this, I've been putting this off for years. After this PR we will have two arch directories (https://github.com/ecmwf-ifs/ectrans/tree/develop/.github/arch). So let's either combine the two in this PR, or sort it out afterwards with another PR.

@marsdeno marsdeno requested a review from samhatfield May 8, 2026 15:03
Comment thread package/bundle/bundle.yml Outdated
Comment thread package/bundle/bundle.yml Outdated
Comment thread package/bundle/bundle.yml Outdated
Comment thread package/bundle/bundle.yml Outdated
Comment thread README.md Outdated
Comment on lines +49 to +71
## bundle build, text to be moved to sites.ecmwf.int/[]/installation.html
Build using ecTrans bundle

Another way of building ecTrans is to use the bundle definition included in `package/bundle`:

$ ./package/bundle/ectrans-bundle create --bundle package/bundle/bundle.yml # Checks out dependency packages into "source" directory
$ ./package/bundle/ectrans-bundle build [--build-type=<build-type>] [--arch=<path-to-arch>] [--option]

The bundle also facilitates setting environment variables and compiler flags relevant to certain architectures by specifying the corresponding arch file at the build step. For example, to build on the ECMWF Atos system using Intel compilers and the hpcx-openmpi `MPI` library:

`--arch=package/bundle/arch/ecmwf/hpc2020/intel/2021.4.0/hpcx-openmpi/2.9.0`
or equivalently
`--arch ecmwf/hpc2020/intel/2021.4.0/hpcx-openmpi/2.9.0`

A number of options can also be configured during the bundle build step, including:
- `--without-mpi` - Disable MPI
- `--without-single-precision` - Only build double-precision variant of ecTrans
All options can be seen at the end of the `package/bundle/bundle.yml` file.

Finally, additional `CMake` options can also be set during the bundle build step:

`--cmake="OPTION=<arg>"`

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will put this on the docs site so you can remove it here.

@marsdeno
Copy link
Copy Markdown
Collaborator Author

marsdeno commented May 8, 2026

Comments addressed, thanks for the review. I suggest merging the two arch locations in a subsequent PR.

@samhatfield
Copy link
Copy Markdown
Collaborator

Nice I'll play around with this next week!

samhatfield added a commit that referenced this pull request May 11, 2026
@samhatfield samhatfield merged commit afa0e5e into ecmwf-ifs:develop May 11, 2026
18 checks passed
wdeconinck added a commit to dhaumont/ectrans that referenced this pull request May 15, 2026
* develop:
  Fixup and simplify toolchains (ecmwf-ifs#401)
  Make ci of nvhpc with github-hosted runners use "-tp=haswell" flag (ecmwf-ifs#400)
  Correct name of nvidia arch
  Consolidate arch directories
  Add self-bundling to ecTrans (ecmwf-ifs#399)
  Implement new IFS compile flags convention (ecmwf-ifs#397)
  Remove compile flag overloads for ftinv/ftdir GPU (ecmwf-ifs#396)
  Remove legacy compiler workarounds (ecmwf-ifs#393)
  Fix ci failures with nvhpc and intel (ecmwf-ifs#394)
  Make adjoint utils library platform dependent (ecmwf-ifs#390)
  Make test ectrans_test_split_mpi_comm dependent on fiat version 2.0
  Fix compilation warning in tests/trans/api/fpe_trapping
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants