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:
parent
99beac9b23
commit
6422741cb7
@ -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}"
|
@ -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; }
|
|
@ -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 {
|
||||||
|
Loading…
Reference in New Issue
Block a user