From 5e50ef19fe9062924a5d522c4589872c9f680192 Mon Sep 17 00:00:00 2001 From: Rodrigo Arias Mallo Date: Tue, 17 Nov 2020 11:17:57 +0100 Subject: [PATCH] Update experiments with cpusPerTask Try to avoid manually setting the hardware specs and rather use the hw attrset. --- garlic/exp/creams/ss+hybrid.nix | 11 +++++++---- garlic/exp/creams/ss+pure.nix | 7 +++++-- garlic/exp/heat/test.nix | 2 +- garlic/exp/hpcg/gen.nix | 5 +++-- garlic/exp/hpcg/oss.nix | 3 ++- garlic/exp/saiph/granularity.nix | 3 ++- garlic/exp/saiph/numcomm.nix | 3 ++- 7 files changed, 22 insertions(+), 12 deletions(-) diff --git a/garlic/exp/creams/ss+hybrid.nix b/garlic/exp/creams/ss+hybrid.nix index e7fd3fb..5414837 100644 --- a/garlic/exp/creams/ss+hybrid.nix +++ b/garlic/exp/creams/ss+hybrid.nix @@ -29,22 +29,25 @@ let # Generate the complete configuration for each unit genConf = with bsc; c: targetMachine.config // rec { + expName = "creams-ss"; + unitName = "${expName}-${toString nodes}-${gitBranch}"; + inherit (targetMachine.config) hw; # Options for creams cc = icc; mpi = impi; inherit (c.input) granul; inherit (c) gitBranch; - nprocz = 2 * nodes; + nprocz = hw.socketsPerNode * nodes; # Repeat the execution of each unit 30 times loops = 30; # Resources qos = "debug"; - ntasksPerNode = 2; + ntasksPerNode = hw.socketsPerNode; inherit (c.input) time nodes; - cpuBind = "socket,verbose"; - jobName = "creams-ss-${toString nodes}-${gitBranch}"; + cpusPerTask = hw.cpusPerSocket; + jobName = unitName; }; # Compute the array of configurations diff --git a/garlic/exp/creams/ss+pure.nix b/garlic/exp/creams/ss+pure.nix index d2071cb..1acaec1 100644 --- a/garlic/exp/creams/ss+pure.nix +++ b/garlic/exp/creams/ss+pure.nix @@ -22,6 +22,9 @@ let # Generate the complete configuration for each unit genConf = with bsc; c: targetMachine.config // rec { + expName = "creams-ss"; + unitName = "${expName}-${toString nodes}-${gitBranch}"; + inherit (targetMachine.config) hw; # Options for creams cc = icc; mpi = impi; @@ -36,8 +39,8 @@ let qos = "debug"; ntasksPerNode = 48; inherit (c.input) time nodes; - cpuBind = "rank,verbose"; - jobName = "creams-ss-${toString nodes}-${gitBranch}"; + cpusPerTask = hw.cpusPerSocket; + jobName = unitName; }; # Compute the array of configurations diff --git a/garlic/exp/heat/test.nix b/garlic/exp/heat/test.nix index a2d0852..b22a057 100644 --- a/garlic/exp/heat/test.nix +++ b/garlic/exp/heat/test.nix @@ -35,7 +35,7 @@ let nodes = 1; time = "02:00:00"; # Assign one socket to each task (only one process) - cpuBind = "verbose,sockets"; + cpusPerTask = hw.cpusPerSocket; jobName = unitName; }; diff --git a/garlic/exp/hpcg/gen.nix b/garlic/exp/hpcg/gen.nix index 4542b78..cb16cf6 100644 --- a/garlic/exp/hpcg/gen.nix +++ b/garlic/exp/hpcg/gen.nix @@ -18,6 +18,7 @@ let expName = "${c.expName}.gen"; unitName = "${expName}.n${toString n.x}"; + inherit (targetMachine.config) hw; # hpcg options cc = bsc.icc; mcxx = bsc.mcxx; @@ -36,7 +37,7 @@ let nodes = 1; time = "02:00:00"; # task in one socket - cpuBind = "verbose,mask_cpu:0xffffff"; + cpusPerTask = hw.cpusPerSocket; jobName = unitName; }; @@ -74,7 +75,7 @@ let inputTre = genExp configs; #inputExp = getExperimentStage inputTrebuchet; #inputExp = trace inputTrebuchet inputTrebuchet.nextStage; - inputExp = trace (inputTre.name) (getExperimentStage inputTre); + inputExp = getExperimentStage inputTre; # Then load the result. This is only used to ensure that we have the # results, so it has been executed. inputRes = resultFromTrebuchet inputTre; diff --git a/garlic/exp/hpcg/oss.nix b/garlic/exp/hpcg/oss.nix index 002bf12..48b4ef2 100644 --- a/garlic/exp/hpcg/oss.nix +++ b/garlic/exp/hpcg/oss.nix @@ -24,6 +24,7 @@ let expName = "hpcg.oss"; unitName = "${expName}.nb${toString nblocks}"; + inherit (targetMachine.config) hw; # hpcg options n = c.n; nblocks = c.nblocks; @@ -42,7 +43,7 @@ let nodes = 1; time = "02:00:00"; # task in one socket - cpuBind = "verbose,mask_cpu:0xffffff"; + cpusPerTask = hw.cpusPerSocket; jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; diff --git a/garlic/exp/saiph/granularity.nix b/garlic/exp/saiph/granularity.nix index 1efd56e..f0db5c5 100644 --- a/garlic/exp/saiph/granularity.nix +++ b/garlic/exp/saiph/granularity.nix @@ -18,6 +18,7 @@ let genConf = with bsc; c: targetMachine.config // rec { expName = "saiph.granularity"; unitName = "${expName}.nbx-nby-nbz-${toString nbx}-${toString nby}-${toString nbz}"; + inherit (targetMachine.config) hw; # saiph options nbx = c.nb; @@ -34,7 +35,7 @@ let time = "00:30:00"; ntasksPerNode = 1; nodes = 1; - cpuBind = "sockets,verbose"; + cpusPerTask = hw.cpusPerSocket; jobName = "${unitName}-${gitBranch}"; }; diff --git a/garlic/exp/saiph/numcomm.nix b/garlic/exp/saiph/numcomm.nix index 50b1e0a..891f78e 100644 --- a/garlic/exp/saiph/numcomm.nix +++ b/garlic/exp/saiph/numcomm.nix @@ -18,6 +18,7 @@ let genConf = with bsc; c: targetMachine.config // rec { expName = "saiph.numcomm"; unitName = "${expName}.nc-${toString numComm}"; + inherit (targetMachine.config) hw; # saiph options inherit (c) numComm; @@ -32,7 +33,7 @@ let time = "02:00:00"; ntasksPerNode = 2; nodes = 1; - cpuBind = "sockets,verbose"; + cpusPerTask = hw.cpusPerSocket; jobName = "saiph-${toString numComm}-${gitBranch}"; };