diff --git a/garlic/exp/fwi/ss-io.nix b/garlic/exp/fwi/io.nix similarity index 75% rename from garlic/exp/fwi/ss-io.nix rename to garlic/exp/fwi/io.nix index a561fc9..d0e8317 100644 --- a/garlic/exp/fwi/ss-io.nix +++ b/garlic/exp/fwi/io.nix @@ -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 -# storage devices to saturation when I/O is enabled. the same input us run -# without I/O for comparison purposes.. Also, the experiments are runt for a -# range of block sizes deemed as efficient according to the granularity -# experiment. +# storage devices to saturation when I/O is enabled. The same input runs +# without I/O for comparison purposes. Also, a range of block sizes +# deemed as efficient according to the granularity experiment are +# explored. { stdenv @@ -12,6 +12,7 @@ , targetMachine , stages , callPackage +, enableExtended ? false }: with stdenv.lib; @@ -24,13 +25,10 @@ let # Initial variable configuration varConf = { - gitBranch = [ - "garlic/tampi+send+oss+task" - ]; - + gitBranch = [ "garlic/tampi+send+oss+task" ]; blocksize = [ 1 2 4 8 ]; 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) ]; }; @@ -38,7 +36,7 @@ let # Generate the complete configuration for each unit genConf = c: targetMachine.config // rec { - expName = "fwi-ss-io"; + expName = "fwi-io"; unitName = "${expName}" + "-nodes${toString nodes}" + "-bs${toString blocksize}" diff --git a/garlic/exp/fwi/sync-io.nix b/garlic/exp/fwi/sync-io.nix deleted file mode 100644 index 65bc0bf..0000000 --- a/garlic/exp/fwi/sync-io.nix +++ /dev/null @@ -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; } diff --git a/garlic/exp/index.nix b/garlic/exp/index.nix index 9776f3c..0a5d497 100644 --- a/garlic/exp/index.nix +++ b/garlic/exp/index.nix @@ -97,12 +97,12 @@ test = callPackage ./lulesh/test.nix { }; }; - fwi = { + fwi = rec { granularity = callPackage ./fwi/granularity.nix { }; ss = callPackage ./fwi/ss.nix { }; - ss-io = callPackage ./fwi/ss-io.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 {