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

Coupler performance updates #1346

Closed
wants to merge 6 commits into from
Closed

Conversation

amametjanov
Copy link
Member

  • Remove OpenMP parallel region overhead while querying num_threads
  • Stop looping and exit array-contiguity-checking loop if there exists fragmentation
  • Update vectorization and threading in m_AttrVect module
  • Add threading to data-local sparse matrix-vector multiply

* !DIR$ CONCURRENT generates 'Unrecognized directive' warning. Replace
    it with a more modern !DIR$ IVDEP that has the same meaning.
* Collapse two loops into one larger loop for faster threading.
* All !DIR$ CONCURRENT directives are replaced
* Cleanup unused vars
* Pull-up local variables
Also, the directive needs to be placed right before array assignment.
@amametjanov amametjanov requested a review from rljacob March 24, 2017 18:54
@rljacob rljacob self-assigned this Mar 24, 2017
Copy link
Member

@rljacob rljacob left a comment

Choose a reason for hiding this comment

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

Please make the MCT changes as a PR to https://github.com/MCSclimate/MCT and remove them from this PR. I'll bring in the MCT changes with the next subtree update (next week).

@rljacob
Copy link
Member

rljacob commented Mar 24, 2017

Any idea if this is BFB?

@amametjanov
Copy link
Member Author

Should be BFB. I was planning to check that with the A_WCYCL-compset after the latest MCT subtree update.

SMS.ne4_Qu240.A_WCYCL2000 should be the smallest yet covering test, right?

@rljacob
Copy link
Member

rljacob commented Mar 24, 2017

Right.

@amametjanov
Copy link
Member Author

Result of baseline comparisons before and after these changes is a PASS:

PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel CREATE_NEWCASE
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel XML 
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel SETUP
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel SHAREDLIB_BUILD time=33
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel MODEL_BUILD time=225
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel RUN time=103
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel BASELINE
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel TPUTCOMP
PASS SMS.ne4_oQU240.A_WCYCL2000.anvil_intel MEMLEAK insuffiencient data for memleak test

@amametjanov
Copy link
Member Author

Closing. Replaced by MCSclimate/MCT#47.

@rljacob
Copy link
Member

rljacob commented Mar 27, 2017

The changes to cime/driver_cpl/shr/seq_comm_mct.F90 will need a separate PR. Lets make it an ACME one.

@amametjanov
Copy link
Member Author

Yes, let me bring that in with other updates.

agsalin pushed a commit that referenced this pull request Apr 13, 2017
HOMME Improvement

Homme needs to handle failures better so that useful info
will still appear in TestStatus.log.

Test suite: pylint
Test baseline:
Test namelist changes:
Test status: bit for bit

Fixes [CIME Github issue #]

User interface changes?: None

Code review: None
@amametjanov amametjanov deleted the azamat/cpl/perf-updates branch August 1, 2017 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants