O_30_O OpenMP_for_MPAS_Ocean Design
The Design Document page provides a description of the algorithms, implementation and planned testing including unit, verification, validation and performance testing. Please read Step 1.3 Performance Expectations that explains feature documentation requirements from the performance group point of view.
Design Document
In the table below 4.Equ means Equations and Algorithms, 5.Ver means Verification, 6.Perf - Performance, 7. Val - Validation, - competed, - in progress, - not done
OpenMP threading in MPAS-Ocean
Requirements and Design
ACME Ocean/Ice Group
Date: September 26, 2015
Summary
Requirements
Requirement: bit-for-bit
Date last modified: September 25, 2015
Contributors: Doug Jacobsen (Unlicensed)
Regardless of whether decomposition is flat MPI or hybrid MPI/OpenMP, simulation results are bit-for-bit identical.
Algorithmic Formulations
Design solution: element-based OpenMP
Date last modified: September 26, 2015
Contributors: Doug Jacobsen (Unlicensed)
After scoping and prototyping several different approaches, the algorithmic approach will employ loop-by-loop OpenMP directives.
Design and Implementation
Implementation: element-based OpenMP
Date last modified: September 26, 2015
Contributors: Doug Jacobsen (Unlicensed)
Planned Verification and Unit Testing
Verification and Unit Testing: short-desciption-of-testing-here
Date last modified: September 26, 2015
Contributors: Doug Jacobsen (Unlicensed)
Since we require bit-for-bit, verification is straightforward. We will verify bit-for-bit across the full suite of MPAS-Ocean test cases.
Planned Validation Testing
Validation Testing: short-desciption-of-testing-here
Date last modified: September 26, 2015
Contributors: Doug Jacobsen (Unlicensed)
Since we require bit-for-bit, validation is not a part of this process.
Planned Performance Testing
Performance Testing: short-desciption-of-testing-here
Date last modified: September 26, 2015
Contributors: Doug Jacobsen (Unlicensed)
Performance evaluation will be carried out on (at a minimum) Edison and Mira. On both platforms, we will evaluate performance across a broad range of thread-per-MPI task. An example of our testing can be found in the file below. This testing will be conducted again at completion of the implementation.