Skip to content

Create new METbaseimages for compiling with the Intel oneAPI compilers and additional GNU compilers #29

@jprestop

Description

@jprestop

Describe the Task

Create new environments for testing with at least one of the Intel oneAPI compilers available for download here.

There are licensing issues to compile software and provide software but not compiler code. While it may be possible to obtain oneAPI compilers without paying for it, we can’t distribute the compilers. We will need to download the compilers, compile the code, and then remove the compilers before sending up the image to DockerHub. Then, in MET, we will need to download the compilers, compile the code, and again remove the compilers before sending up the image to DockerHub. We need to ensure that we are using the same compiler version (leave a breadcrumb in the image so when MET can read the METbaseimage docker image breadcrumb and gets same compiler used for the library code in the METbaseimage.

See the I-WRF Dockerfile example created by David Hahn.

Consider adding the compiler family and version number to the Existing Builds section of the documentation to serve as documentation of compilers known to work. Consider also providing a summary table to list the union of GNU and Intel compilers known to work.

It would be nice to parameterize the Dockerfile or make a new Dockerfile on METbaseimage (probably 1 for GNU, 1 for intel) and would be nice to specify the version of Debian to use and if the Intel file could have arguments to specify version it's using.
Consider naming, for example:
MET-base-v3.3_gnu12
MET-base-v3.3_intel2025.0.1
Then, configure MET to pull from an updated version of the image.

Time Estimate

??

Sub-Issues

Consider breaking the task down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

12/19/24

Funding Source

Need account key.

Define the Metadata

Assignee

  • Select engineer(s) or no engineer required
  • Select scientist(s) or no scientist required

Labels

  • Select component(s)
  • Select priority
  • Select requestor(s)

Projects and Milestone

  • Select Repository and/or Organization level Project(s) or add alert: NEED CYCLE ASSIGNMENT label
  • Select Milestone as the next official version or Future Versions

Define Related Issue(s)

Consider the impact to the other METplus components.

Task Checklist

See the METplus Workflow for details.

  • Complete the issue definition above, including the Time Estimate and Funding Source.
  • Fork this repository or create a branch of develop.
    Branch name: feature_<Issue Number>_<Description>
  • Complete the development and test your changes.
  • Add/update log messages for easier debugging.
  • Add/update unit tests.
  • Add/update documentation.
  • Push local changes to GitHub.
  • Submit a pull request to merge into develop.
    Pull request: feature <Issue Number> <Description>
  • Define the pull request metadata, as permissions allow.
    Select: Reviewer(s) and Development issues
    Select: Repository level development cycle Project for the next official release
    Select: Milestone as the next official version
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions