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

Feat/w3wave scaling #784

Merged

Conversation

MatthewMasarik-NOAA
Copy link
Collaborator

@MatthewMasarik-NOAA MatthewMasarik-NOAA commented Sep 15, 2022

Pull Request Summary

Addresses the performance bottleneck found in subroutine W3NMIN.

Description

Provide a detailed description of what this PR does.

  • Removes the bottleneck identified in W3NMIN. The body of W3NMIN is a nested loop over all processors, and all global sea points, scaling inversely as ~(NAPROC x NSEA).
  • Two methods to remove this are included.
    • The first adds OMP parallel statements around the loops. This method provides no reduction when OMP threads are not used. It does retain a warning message for the case when a processor has no active seapoints. This is the only functionality currently provided by calling W3NMIN, so we have added it but hid it behind a DEBUGRUN #ifdef statement.
    • The second comments out the call to W3NMIN, completely removing the bottleneck.

Is a change of answers expected from this PR?

  • No.

Please also include the following information:

Issue(s) addressed

Commit Message

W3NMIN bottleneck fix

Check list

Testing

  • How were these changes tested?

    • Full matrix run against develop.
  • Are the changes covered by regression tests? (If not, why? Do new tests need to be added?)

    • No. The changes do not add a feature to be tested.
  • Have the matrix regression tests been run (if yes, please note HPC and compiler)?

    • Yes. Orion / Intel.
  • Please indicate the expected changes in the regression test output, (Note the list of known non-identical tests.)

    • There are no changes, except those known to be non-identical.
  • Please provide the summary output of matrix.comp (matrix.Diff.txt, matrixCompFull.txt and matrixCompSummary.txt):

**********************************************************************        
********************* non-identical cases ****************************        
**********************************************************************        
mww3_test_03/./work_PR2_UQ_MPI_d2                     (15 files differ)       
mww3_test_03/./work_PR2_UNO_MPI_e                     (1 files differ)        
mww3_test_03/./work_PR2_UNO_MPI_d2                     (17 files differ)      
mww3_test_03/./work_PR3_UQ_MPI_d2                     (17 files differ)       
mww3_test_03/./work_PR3_UNO_MPI_d2_c                     (19 files differ)    
mww3_test_03/./work_PR3_UQ_MPI_d2_c                     (16 files differ)     
mww3_test_03/./work_PR1_MPI_d2                     (23 files differ)          
mww3_test_03/./work_PR3_UNO_MPI_e_c                     (1 files differ)      
mww3_test_03/./work_PR3_UQ_MPI_e_c                     (1 files differ)       
mww3_test_03/./work_PR3_UNO_MPI_d2                     (19 files differ)      
ww3_ta1/./work_UPD0F_U                     (0 files differ)                   
ww3_tp2.10/./work_MPI_OMPH                     (6 files differ)               
ww3_tp2.16/./work_MPI_OMPH                     (4 files differ)               
ww3_tp2.17/./work_ma                     (1 files differ)                     
ww3_tp2.17/./work_mc1                     (1 files differ)                    
ww3_tp2.17/./work_mc                     (1 files differ)                     
ww3_tp2.17/./work_a                     (1 files differ)                      
ww3_tp2.17/./work_b                     (1 files differ)                      
ww3_tp2.17/./work_mb                     (1 files differ)                     
ww3_tp2.17/./work_c                     (1 files differ)                      
ww3_tp2.17/./work_ma1                     (1 files differ)                    
ww3_tp2.6/./work_pdlib                     (1 files differ)                   
ww3_ufs1.3/./work_a                     (1 files differ)                                                                                              
**********************************************************************        
************************ identical cases *****************************        
**********************************************************************

Copy link
Collaborator

@JessicaMeixner-NOAA JessicaMeixner-NOAA left a comment

Choose a reason for hiding this comment

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

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.

2 participants