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

Speed up unit test build & run #869

Closed
billsacks opened this issue Nov 30, 2016 · 4 comments
Closed

Speed up unit test build & run #869

billsacks opened this issue Nov 30, 2016 · 4 comments

Comments

@billsacks
Copy link
Member

billsacks commented Nov 30, 2016

From @billsacks on December 21, 2015 23:21

The unit test build and run can take longer than I'd like. This is particularly true for CLM, which now has 20 unit test executables; each of these is linked against the CLM library, so whenever you change any CLM code, all 20 need to relink. So the build takes some time due to that. In addition, particularly on yellowstone, the use of mpi-based tests means that each test executable takes more than 1 sec to run, leading to a total test time of about 30 sec (these tests should run in milliseconds).

A few ideas about how to speed things up:

(1) Create a single test executable for all of CLM (or perhaps one executable for each CLM subdirectory - e.g., a biogeophys test executable, etc.). However, by itself, this is considered unacceptable, because CTest doesn't give granular enough reporting. So, would it be possible to have a single executable, with CTest calling it multiple times in different ways (as in http://baoilleach.blogspot.com/2013/06/using-ctest-with-multiple-tests-in.html)? Having a single executable would (a) speed up the build, (b) speed up the run, (c) make it easier to move around code and its associated tests.

(2) Revisit issue CESM-Development#26 : allow tests to use a serial build of pFUnit when possible. This would allow you to run CLM unit tests from yellowstone (rather than needing to do so on caldera), and would speed up the run time if (1) isn't feasible.

Copied from original issue: CESM-Development#341

@billsacks
Copy link
Member Author

cc @quantheory @bandre-ucar

@billsacks billsacks self-assigned this Nov 30, 2016
@rljacob rljacob added the ready label Dec 9, 2016
rljacob pushed a commit that referenced this issue Feb 8, 2017
… (PR #869)

This merge updates the ocean model to a newer version which limits the
amount of pressure that can be felt from the sea ice model in order to
prevent evacuated ocean cells.

Additional modifications are updating the default namelist and streams
files for the ocean and sea ice models, along with adding the
ne30_oRRS30to10 resolution as an option to the WCYCL compsets, and to
update the mapping files for the ne30_oQU120 resolution.

OG-492
[CC]

* origin/douglasjacobsen/mpas-o/limited_ssp_and_default_configs:
  Update MPAS-O to include a limited sea ice surface pressure
  Add ne30_oRRS30to10 as a WCYCL compset, and update oQU120 mesh
  Update the default configurations for MPAS-O and MPAS-Seaice
@rljacob
Copy link
Member

rljacob commented Jul 6, 2022

@billsacks still relevant?

@billsacks
Copy link
Member Author

Still possibly relevant but never gonna happen.

@billsacks
Copy link
Member Author

(In practice, when I'm doing test-driven-development, after I do an initial build and run of the unit tests on a branch, I cd into the unit test build subdirectory for just the tests I'm working on and run something like 'make && make test' from there, so that I only end up rerunning the tests I'm currently working on. This works well for me, though is currently undocumented.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants