fwi: merge io experiments into one file

The enableExtended parameter control if the experiment runs with
multiple nodes or only one.
This commit is contained in:
Rodrigo Arias 2021-04-12 19:27:45 +02:00
parent 99beac9b23
commit 6422741cb7
3 changed files with 12 additions and 100 deletions

View File

@ -1,9 +1,9 @@
# Strong scaling test for FWI variants based on tasks with and without I/O. # Test FWI variants based on tasks with and without I/O.
# This experiment solves a computationally expensive input which brings the # This experiment solves a computationally expensive input which brings the
# storage devices to saturation when I/O is enabled. the same input us run # storage devices to saturation when I/O is enabled. The same input runs
# without I/O for comparison purposes.. Also, the experiments are runt for a # without I/O for comparison purposes. Also, a range of block sizes
# range of block sizes deemed as efficient according to the granularity # deemed as efficient according to the granularity experiment are
# experiment. # explored.
{ {
stdenv stdenv
@ -12,6 +12,7 @@
, targetMachine , targetMachine
, stages , stages
, callPackage , callPackage
, enableExtended ? false
}: }:
with stdenv.lib; with stdenv.lib;
@ -24,13 +25,10 @@ let
# Initial variable configuration # Initial variable configuration
varConf = { varConf = {
gitBranch = [ gitBranch = [ "garlic/tampi+send+oss+task" ];
"garlic/tampi+send+oss+task"
];
blocksize = [ 1 2 4 8 ]; blocksize = [ 1 2 4 8 ];
n = [ {nx=500; nz=500; ny=16000;} ]; n = [ {nx=500; nz=500; ny=16000;} ];
nodes = [ 1 2 4 8 16 ]; nodes = if (enableExtended) then range2 1 16 else [ 4 ];
ioFreq = [ 9999 (-1) ]; ioFreq = [ 9999 (-1) ];
}; };
@ -38,7 +36,7 @@ let
# Generate the complete configuration for each unit # Generate the complete configuration for each unit
genConf = c: targetMachine.config // rec { genConf = c: targetMachine.config // rec {
expName = "fwi-ss-io"; expName = "fwi-io";
unitName = "${expName}" unitName = "${expName}"
+ "-nodes${toString nodes}" + "-nodes${toString nodes}"
+ "-bs${toString blocksize}" + "-bs${toString blocksize}"

View File

@ -1,86 +0,0 @@
# This experiment compares the effect of not using I/O versus using O_DIRECT |
# O_DSYNC enabled I/O. This is a reduced version of the strong_scaling_io
# experiment.
{
stdenv
, stdexp
, bsc
, targetMachine
, stages
, callPackage
}:
with stdenv.lib;
let
common = callPackage ./common.nix {};
inherit (common) getConfigs getResources pipeline;
inherit (targetMachine) fs;
# Initial variable configuration
varConf = {
gitBranch = [
"garlic/tampi+send+oss+task"
# "garlic/mpi+send+omp+task"
# "garlic/mpi+send+oss+task"
# "garlic/mpi+send+seq"
# "garlic/oss+task"
# "garlic/omp+task"
# "garlic/seq"
];
blocksize = [ 1 ];
n = [
{nx=500; nz=500; ny=16000;}
];
nodes = [ 4 ];
ioFreq = [ 9999 (-1) ];
};
machineConfig = targetMachine.config;
# Generate the complete configuration for each unit
genConf = with bsc; c: targetMachine.config // rec {
expName = "fwi-sync-io";
unitName = "${expName}"
+ "-ioFreq${toString ioFreq}"
+ "-${toString gitBranch}";
inherit (machineConfig) hw;
inherit (c) gitBranch blocksize;
inherit (c.n) nx ny nz;
# Other FWI parameters
ioFreq = c.ioFreq;
# Repeat the execution of each unit several times
loops = 10;
# Resources
inherit (getResources { inherit gitBranch hw; })
cpusPerTask ntasksPerNode;
nodes = c.nodes;
qos = "debug";
time = "02:00:00";
jobName = unitName;
enableCTF = false;
# Enable permissions to write in the local storage
extraMounts = [ fs.local.temp ];
tempDir = fs.local.temp;
};
configs = getConfigs {
inherit varConf genConf;
};
in
stdexp.genExperiment { inherit configs pipeline; }

View File

@ -97,12 +97,12 @@
test = callPackage ./lulesh/test.nix { }; test = callPackage ./lulesh/test.nix { };
}; };
fwi = { fwi = rec {
granularity = callPackage ./fwi/granularity.nix { }; granularity = callPackage ./fwi/granularity.nix { };
ss = callPackage ./fwi/ss.nix { }; ss = callPackage ./fwi/ss.nix { };
ss-io = callPackage ./fwi/ss-io.nix { };
reuse = callPackage ./fwi/reuse.nix { }; reuse = callPackage ./fwi/reuse.nix { };
sync-io = callPackage ./fwi/sync-io.nix { }; io = callPackage ./fwi/io.nix { };
ioBig = io.override { enableExtended = true; };
}; };
osu = rec { osu = rec {