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

Add more unit tests of system_tests_compare_two, fix multisubmit bug #1858

Merged
merged 3 commits into from
Sep 1, 2017

Conversation

billsacks
Copy link
Member

The multisubmit bug related to the indentation of a block: this was
mistakenly being done for both phases of a multi-submit, whereas it only
should have been done after the second
phase. #1830 had this correct, but the
indentation was incorrect in #1837,
which is what came to master.

Test suite: scripts_regression_tests on cheyenne
Test baseline: n/a
Test namelist changes: none
Test status: bit for bit

Fixes #1856

User interface changes?: none

Update gh-pages html (Y/N)?: N

Code review:

The multisubmit bug related to the indentation of a block: this was
mistakenly being done for both phases of a multi-submit, whereas it only
should have been done after the second
phase. ESMCI#1830 had this correct, but the
indentation was incorrect in ESMCI#1837,
which is what came to master.
@billsacks
Copy link
Member Author

@jedwards4b and @jgfouca - I realize that the change to system_tests_compare_two.py conflicts with @jedwards4b 's change in #1857 - I had already done this fix before I saw #1857 . As I'm about to mention in the review for #1857 , the indentation differs here compared with what @jedwards4b did there. Regardless of which one is accepted, the unique part of this PR is to add unit tests - including unit tests that caught the bug that this fixes.

@billsacks billsacks mentioned this pull request Aug 31, 2017
Copy link
Contributor

@jgfouca jgfouca left a comment

Choose a reason for hiding this comment

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

Looks great. Glad to have good unit testing of this critical class.

@jgfouca
Copy link
Contributor

jgfouca commented Sep 1, 2017

@billsacks I approve. Since you're working on a fork, I'll let you resolve the conflict.

@billsacks
Copy link
Member Author

billsacks commented Sep 1, 2017

Updated to latest master to resolve merge conflict. The changes were identical now on master and in my branch. So now the only diffs in this PR are in the addition of unit tests.

I ran scripts_regression_tests A_RunUnitTests and B_CheckCode on the latest version.

I'll merge this to master now.

@billsacks billsacks merged commit 230f7dd into ESMCI:master Sep 1, 2017
@billsacks billsacks deleted the comparetwo_multisubmit_fix branch September 1, 2017 19:54
jgfouca pushed a commit that referenced this pull request Nov 7, 2017
…#1868)

Centralize coll. of perf. data at NERSC and update NERSC syslog scripts

a) Change SAVE_TIMING_DIR default at NERSC to a central location

Currently the default location for SAVE_TIMING_DIR on Edison,
Cori-Haswell, and Cori-KNL is /project/projectdirs/$PROJECT .
There are a number of ACME-project allocations at NERSC, and
it is advantageous for the performance data for all of these to
be archived in a single location. Here this default is set to
/project/projectdirs/acme . If the ACME model is run by
someone not in the acme group and if this default is not
changed in env_run.xml, then performance data archiving
will be disabled.

b) Change mach_syslog for Cori to start checkpointing earlier

Currently the scripts for Cori-Haswell and Cori-KNL
that monitor model progress do not start until the number of lines
in acme.log exceeds the number of cores in the allocation nodes.
This design was introduced when the process-to-core mapping
was output to acme.log. This mapping output has since been disabled
for these systems and the script often waits excessively long for jobs
with large node counts. This commit changes these scripts to start after an
empirically determined number of lines, attempting to start after the
model output starts, thus after the list of MPICH environment variables
is output. As this is emprically determined, it may need to be adjusted
again in the future.

c) Change mach_syslog for Edison to start checkpointing earlier

Currently the script for Edison that monitors model progress does
not start until the number of lines in acme.log exceeds the number of
cores in the allocated nodes. This design was introduced when the
process-to-core mapping was output to acme.log. As the number of cores
can be larger (and potentially much larger) than the number of MPI
processes when using OpenMP threading, the script often waits excessively
long for jobs with large nodes counts when OpenMP threading is used.
This commit changes this script to start after the length of acme.log
exceeds the number of nodes. While not guaranteed to capture all of
the process-to-core mapping, this change does guarantee that something
is captured before the job ends. Note that this change is needed now
because of the successful cleanup of acme.log, significantly shortening
its length compared to that generated by earlier versions of the model.

Fixes #1858

[BFB]

P2-117
jgfouca pushed a commit that referenced this pull request Feb 23, 2018
…#1868)

Centralize coll. of perf. data at NERSC and update NERSC syslog scripts

a) Change SAVE_TIMING_DIR default at NERSC to a central location

Currently the default location for SAVE_TIMING_DIR on Edison,
Cori-Haswell, and Cori-KNL is /project/projectdirs/$PROJECT .
There are a number of ACME-project allocations at NERSC, and
it is advantageous for the performance data for all of these to
be archived in a single location. Here this default is set to
/project/projectdirs/acme . If the ACME model is run by
someone not in the acme group and if this default is not
changed in env_run.xml, then performance data archiving
will be disabled.

b) Change mach_syslog for Cori to start checkpointing earlier

Currently the scripts for Cori-Haswell and Cori-KNL
that monitor model progress do not start until the number of lines
in acme.log exceeds the number of cores in the allocation nodes.
This design was introduced when the process-to-core mapping
was output to acme.log. This mapping output has since been disabled
for these systems and the script often waits excessively long for jobs
with large node counts. This commit changes these scripts to start after an
empirically determined number of lines, attempting to start after the
model output starts, thus after the list of MPICH environment variables
is output. As this is emprically determined, it may need to be adjusted
again in the future.

c) Change mach_syslog for Edison to start checkpointing earlier

Currently the script for Edison that monitors model progress does
not start until the number of lines in acme.log exceeds the number of
cores in the allocated nodes. This design was introduced when the
process-to-core mapping was output to acme.log. As the number of cores
can be larger (and potentially much larger) than the number of MPI
processes when using OpenMP threading, the script often waits excessively
long for jobs with large nodes counts when OpenMP threading is used.
This commit changes this script to start after the length of acme.log
exceeds the number of nodes. While not guaranteed to capture all of
the process-to-core mapping, this change does guarantee that something
is captured before the job ends. Note that this change is needed now
because of the successful cleanup of acme.log, significantly shortening
its length compared to that generated by earlier versions of the model.

Fixes #1858

[BFB]

P2-117
jgfouca pushed a commit that referenced this pull request Mar 13, 2018
…#1868)

Centralize coll. of perf. data at NERSC and update NERSC syslog scripts

a) Change SAVE_TIMING_DIR default at NERSC to a central location

Currently the default location for SAVE_TIMING_DIR on Edison,
Cori-Haswell, and Cori-KNL is /project/projectdirs/$PROJECT .
There are a number of ACME-project allocations at NERSC, and
it is advantageous for the performance data for all of these to
be archived in a single location. Here this default is set to
/project/projectdirs/acme . If the ACME model is run by
someone not in the acme group and if this default is not
changed in env_run.xml, then performance data archiving
will be disabled.

b) Change mach_syslog for Cori to start checkpointing earlier

Currently the scripts for Cori-Haswell and Cori-KNL
that monitor model progress do not start until the number of lines
in acme.log exceeds the number of cores in the allocation nodes.
This design was introduced when the process-to-core mapping
was output to acme.log. This mapping output has since been disabled
for these systems and the script often waits excessively long for jobs
with large node counts. This commit changes these scripts to start after an
empirically determined number of lines, attempting to start after the
model output starts, thus after the list of MPICH environment variables
is output. As this is emprically determined, it may need to be adjusted
again in the future.

c) Change mach_syslog for Edison to start checkpointing earlier

Currently the script for Edison that monitors model progress does
not start until the number of lines in acme.log exceeds the number of
cores in the allocated nodes. This design was introduced when the
process-to-core mapping was output to acme.log. As the number of cores
can be larger (and potentially much larger) than the number of MPI
processes when using OpenMP threading, the script often waits excessively
long for jobs with large nodes counts when OpenMP threading is used.
This commit changes this script to start after the length of acme.log
exceeds the number of nodes. While not guaranteed to capture all of
the process-to-core mapping, this change does guarantee that something
is captured before the job ends. Note that this change is needed now
because of the successful cleanup of acme.log, significantly shortening
its length compared to that generated by earlier versions of the model.

Fixes #1858

[BFB]

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

Successfully merging this pull request may close these issues.

3 participants