From 281a64f47413ff00bfb287a49fae5f6c5ad46bb0 Mon Sep 17 00:00:00 2001
From: Martin Bauer <di29raz2@login03.sng.lrz.de>
Date: Fri, 5 Apr 2019 12:25:31 +0200
Subject: [PATCH] Supermucng supports openmp

---
 python/waLBerla/tools/jobscripts/supermucng.job |  4 ++--
 python/waLBerla/tools/jobscripts/supermucng.py  | 10 ++++++----
 2 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/python/waLBerla/tools/jobscripts/supermucng.job b/python/waLBerla/tools/jobscripts/supermucng.job
index 0691c51af..f361c0056 100644
--- a/python/waLBerla/tools/jobscripts/supermucng.job
+++ b/python/waLBerla/tools/jobscripts/supermucng.job
@@ -2,8 +2,8 @@
 #SBATCH --job-name={job_name}
 #SBATCH --time={wall_time}
 #SBATCH --nodes={nodes}
-#SBATCH -o {{output_file}}
-#SBATCH -o {{error_file}}
+#SBATCH -o {output_file}
+#SBATCH -o {error_file}
 #SBATCH --ntasks-per-core={tasks_per_core}
 #SBATCH --ntasks-per-node={tasks_per_node}
 #SBATCH --cpus-per-task={cpus_per_task}
diff --git a/python/waLBerla/tools/jobscripts/supermucng.py b/python/waLBerla/tools/jobscripts/supermucng.py
index cce31dadc..3b51c7c0f 100644
--- a/python/waLBerla/tools/jobscripts/supermucng.py
+++ b/python/waLBerla/tools/jobscripts/supermucng.py
@@ -50,7 +50,9 @@ def createJobscript(wall_time=None, nodes=None, cores=None, job_class=None, init
         else:
             job_class = 'special'
 
-    tasks_per_node = min(cores_per_node, cores)
+    if  cores_per_node % omp_num_threads != 0:
+        raise ValueError("Could not divede cores_per_node %d to omp_num_threads %d", (cores_per_node, omp_num_threads))
+    tasks_per_node = min(cores_per_node//omp_num_threads, cores)
 
     omp_places = "cores" if hyperthreading == 1 else "threads"
 
@@ -75,17 +77,17 @@ def createJobscript(wall_time=None, nodes=None, cores=None, job_class=None, init
                                                additional_lines=additional_lines,
                                                error_file=error_file)
 
-    exec_line = "mpiexec -n %d %s %s \n"
+    exec_line = "srun %s %s \n"
 
     if exe_name is not None:
         for param_file in parameter_files:
-            result += exec_line % (cores, exe_name, param_file)
+            result += exec_line % (exe_name, param_file)
 
     for exe_paramfile_pair in commands:
         if type(exe_paramfile_pair) is not tuple:
             result += exe_paramfile_pair + "\n"
         else:
-            result += exec_line % (cores, exe_paramfile_pair[0], exe_paramfile_pair[1])
+            result += exec_line % (exe_paramfile_pair[0], exe_paramfile_pair[1])
 
     return result
 
-- 
GitLab