Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

I think the best way to try to run DDT on ACME is the reverse connect feature. Once you're inside the interactive job and have sourced .env_mach_specific.sh, also "module load forge". Then, in env_mach_specific.xml, change the aprun command to "ddt --connect aprun". Before you run ./case.submit --no-batch, make sure that you have a remote client that is already connected to Titan following the instructions of: https://www.olcf.ornl.gov/kb_articles/using-the-ddt-remote-client/. The path to DDT they provide in that webpage is outdated. Run "module show forge" to find the current path and use that when connecting. I've tested this method, and it worked for me.

I have a patch in CIME (an older version I think) that goes as follows:

diff --git a/cime/utils/python/CIME/aprun.py b/cime/utils/python/CIME/aprun.py
index a01d6fb..95acda3 100755
--- a/cime/utils/python/CIME/aprun.py
+++ b/cime/utils/python/CIME/aprun.py
@@ -64,7 +64,7 @@ def _get_aprun_cmd_for_case_impl(ntasks, nthreads, rootpes, pstrids,
 
     # Compute task and thread settings for batch commands
     tasks_per_node, task_count, thread_count, max_thread_count, total_node_count, aprun = \
-        0, 1, maxt[0], maxt[0], 0, "aprun"
+        0, 1, maxt[0], maxt[0], 0, ""
     for c1 in xrange(1, total_tasks):
         if maxt[c1] != thread_count:
             tasks_per_node = min(pes_per_node, max_tasks_per_node / thread_count)
diff --git a/cime/utils/python/CIME/case.py b/cime/utils/python/CIME/case.py
index 33d589e..b078349 100644
--- a/cime/utils/python/CIME/case.py
+++ b/cime/utils/python/CIME/case.py
@@ -1098,8 +1098,8 @@ class Case(object):
         executable, args = env_mach_specific.get_mpirun(self, mpi_attribs, job=job)
 
         # special case for aprun
-        if executable == "aprun":
-            return get_aprun_cmd_for_case(self, run_exe)[0] + " " + run_misc_suffix
+        if "aprun" in executable:
+            return executable + " " + get_aprun_cmd_for_case(self, run_exe)[0] + " " + run_misc_suffix
         else:
             mpi_arg_string = " ".join(args.values())

And with this patch, CIME correctly runs the ddt --connect aprun command with the correct aprun arguments.