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

Improve the MET codebase using feedback from and output created by the Intel oneAPI compilers #3080

Open
8 of 33 tasks
JohnHalleyGotway opened this issue Feb 13, 2025 · 0 comments
Assignees
Labels
component: build process Build process issue component: code cleanup Code cleanup and maintenance issue priority: high High Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Milestone

Comments

@JohnHalleyGotway
Copy link
Collaborator

JohnHalleyGotway commented Feb 13, 2025

Describe the Enhancement

Development for MET #3075 in both the main_v12.0 and develop branches revealed some areas for improvement in producing more consistent results. Recommend investigating and addressing the following items, many of which are noted in the MET #3076 pull request:

  • Compiling MET on seneca using the Intel oneAPI compilers produces nearly 2000 warning: and note: messages, although many of them are them are the same thing repeated 10's or 100's of times. Recommend updating the code to silence as many of them as possible. (Note that an issue exists for this task Resolve warnings in building MET using oneAPI #2756)
  • Compile MET using these Intel oneAPI compiler sanitizer options and fix the issues they raise. In particular, testing for MET Bugfix: Fix intermittent configuration string parsing yyerror failure #3077 revealed that -fsanitize=address highlights several memory leaks. Compile/test individually using the following options:
    • -fsanitize=address
    • -fsanitize=UndefinedBehaviourSanitizer
    • -fsanitize=MemorySanitizer
    • -fsanitize=ThreadSanitizer
  • Runtime differences for different GNU/Intel optimization levels from TC-Pairs FORTRAN code in clip_shif.f.
  • Runtime differences for different GNU/Intel optimization levels from PB2NC FORTRAN code in calpbl.f.
  • Runtime failures for Intel from the TC-Diag Python code. Confirm that MET can be configured/compiled with Intel on seneca in a way that enables TC-Diag to run and produce consist output.
  • Recommend carefully inspecting output from other FORTRAN code at various Intel/GNU optimization levels as well.
  • Run all units tests using GNU and Intel and diff the outputs. Note that small numeric differences in Intel vs GNU output less than 10E-5 are fine. But confirm that no unexpected numeric differences are flagged.

Time Estimate

1 week?

Sub-Issues

Consider breaking the enhancement down into sub-issues.

  • Add a checkbox for each sub-issue here.

Relevant Deadlines

List relevant project deadlines here or state NONE.

Funding Source

Please split between 2702701 (NCAR base) and 2771024 (AF).

Define the Metadata

Assignee

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

Labels

  • Review default alert labels
  • Select component(s)
  • Select priority
  • Select requestor(s)

Milestone and Projects

  • Select Milestone as a MET-X.Y.Z version, Consider for Next Release, or Backlog of Development Ideas
  • For a MET-X.Y.Z version, select the MET-X.Y.Z Development project

Define Related Issue(s)

Consider the impact to the other METplus components.

Enhancement 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 issue
    Select: Milestone as the next official version
    Select: MET-X.Y.Z Development project for development toward the next official release
  • Iterate until the reviewer(s) accept and merge your changes.
  • Delete your fork or branch.
  • Close this issue.
@JohnHalleyGotway JohnHalleyGotway added alert: NEED ACCOUNT KEY Need to assign an account key to this issue component: build process Build process issue component: code cleanup Code cleanup and maintenance issue priority: high High Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing labels Feb 13, 2025
@JohnHalleyGotway JohnHalleyGotway added this to the MET-12.1.0 milestone Feb 13, 2025
@JohnHalleyGotway JohnHalleyGotway self-assigned this Feb 13, 2025
@github-project-automation github-project-automation bot moved this to 🩺 Needs Triage in METplus-6.1.0 Development Feb 13, 2025
@JohnHalleyGotway JohnHalleyGotway changed the title Improve MET based on feedback from and output produced by the Intel compiler Improve the MET codebase using feedback from and output created by the Intel oneAPI compilers Feb 13, 2025
@JohnHalleyGotway JohnHalleyGotway moved this from 🩺 Needs Triage to 🟢 Ready in METplus-6.1.0 Development Feb 13, 2025
@michelleharrold michelleharrold removed the alert: NEED ACCOUNT KEY Need to assign an account key to this issue label Feb 13, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: build process Build process issue component: code cleanup Code cleanup and maintenance issue priority: high High Priority requestor: METplus Team METplus Development Team type: enhancement Improve something that it is currently doing
Projects
Status: 🟢 Ready
Development

No branches or pull requests

3 participants