Update experiments with cpusPerTask

Try to avoid manually setting the hardware specs and rather use
the hw attrset.
This commit is contained in:
Rodrigo Arias 2020-11-17 11:17:57 +01:00
parent 641e752bd5
commit 5e50ef19fe
7 changed files with 22 additions and 12 deletions

View File

@ -29,22 +29,25 @@ let
# Generate the complete configuration for each unit # Generate the complete configuration for each unit
genConf = with bsc; c: targetMachine.config // rec { genConf = with bsc; c: targetMachine.config // rec {
expName = "creams-ss";
unitName = "${expName}-${toString nodes}-${gitBranch}";
inherit (targetMachine.config) hw;
# Options for creams # Options for creams
cc = icc; cc = icc;
mpi = impi; mpi = impi;
inherit (c.input) granul; inherit (c.input) granul;
inherit (c) gitBranch; inherit (c) gitBranch;
nprocz = 2 * nodes; nprocz = hw.socketsPerNode * nodes;
# Repeat the execution of each unit 30 times # Repeat the execution of each unit 30 times
loops = 30; loops = 30;
# Resources # Resources
qos = "debug"; qos = "debug";
ntasksPerNode = 2; ntasksPerNode = hw.socketsPerNode;
inherit (c.input) time nodes; inherit (c.input) time nodes;
cpuBind = "socket,verbose"; cpusPerTask = hw.cpusPerSocket;
jobName = "creams-ss-${toString nodes}-${gitBranch}"; jobName = unitName;
}; };
# Compute the array of configurations # Compute the array of configurations

View File

@ -22,6 +22,9 @@ let
# Generate the complete configuration for each unit # Generate the complete configuration for each unit
genConf = with bsc; c: targetMachine.config // rec { genConf = with bsc; c: targetMachine.config // rec {
expName = "creams-ss";
unitName = "${expName}-${toString nodes}-${gitBranch}";
inherit (targetMachine.config) hw;
# Options for creams # Options for creams
cc = icc; cc = icc;
mpi = impi; mpi = impi;
@ -36,8 +39,8 @@ let
qos = "debug"; qos = "debug";
ntasksPerNode = 48; ntasksPerNode = 48;
inherit (c.input) time nodes; inherit (c.input) time nodes;
cpuBind = "rank,verbose"; cpusPerTask = hw.cpusPerSocket;
jobName = "creams-ss-${toString nodes}-${gitBranch}"; jobName = unitName;
}; };
# Compute the array of configurations # Compute the array of configurations

View File

@ -35,7 +35,7 @@ let
nodes = 1; nodes = 1;
time = "02:00:00"; time = "02:00:00";
# Assign one socket to each task (only one process) # Assign one socket to each task (only one process)
cpuBind = "verbose,sockets"; cpusPerTask = hw.cpusPerSocket;
jobName = unitName; jobName = unitName;
}; };

View File

@ -18,6 +18,7 @@ let
expName = "${c.expName}.gen"; expName = "${c.expName}.gen";
unitName = "${expName}.n${toString n.x}"; unitName = "${expName}.n${toString n.x}";
inherit (targetMachine.config) hw;
# hpcg options # hpcg options
cc = bsc.icc; cc = bsc.icc;
mcxx = bsc.mcxx; mcxx = bsc.mcxx;
@ -36,7 +37,7 @@ let
nodes = 1; nodes = 1;
time = "02:00:00"; time = "02:00:00";
# task in one socket # task in one socket
cpuBind = "verbose,mask_cpu:0xffffff"; cpusPerTask = hw.cpusPerSocket;
jobName = unitName; jobName = unitName;
}; };
@ -74,7 +75,7 @@ let
inputTre = genExp configs; inputTre = genExp configs;
#inputExp = getExperimentStage inputTrebuchet; #inputExp = getExperimentStage inputTrebuchet;
#inputExp = trace inputTrebuchet inputTrebuchet.nextStage; #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 # Then load the result. This is only used to ensure that we have the
# results, so it has been executed. # results, so it has been executed.
inputRes = resultFromTrebuchet inputTre; inputRes = resultFromTrebuchet inputTre;

View File

@ -24,6 +24,7 @@ let
expName = "hpcg.oss"; expName = "hpcg.oss";
unitName = "${expName}.nb${toString nblocks}"; unitName = "${expName}.nb${toString nblocks}";
inherit (targetMachine.config) hw;
# hpcg options # hpcg options
n = c.n; n = c.n;
nblocks = c.nblocks; nblocks = c.nblocks;
@ -42,7 +43,7 @@ let
nodes = 1; nodes = 1;
time = "02:00:00"; time = "02:00:00";
# task in one socket # task in one socket
cpuBind = "verbose,mask_cpu:0xffffff"; cpusPerTask = hw.cpusPerSocket;
jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}"; jobName = "hpcg-${toString n.x}-${toString n.y}-${toString n.z}-${gitBranch}";
}; };

View File

@ -18,6 +18,7 @@ let
genConf = with bsc; c: targetMachine.config // rec { genConf = with bsc; c: targetMachine.config // rec {
expName = "saiph.granularity"; expName = "saiph.granularity";
unitName = "${expName}.nbx-nby-nbz-${toString nbx}-${toString nby}-${toString nbz}"; unitName = "${expName}.nbx-nby-nbz-${toString nbx}-${toString nby}-${toString nbz}";
inherit (targetMachine.config) hw;
# saiph options # saiph options
nbx = c.nb; nbx = c.nb;
@ -34,7 +35,7 @@ let
time = "00:30:00"; time = "00:30:00";
ntasksPerNode = 1; ntasksPerNode = 1;
nodes = 1; nodes = 1;
cpuBind = "sockets,verbose"; cpusPerTask = hw.cpusPerSocket;
jobName = "${unitName}-${gitBranch}"; jobName = "${unitName}-${gitBranch}";
}; };

View File

@ -18,6 +18,7 @@ let
genConf = with bsc; c: targetMachine.config // rec { genConf = with bsc; c: targetMachine.config // rec {
expName = "saiph.numcomm"; expName = "saiph.numcomm";
unitName = "${expName}.nc-${toString numComm}"; unitName = "${expName}.nc-${toString numComm}";
inherit (targetMachine.config) hw;
# saiph options # saiph options
inherit (c) numComm; inherit (c) numComm;
@ -32,7 +33,7 @@ let
time = "02:00:00"; time = "02:00:00";
ntasksPerNode = 2; ntasksPerNode = 2;
nodes = 1; nodes = 1;
cpuBind = "sockets,verbose"; cpusPerTask = hw.cpusPerSocket;
jobName = "saiph-${toString numComm}-${gitBranch}"; jobName = "saiph-${toString numComm}-${gitBranch}";
}; };