From 58e3d48a16ad5b1b6f9f254fad3b1ae9fcabded3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Pe=C3=B1acoba?= Date: Fri, 30 Oct 2020 14:05:40 +0100 Subject: [PATCH] Use mask_cpu and n.x n.y n.z instead of n --- garlic/exp/hpcg/mpi+omp.nix | 26 ++++++++++++++++---------- garlic/exp/hpcg/mpi.nix | 21 +++++++++++---------- garlic/exp/hpcg/omp.nix | 21 +++++++++++++-------- garlic/exp/hpcg/oss.nix | 15 ++++++++------- garlic/exp/hpcg/serial.nix | 14 +++++++------- 5 files changed, 55 insertions(+), 42 deletions(-) diff --git a/garlic/exp/hpcg/mpi+omp.nix b/garlic/exp/hpcg/mpi+omp.nix index e4facc5..261979f 100644 --- a/garlic/exp/hpcg/mpi+omp.nix +++ b/garlic/exp/hpcg/mpi+omp.nix @@ -11,15 +11,16 @@ with stdenv.lib; let # Initial variable configuration varConf = with bsc; { - n = [ 104 64 ]; + n = [ { x = 64; y = 64; z = 88; } ]; + nblocks = [ 12 24 48 96 192 384 ]; }; # Generate the complete configuration for each unit genConf = with bsc; c: targetMachine.config // rec { # hpcg options n = c.n; - cc = icc; - mpi = impi; + cc = bsc.icc; + mpi = bsc.impi; gitBranch = "garlic/mpi+omp"; # Repeat the execution of each unit 30 times @@ -27,11 +28,12 @@ let # Resources qos = "debug"; - ntasksPerNode = 48; - nodes = 1; + ntasksPerNode = 1; + nodes = 2; time = "02:00:00"; - cpuBind = "sockets,verbose"; - jobName = "hpcg-${toString n}-${gitBranch}"; + # Each task in different socket + cpuBind = "verbose,mask_cpu:0xffffff"; + jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; # Compute the array of configurations @@ -41,10 +43,14 @@ let exec = {nextStage, conf, ...}: with conf; stages.exec { inherit nextStage; + env = '' + OMP_PROC_BIND=true + OMP_NUM_THREADS=12 + ''; argv = [ - "--nx=${toString n}" - "--ny=${toString n}" - "--nz=${toString n}" + "--nx=${toString n.x}" + "--ny=${toString n.y}" + "--nz=${toString n.z}" ]; }; diff --git a/garlic/exp/hpcg/mpi.nix b/garlic/exp/hpcg/mpi.nix index 331bd91..d57dc88 100644 --- a/garlic/exp/hpcg/mpi.nix +++ b/garlic/exp/hpcg/mpi.nix @@ -11,15 +11,15 @@ with stdenv.lib; let # Initial variable configuration varConf = with bsc; { - n = [ 104 64 ]; + n = [ { x = 64; y = 64; z = 88; } ]; }; # Generate the complete configuration for each unit genConf = with bsc; c: targetMachine.config // rec { # hpcg options n = c.n; - cc = icc; - mpi = impi; + cc = bsc.icc; + mpi = bsc.impi; gitBranch = "garlic/mpi"; # Repeat the execution of each unit 30 times @@ -27,11 +27,12 @@ let # Resources qos = "debug"; - ntasksPerNode = 48; - nodes = 1; + ntasksPerNode = 1; + nodes = 24; time = "02:00:00"; - cpuBind = "sockets,verbose"; - jobName = "hpcg-${toString n}-${gitBranch}"; + # Each task in different socket + cpuBind = "verbose,mask_cpu:0x1"; + jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; # Compute the array of configurations @@ -42,9 +43,9 @@ let exec = {nextStage, conf, ...}: with conf; stages.exec { inherit nextStage; argv = [ - "--nx=${toString n}" - "--ny=${toString n}" - "--nz=${toString n}" + "--nx=${toString n.x}" + "--ny=${toString n.y}" + "--nz=${toString n.z}" ]; }; diff --git a/garlic/exp/hpcg/omp.nix b/garlic/exp/hpcg/omp.nix index 84f682c..aca3a5b 100644 --- a/garlic/exp/hpcg/omp.nix +++ b/garlic/exp/hpcg/omp.nix @@ -11,8 +11,8 @@ with stdenv.lib; let # Initial variable configuration varConf = with bsc; { - n = [ 200 104 64 ]; - nblocks = [ 128 ]; + n = [ { x = 128; y = 256; z = 264; } ]; + nblocks = [ 12 24 48 96 192 384 ]; }; # Generate the complete configuration for each unit @@ -20,7 +20,7 @@ let # hpcg options n = c.n; nblocks = c.nblocks; - cc = icc; + cc = bsc.icc; mpi = null; # TODO: Remove this for omp gitBranch = "garlic/omp"; @@ -32,8 +32,9 @@ let ntasksPerNode = 1; nodes = 1; time = "02:00:00"; - cpuBind = "sockets,verbose"; - jobName = "hpcg-${toString n}-${gitBranch}"; + # task in one socket + cpuBind = "verbose,mask_cpu:0xffffff"; + jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; # Compute the array of configurations @@ -43,10 +44,14 @@ let exec = {nextStage, conf, ...}: with conf; stages.exec { inherit nextStage; + env = '' + OMP_PROC_BIND=true + OMP_NUM_THREADS=24 + ''; argv = [ - "--nx=${toString n}" - "--ny=${toString n}" - "--nz=${toString n}" + "--nx=${toString n.x}" + "--ny=${toString n.y}" + "--nz=${toString n.z}" "--nblocks=${toString nblocks}" ]; }; diff --git a/garlic/exp/hpcg/oss.nix b/garlic/exp/hpcg/oss.nix index 4f353bb..6695023 100644 --- a/garlic/exp/hpcg/oss.nix +++ b/garlic/exp/hpcg/oss.nix @@ -11,8 +11,8 @@ with stdenv.lib; let # Initial variable configuration varConf = with bsc; { - n = [ 200 104 64 ]; - nblocks = [ 128 ]; + n = [ { x = 128; y = 256; z = 264; } ]; + nblocks = [ 12 24 48 96 192 384 ]; }; # Generate the complete configuration for each unit @@ -34,8 +34,9 @@ let ntasksPerNode = 1; nodes = 1; time = "02:00:00"; - cpuBind = "sockets,verbose"; - jobName = "hpcg-${toString n}-${gitBranch}"; + # task in one socket + cpuBind = "verbose,mask_cpu:0xffffff"; + jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; # Compute the array of configurations @@ -47,9 +48,9 @@ let inherit nextStage; env = "NANOS6_DEPENDENCIES=discrete"; argv = [ - "--nx=${toString n}" - "--ny=${toString n}" - "--nz=${toString n}" + "--nx=${toString n.x}" + "--ny=${toString n.y}" + "--nz=${toString n.z}" "--nblocks=${toString nblocks}" ]; }; diff --git a/garlic/exp/hpcg/serial.nix b/garlic/exp/hpcg/serial.nix index 91ce793..90356ef 100644 --- a/garlic/exp/hpcg/serial.nix +++ b/garlic/exp/hpcg/serial.nix @@ -11,7 +11,7 @@ with stdenv.lib; let # Initial variable configuration varConf = with bsc; { - n = [ 104 64 ]; + n = [ { x = 128; y = 256; z = 264; } ]; }; # Generate the complete configuration for each unit @@ -27,11 +27,11 @@ let # Resources qos = "debug"; - ntasksPerNode = 48; + ntasksPerNode = 1; nodes = 1; time = "02:00:00"; - cpuBind = "sockets,verbose"; - jobName = "hpcg-${toString n}-${gitBranch}"; + cpuBind = "verbose,mask_cpu:0x1"; + jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; }; # Compute the array of configurations @@ -42,9 +42,9 @@ let exec = {nextStage, conf, ...}: with conf; stages.exec { inherit nextStage; argv = [ - "--nx=${toString n}" - "--ny=${toString n}" - "--nz=${toString n}" + "--nx=${toString n.x}" + "--ny=${toString n.y}" + "--nz=${toString n.z}" ]; };