-
Notifications
You must be signed in to change notification settings - Fork 362
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
Issue with gpu-related slurm settings on Perlmutter #4834
Comments
This is still outstanding issue. We currently use This bring up interesting point: We don't currently have a way of using different slurm settings based on the type of e3sm application. Which perhaps could be considered as there may not always be slurm settings on a given machine that work optimally for everything we want to try. For now, a user can change the xml file locally, or do this at submit time: |
So sbatch settings need be set according what is in compset? If the ATM has "MMF" in it, use one setting, if it has "SREAM" use another? |
Yes that could allow for a fix for now if we could do that (ie if could test on MMF present in compset). But it might not be worth the trouble until NERSC has resolved. |
I tried the following:
but I got error:
Jim suggested:
but I haven't tried that yet |
Split config_pesall into component-specific config_pes PE-layouts are picked based on active component of a case or based on the prior config_pesall for all-active compsets. This PR also comes with a CIME update: To a3c94512e105ff1f21adf500fd317ac56961635e Changes: 1) Add RUNDIR as an accessible setting in the cmake build system 2) First step in the direction of implementing async IO in CESM 3) Add numeric time-stamp to jenkins archiving 4) Update grid schema 5) Set component-specific config_pes in E3SM 6) Allow any case env to be used as a directives selector in config_batch.xml Fixes #4834 [BFB] * azamat/pes/split-config-pesall: CIME update Add cime update to set component-specific PES_SPEC_FILE Split config_pesall into component-specific config_pes
I verified that with the change above to xsd file, I can test on the compset string in config_batch.xml and get the slurm directives I wanted for SCREAM/MMF. But need to wait for the CIME change to go in first. |
I don't think we can close this yet as we need the corresponding change that will use it for the aork-around. |
Early with Perlmutter, the following was one documented way to submit GPU batch jobs:
But now (not sure when exactly it started), with both stand-alone HOMME and screamv1 cime attempts, I get errors like this:
However, experimenting, I found this works:
which doesn't make sense yet, but wanted to start a thread. I can make this change to
config_batch.xml
but I prefer the original settings as it looks like I would need to use the{{ total_tasks }}
variable.For now, can work-around by passing flags to case.submit:
Note that we do NOT see this issue with MMF test -- seems to be OK with either of the above slurm settings, however, it's ~2.5x slower using the second (ie faster with what we have currently).
NERSC reports: "something did change in Slurm behavior, it now uses cgroups to enforce binding" and suggests using
--gpu-bind=none
Ah, ok, I think this can be fixed by:
ndk/machinefiles/PM-gpu-bind-none
Well, it works, but this is till 2.5x slower for the MMF test I tried. So it's clearly not what we want. NERSC isn't sure how long this state will exist, so might wait a bit.
The text was updated successfully, but these errors were encountered: