-
Notifications
You must be signed in to change notification settings - Fork 26
Feature #3140 openmp apps pcp genvxmask #3147
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
Conversation
…o most MET tools via regridding.
… threads that actually are available.
… in the vx_regrid library to avoid duplication.
… using stl::vector's instead of manual memory management. This required introducing a DataPlaneArray::at(int) accessor function. Modify some library and application code to get things compiling.
…ike apply_mask(). Doing so produced a Grid-Stat runtime failure.
…n all GHA tests more efficiently.
… parallelized regridding actually runs well and produces the expected output.
…nto feature_3132_openmp_vx_util
…runtime segfault in the unit_regrid.xml unit test.
…es that include break statements.
…he compilation.
… the maximum number of available threads. ci-run-unit
…nce that triggers a failure when ncdiff is used to compute differences: libgomp: Invalid value for environment variable OMP_NUM_THREADS ... ci-run-unit
…te unit_met_test_scripts.xml to add missing expected output file names. ci-run-unit
…uction(+:n) to avoid race conditions updating the counter. ci-run-unit
…rQube code smells.
… to add ci-run-unit to the commit message
…g computed to hopefully resolve differences, ci-run-unit
…ove erroneous variable listed, ci-run-unit
…tency, ci-run-unit
…pe of variables as much as possible, ensure no differences ci-run-unit
…ecifier to this declaration.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jprestop I approve of these changes. They look great!
Thanks for linking to your tests in runtime improvement. I confirmed that no diffs are flagged in the by the testing workflow and that the overall number of SonarQube code smells are reduced. I reviewed the code changes and they match what I was expecting.
} // end for y | ||
} // end for x | ||
} // end of parallel | ||
|
||
if(!put_nc_data_with_dims(&mask_var, mask_data.data(), grid.ny(), grid.nx())) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks!
This pull request adds OpenMP parallelization to the MET application code for Pcp-Combine (7 parallelizations added) and Gen-Vx-Mask (12 parallelizations added). The
feature_3140_openmp_apps_pcp_genvxmask
branch was created from thefeature_3132_openmp_vx_util
branch (PR #3136).The changes for this PR include OpenMP parallelization and SonarQube code smell remediation. In particular, the following code smells were addressed:
Expected Differences
Do these changes introduce new tools, command line arguments, or configuration file options? [No]
If yes, please describe:
Do these changes modify the structure of existing or add new output data types (e.g. statistic line types or NetCDF variables)? [No]
If yes, please describe:
Pull Request Testing
Describe testing already performed for these changes:
Validation Testing:
Recommend testing for the reviewer(s) to perform, including the location of input datasets, and any additional instructions:
Please review code changes for accuracy and consistency.
Review the validation testing (links above) to see the speedup.
This branch is built on
seneca
at/d1/projects/MET/MET_pull_requests/met-12.1.0/rc1/MET-feature_3140_openmp_apps_pcp_genvxmask
in case you want to do any testing.Do these changes include sufficient documentation updates, ensuring that no errors or warnings exist in the build of the documentation? [Yes]
Do these changes include sufficient testing updates? [Yes]
Will this PR result in changes to the MET test suite? [No]
If yes, describe the new output and/or changes to the existing output:
Will this PR result in changes to existing METplus Use Cases? [No]
If yes, create a new Update Truth METplus issue to describe them.
Do these changes introduce new SonarQube findings? [No]
If yes, please describe:
While some differences are flagged in "new code" the overall number of SonarQube code smells are reduced by 44 (from 17,114 for develop to 17,070 for this PR).
Please complete this pull request review by [20250515].
Pull Request Checklist
See the METplus Workflow for details.
Select: Reviewer(s) and Development issue
Select: Milestone as the version that will include these changes
Select: METplus-X.Y Support project for bugfix releases or MET-X.Y Development project for the next coordinated release