Closed juliasloan25 closed 1 year ago
Looking good! Do you think you could add rough estimates of timelines, @juliasloan25?
To follow up on our call this morning:
examples
or elsewhere to src
, then importing those into the driver files.Completed. 🎉
Next steps are to restructure experiments folder (#232), make the modular interface more performant (#205 and subsequent issues) and redesign the exchange (pull and push!) component (#211).
Purpose
We want to refactor the ClimaCoupler to make a more modular interface.
Benefits
This will remove global-scope objects, making performance tracking faster and increasing usability of the interface. Code will be more generalized and therefore able to be used by different modules more easily.
Risks
We will develop an interface that will conflict with the current main stream of the model. To minimize this risk, we are developing this interface in parallel with development of the rest of the model. Eventually we will change over the rest of the code to align with this new interface design.
People and Personnel
Components
Module Conversion Task Breakdown
For each module: PHASE 1 - moving and documentation
src/
src/ClimaCoupler.jl
PHASE 2 - testing
test/
, add totest/runtests.jl
test/mpi_tests
and in buildkite pipeline a. Add file torun_mpi_tests.jl
PHASE 3 - cleanup
Results and deliverables
Information exchange (push_pull.jl, flux_calculator.jl)Quality expectations
Performance metrics
Throughout development, we will track performance changes as we update modules. During the optimization stage (after translation to modules) flame graphs will be used to assess performance of the entire driver.
Task Breakdown And Tentative Due Dates
Next steps (partly addressed in issue #205 )
Proposed Delivery Date
10 January 2023