Rodrigo Arias Mallo
09c2b9005a
Weird run times with srun: Two exceed 20%. Relative times: 0.998649 0.998936 0.999409 1.00018 1.00191 0.998684 0.998936 0.999432 1.00041 1.00222 0.998776 0.999065 0.999527 1.00126 1.0024 0.998786 0.999084 0.999558 1.00138 1.00242 0.998856 0.999102 0.999727 1.00155 1.25585 0.998895 0.9992 0.999849 1.0018 1.27138
82 lines
1.6 KiB
Nix
82 lines
1.6 KiB
Nix
{
|
|
bsc
|
|
, nbody
|
|
, genApp
|
|
, genConfigs
|
|
|
|
# Wrappers
|
|
, launchWrapper
|
|
, sbatchWrapper
|
|
, srunWrapper
|
|
, argvWrapper
|
|
, controlWrapper
|
|
, nixsetupWrapper
|
|
}:
|
|
|
|
let
|
|
# Set the configuration for the experiment
|
|
config = {
|
|
cc = [ bsc.icc ];
|
|
blocksize = [ 1024 ];
|
|
};
|
|
|
|
extraConfig = {
|
|
gitBranch = "garlic/mpi+send";
|
|
mpi = bsc.impi;
|
|
particles = 1024*128;
|
|
timesteps = 10;
|
|
ntasksPerNode = "48";
|
|
nodes = "1";
|
|
time = "02:00:00";
|
|
qos = "debug";
|
|
};
|
|
|
|
# Compute the cartesian product of all configurations
|
|
allConfigs = genConfigs config;
|
|
filteredConfigs = with builtins; filter (c: c.blocksize <= 4096) allConfigs;
|
|
configs = map (conf: conf // extraConfig) filteredConfigs;
|
|
|
|
sbatch = conf: app: with conf; sbatchWrapper {
|
|
app = app;
|
|
nixPrefix = "/gpfs/projects/bsc15/nix";
|
|
exclusive = true;
|
|
inherit ntasksPerNode nodes time qos;
|
|
};
|
|
|
|
srun = app: srunWrapper {
|
|
app = app;
|
|
nixPrefix = "/gpfs/projects/bsc15/nix";
|
|
};
|
|
|
|
argv = conf: app:
|
|
with conf;
|
|
argvWrapper {
|
|
app = app;
|
|
env = ''
|
|
set -e
|
|
export I_MPI_THREAD_SPLIT=1
|
|
'';
|
|
argv = ''(-t ${toString timesteps} -p ${toString particles})'';
|
|
};
|
|
|
|
nbodyFn = conf:
|
|
with conf;
|
|
nbody.override { inherit cc mpi blocksize gitBranch; };
|
|
|
|
pipeline = conf:
|
|
sbatch conf (
|
|
nixsetupWrapper (
|
|
controlWrapper (
|
|
srun (
|
|
nixsetupWrapper (
|
|
argv conf (
|
|
nbodyFn conf))))));
|
|
|
|
# Ideally it should look like this:
|
|
#pipeline = sbatch nixsetup control argv nbodyFn;
|
|
|
|
jobs = map pipeline configs;
|
|
|
|
in
|
|
launchWrapper jobs
|