Testing nbody blocksize with impi

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
This commit is contained in:
Rodrigo Arias 2020-08-25 18:39:31 +02:00
parent cfa5187988
commit 09c2b9005a

View File

@ -17,14 +17,18 @@ let
# Set the configuration for the experiment
config = {
cc = [ bsc.icc ];
blocksize = [ 1024 2048 4096 8192 ];
blocksize = [ 1024 ];
};
extraConfig = {
particles = 16384;
gitBranch = "garlic/mpi+send";
mpi = bsc.impi;
particles = 1024*128;
timesteps = 10;
ntasks = 1;
nnodes = 1;
ntasksPerNode = "48";
nodes = "1";
time = "02:00:00";
qos = "debug";
};
# Compute the cartesian product of all configurations
@ -32,11 +36,11 @@ let
filteredConfigs = with builtins; filter (c: c.blocksize <= 4096) allConfigs;
configs = map (conf: conf // extraConfig) filteredConfigs;
sbatch = conf: app: sbatchWrapper {
sbatch = conf: app: with conf; sbatchWrapper {
app = app;
nixPrefix = "/gpfs/projects/bsc15/nix";
exclusive = false;
ntasks = "${toString conf.ntasks}";
exclusive = true;
inherit ntasksPerNode nodes time qos;
};
srun = app: srunWrapper {
@ -48,20 +52,25 @@ let
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 blocksize; };
nbody.override { inherit cc mpi blocksize gitBranch; };
pipeline = conf:
sbatch conf (
srun (
nixsetupWrapper (
controlWrapper (
srun (
nixsetupWrapper (
argv conf (
nbodyFn conf)))));
nbodyFn conf))))));
# Ideally it should look like this:
#pipeline = sbatch nixsetup control argv nbodyFn;