2021-04-07 12:59:05 +02:00
|
|
|
{
|
|
|
|
stdenv
|
2022-09-01 16:27:29 +02:00
|
|
|
, lib
|
2021-04-07 12:59:05 +02:00
|
|
|
, stdexp
|
|
|
|
, bsc
|
|
|
|
, targetMachine
|
|
|
|
, stages
|
|
|
|
}:
|
|
|
|
|
|
|
|
with builtins;
|
2022-09-01 16:27:29 +02:00
|
|
|
with lib;
|
2021-04-07 12:59:05 +02:00
|
|
|
|
|
|
|
let
|
|
|
|
|
|
|
|
machineConfig = targetMachine.config;
|
|
|
|
|
|
|
|
# Initial variable configuration
|
|
|
|
varConf = with bsc; {
|
|
|
|
sizeKB = range 5 25;
|
|
|
|
mpi = [ impi ];
|
|
|
|
#mpi = [ impi bsc.openmpi mpich ]; #psmpi ];
|
|
|
|
PSM2_MQ_EAGER_SDMA_SZ_KB = [ 16 ];
|
|
|
|
PSM2_MTU_KB = [ 8 10 ];
|
|
|
|
};
|
|
|
|
|
|
|
|
# Generate the complete configuration for each unit
|
|
|
|
genConf = with bsc; c: targetMachine.config // rec {
|
|
|
|
inherit (machineConfig) hw;
|
|
|
|
nodes = 2;
|
|
|
|
ntasksPerNode = 1;
|
|
|
|
cpusPerTask = 1;
|
|
|
|
time = "00:30:00";
|
|
|
|
qos = "debug";
|
|
|
|
loops = 10;
|
|
|
|
iterations = 50000;
|
|
|
|
#FIXME: Notice the switchover is 16000 and MTU is 10240
|
|
|
|
PSM2_MQ_EAGER_SDMA_SZ = PSM2_MQ_EAGER_SDMA_SZ_KB * 1000;
|
|
|
|
PSM2_MTU = PSM2_MTU_KB * 1024;
|
|
|
|
expName = "osu-bw";
|
|
|
|
unitName = expName +
|
|
|
|
"-size.${toString sizeKB}K" +
|
|
|
|
"-mtu.${toString PSM2_MTU_KB}K" +
|
|
|
|
"-sdma.${toString PSM2_MQ_EAGER_SDMA_SZ_KB}K";
|
|
|
|
jobName = expName;
|
|
|
|
inherit (c) mpi sizeKB
|
|
|
|
PSM2_MQ_EAGER_SDMA_SZ_KB
|
|
|
|
PSM2_MTU_KB;
|
|
|
|
|
|
|
|
size = sizeKB * 1024;
|
|
|
|
};
|
|
|
|
|
|
|
|
# Compute the array of configurations
|
|
|
|
configs = stdexp.buildConfigs {
|
|
|
|
inherit varConf genConf;
|
|
|
|
};
|
|
|
|
|
|
|
|
exec = {nextStage, conf, ...}: with conf; stages.exec {
|
|
|
|
inherit nextStage;
|
|
|
|
|
|
|
|
program = "${nextStage}/bin/osu_bw";
|
|
|
|
|
|
|
|
env = ''
|
|
|
|
export PSM2_MQ_EAGER_SDMA_SZ=${toString PSM2_MQ_EAGER_SDMA_SZ}
|
|
|
|
export PSM2_MTU=${toString PSM2_MTU}
|
|
|
|
export PSM2_TRACEMASK=0x101
|
|
|
|
export PSM2_MQ_PRINT_STATS=-1
|
|
|
|
'';
|
|
|
|
|
|
|
|
argv = [
|
|
|
|
"-m" "${toString size}:${toString size}"
|
|
|
|
"-i" iterations
|
|
|
|
];
|
|
|
|
};
|
|
|
|
|
|
|
|
program = {nextStage, conf, ...}: bsc.osumb.override {
|
|
|
|
# Use the specified MPI implementation
|
|
|
|
inherit (conf) mpi;
|
|
|
|
};
|
|
|
|
|
|
|
|
pipeline = stdexp.stdPipeline ++ [ exec program ];
|
|
|
|
|
|
|
|
in
|
|
|
|
|
|
|
|
stdexp.genExperiment { inherit configs pipeline; }
|