Skip to content

Commit

Permalink
deploy: fb06c9c
Browse files Browse the repository at this point in the history
  • Loading branch information
github-actions[bot] committed Oct 17, 2024
1 parent 1ce4dd6 commit 1b4bd19
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 12 deletions.
5 changes: 4 additions & 1 deletion branch/update-mvk-config/html/Tools_user/case.submit.html
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,9 @@
Only this job will be run, workflow and RESUBMIT are ignored. Default is case.run.
--no-batch Do not submit jobs to batch system, run locally.
--prereq PREREQ Specify a prerequisite job id, this job will not start until the
job with this id is completed (batch mode only).
job with this id is completed (batch mode only). This feature overrides the
CONTINUE_RUN=TRUE check for the existance of restart files and assumes that the
files will be present when the case starts.
--prereq-allow-failure
Allows starting the run even if the prerequisite fails.
This also allows resubmits to run if the original failed and the
Expand All @@ -199,6 +201,7 @@
You can specify multiple types with either comma-separated args or multiple -M flags.
-a BATCH_ARGS, --batch-args BATCH_ARGS
Used to pass additional arguments to batch system.
Do not use this feature to specify job prerequisites, use the --prereq feature instead.
--chksum Verifies input data checksums.

Logging options:
Expand Down
27 changes: 25 additions & 2 deletions branch/update-mvk-config/html/_modules/CIME/XML/env_batch.html
Original file line number Diff line number Diff line change
Expand Up @@ -333,12 +333,35 @@ <h1>Source code for CIME.XML.env_batch</h1><div class="highlight"><pre>
<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;tasks_per_node&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">tasks_per_node</span>
<span class="k">if</span> <span class="n">thread_count</span><span class="p">:</span>
<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;thread_count&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">thread_count</span>
<span class="n">total_tasks</span> <span class="o">=</span> <span class="n">total_tasks</span> <span class="o">*</span> <span class="n">thread_count</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">total_tasks</span> <span class="o">=</span> <span class="n">total_tasks</span> <span class="o">*</span> <span class="n">case</span><span class="o">.</span><span class="n">thread_count</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">total_tasks</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;TOTALPES&quot;</span><span class="p">)</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">case</span><span class="o">.</span><span class="n">thread_count</span><span class="p">)</span>
<span class="c1"># Total PES accounts for threads as well as mpi tasks</span>
<span class="n">total_tasks</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;TOTALPES&quot;</span><span class="p">)</span>
<span class="n">thread_count</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">thread_count</span>
<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">total_tasks</span><span class="p">)</span> <span class="o">*</span> <span class="nb">int</span><span class="p">(</span><span class="n">thread_count</span><span class="p">)</span> <span class="o">&lt;</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;MAX_TASKS_PER_NODE&quot;</span><span class="p">):</span>
<span class="k">if</span> <span class="nb">int</span><span class="p">(</span><span class="n">total_tasks</span><span class="p">)</span> <span class="o">&lt;</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;MAX_TASKS_PER_NODE&quot;</span><span class="p">):</span>
<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;max_tasks_per_node&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="nb">int</span><span class="p">(</span><span class="n">total_tasks</span><span class="p">)</span>

<span class="c1"># when developed this variable was only needed on derecho, but I have tried to</span>
<span class="c1"># make it general enough that it can be used on other systems by defining MEM_PER_TASK and MAX_MEM_PER_NODE in config_machines.xml</span>
<span class="c1"># and adding {{ mem_per_node }} in config_batch.xml</span>
<span class="k">try</span><span class="p">:</span>
<span class="n">mem_per_task</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;MEM_PER_TASK&quot;</span><span class="p">)</span>
<span class="n">max_mem_per_node</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">get_value</span><span class="p">(</span><span class="s2">&quot;MAX_MEM_PER_NODE&quot;</span><span class="p">)</span>
<span class="n">mem_per_node</span> <span class="o">=</span> <span class="n">total_tasks</span>

<span class="k">if</span> <span class="n">mem_per_node</span> <span class="o">&lt;</span> <span class="n">mem_per_task</span><span class="p">:</span>
<span class="n">mem_per_node</span> <span class="o">=</span> <span class="n">mem_per_task</span>
<span class="k">elif</span> <span class="n">mem_per_node</span> <span class="o">&gt;</span> <span class="n">max_mem_per_node</span><span class="p">:</span>
<span class="n">mem_per_node</span> <span class="o">=</span> <span class="n">max_mem_per_node</span>
<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;mem_per_node&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">mem_per_node</span>
<span class="k">except</span> <span class="ne">TypeError</span><span class="p">:</span>
<span class="c1"># ignore this, the variables are not defined for this machine</span>
<span class="k">pass</span>
<span class="k">except</span> <span class="ne">Exception</span> <span class="k">as</span> <span class="n">error</span><span class="p">:</span>
<span class="nb">print</span><span class="p">(</span><span class="s2">&quot;An exception occured:&quot;</span><span class="p">,</span> <span class="n">error</span><span class="p">)</span>

<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;ngpus_per_node&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">ngpus_per_node</span>
<span class="n">overrides</span><span class="p">[</span><span class="s2">&quot;mpirun&quot;</span><span class="p">]</span> <span class="o">=</span> <span class="n">case</span><span class="o">.</span><span class="n">get_mpirun_cmd</span><span class="p">(</span><span class="n">job</span><span class="o">=</span><span class="n">job</span><span class="p">,</span> <span class="n">overrides</span><span class="o">=</span><span class="n">overrides</span><span class="p">)</span>
<span class="k">return</span> <span class="n">overrides</span></div>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,6 @@ For this case the default ``evv_test_config`` and ``generate_namelist`` function
component = "eam"
# components = [] can be omitted when modifying a single component
ninst = 10
critical = 21

.. _MVK Complex:

Expand All @@ -417,6 +416,7 @@ Note; this is a toy example, no scientific usage.
import os
from CIME.SystemTests.mvk import EVV_LIB_DIR
from CIME.namelist import Namelist
from CIME.utils import safe_copy
from CIME.utils import run_cmd

component "eam"
Expand All @@ -438,15 +438,18 @@ Note; this is a toy example, no scientific usage.
if component in ["eam", "clm"]:
with namelist(filename) as nml:
if component == "eam":
nml.set_variable_value("eam_specific", f"perturn-{i}")
# arguments group, key, value
nml.set_variable_value("", "eam_specific", f"perturn-{i}")
elif component == "clm":
if i % 2 == 0:
nml.set_variable_value("clm_specific", "even")
nml.set_variable_value("", "clm_specific", "even")
else:
nml.set_variable_value("clm_specific", "odd")
nml.set_variable_value("", "clm_specific", "odd")
else:
stat, output, err = run_cmd(f"atmchange initial_conditions::perturbation_random_seed = {i*32}")

safe_copy("namelist_scream.xml", f"namelist_scream_{i:04}.xml")


========================
Test progress and output
Expand Down
2 changes: 1 addition & 1 deletion branch/update-mvk-config/html/searchindex.js

Large diffs are not rendered by default.

11 changes: 7 additions & 4 deletions branch/update-mvk-config/html/users_guide/testing.html
Original file line number Diff line number Diff line change
Expand Up @@ -602,7 +602,6 @@ <h5><span class="section-number">10.1.3.4.1. </span>MVK<a class="headerlink" hre
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">component</span> <span class="o">=</span> <span class="s2">&quot;eam&quot;</span>
<span class="c1"># components = [] can be omitted when modifying a single component</span>
<span class="n">ninst</span> <span class="o">=</span> <span class="mi">10</span>
<span class="n">critical</span> <span class="o">=</span> <span class="mi">21</span>
</pre></div>
</div>
<p id="mvk-complex">If more control over the evv4esm configuration file or the per instance configuration is desired then
Expand All @@ -617,6 +616,7 @@ <h5><span class="section-number">10.1.3.4.1. </span>MVK<a class="headerlink" hre
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span> <span class="nn">os</span>
<span class="kn">from</span> <span class="nn">CIME.SystemTests.mvk</span> <span class="kn">import</span> <span class="n">EVV_LIB_DIR</span>
<span class="kn">from</span> <span class="nn">CIME.namelist</span> <span class="kn">import</span> <span class="n">Namelist</span>
<span class="kn">from</span> <span class="nn">CIME.utils</span> <span class="kn">import</span> <span class="n">safe_copy</span>
<span class="kn">from</span> <span class="nn">CIME.utils</span> <span class="kn">import</span> <span class="n">run_cmd</span>

<span class="n">component</span> <span class="s2">&quot;eam&quot;</span>
Expand All @@ -638,14 +638,17 @@ <h5><span class="section-number">10.1.3.4.1. </span>MVK<a class="headerlink" hre
<span class="k">if</span> <span class="n">component</span> <span class="ow">in</span> <span class="p">[</span><span class="s2">&quot;eam&quot;</span><span class="p">,</span> <span class="s2">&quot;clm&quot;</span><span class="p">]:</span>
<span class="k">with</span> <span class="n">namelist</span><span class="p">(</span><span class="n">filename</span><span class="p">)</span> <span class="k">as</span> <span class="n">nml</span><span class="p">:</span>
<span class="k">if</span> <span class="n">component</span> <span class="o">==</span> <span class="s2">&quot;eam&quot;</span><span class="p">:</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;eam_specific&quot;</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;perturn-</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="c1"># arguments group, key, value</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;eam_specific&quot;</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;perturn-</span><span class="si">{</span><span class="n">i</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>
<span class="k">elif</span> <span class="n">component</span> <span class="o">==</span> <span class="s2">&quot;clm&quot;</span><span class="p">:</span>
<span class="k">if</span> <span class="n">i</span> <span class="o">%</span> <span class="mi">2</span> <span class="o">==</span> <span class="mi">0</span><span class="p">:</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;clm_specific&quot;</span><span class="p">,</span> <span class="s2">&quot;even&quot;</span><span class="p">)</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;clm_specific&quot;</span><span class="p">,</span> <span class="s2">&quot;even&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;clm_specific&quot;</span><span class="p">,</span> <span class="s2">&quot;odd&quot;</span><span class="p">)</span>
<span class="n">nml</span><span class="o">.</span><span class="n">set_variable_value</span><span class="p">(</span><span class="s2">&quot;&quot;</span><span class="p">,</span> <span class="s2">&quot;clm_specific&quot;</span><span class="p">,</span> <span class="s2">&quot;odd&quot;</span><span class="p">)</span>
<span class="k">else</span><span class="p">:</span>
<span class="n">stat</span><span class="p">,</span> <span class="n">output</span><span class="p">,</span> <span class="n">err</span> <span class="o">=</span> <span class="n">run_cmd</span><span class="p">(</span><span class="sa">f</span><span class="s2">&quot;atmchange initial_conditions::perturbation_random_seed = </span><span class="si">{</span><span class="n">i</span><span class="o">*</span><span class="mi">32</span><span class="si">}</span><span class="s2">&quot;</span><span class="p">)</span>

<span class="n">safe_copy</span><span class="p">(</span><span class="s2">&quot;namelist_scream.xml&quot;</span><span class="p">,</span> <span class="sa">f</span><span class="s2">&quot;namelist_scream_</span><span class="si">{</span><span class="n">i</span><span class="si">:</span><span class="s2">04</span><span class="si">}</span><span class="s2">.xml&quot;</span><span class="p">)</span>
</pre></div>
</div>
</section>
Expand Down

0 comments on commit 1b4bd19

Please sign in to comment.