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