diff --git a/garlic/exp/fwi/data_reuse.nix b/garlic/exp/fwi/reuse.nix similarity index 55% rename from garlic/exp/fwi/data_reuse.nix rename to garlic/exp/fwi/reuse.nix index 84f0c4b..e767281 100644 --- a/garlic/exp/fwi/data_reuse.nix +++ b/garlic/exp/fwi/reuse.nix @@ -24,6 +24,7 @@ , bsc , targetMachine , stages +, callPackage }: with stdenv.lib; @@ -46,29 +47,17 @@ let ]; }; -# The c value contains something like: -# { -# n = { nx=500; ny=500; nz=500; } -# blocksize = 1; -# gitBranch = "garlic/tampi+send+oss+task"; -# } - machineConfig = targetMachine.config; # Generate the complete configuration for each unit - genConf = with bsc; c: targetMachine.config // rec { - expName = "fwi"; - unitName = "${expName}-test"; + genConf = c: targetMachine.config // rec { + expName = "fwi-reuse"; + unitName = "${expName}" + + "-bs${toString blocksize}" + + "-${toString gitBranch}"; + inherit (machineConfig) hw; - - cc = icc; inherit (c) gitBranch blocksize; - - #nx = c.n.nx; - #ny = c.n.ny; - #nz = c.n.nz; - - # Same but shorter: inherit (c.n) nx ny nz; fwiInput = bsc.apps.fwi.input.override { @@ -77,7 +66,6 @@ let # Repeat the execution of each unit several times loops = 10; - #loops = 1; # Resources cpusPerTask = hw.cpusPerSocket; @@ -87,49 +75,22 @@ let time = "02:00:00"; jobName = unitName; + enableCTF = false; + ioFreq = -1; + # Enable permissions to write in the local storage extraMounts = [ fs.local.temp ]; - + tempDir = fs.local.temp; }; - # Compute the array of configurations - configs = stdexp.buildConfigs { + common = callPackage ./common.nix {}; + + inherit (common) getConfigs pipeline; + + configs = getConfigs { inherit varConf genConf; }; - exec = {nextStage, conf, ...}: stages.exec { - inherit nextStage; - pre = '' - #CDIR=$PWD - #export NANOS6_CONFIG_OVERRIDE="version.instrument=ctf" - EXECDIR="${fs.local.temp}/out/$GARLIC_USER/$GARLIC_UNIT/$GARLIC_RUN" - mkdir -p $EXECDIR - cd $EXECDIR - ln -fs ${conf.fwiInput}/InputModels InputModels || true - ''; - argv = [ - "${conf.fwiInput}/fwi_params.txt" - "${conf.fwiInput}/fwi_frequencies.txt" - conf.blocksize - "-1" # Fordward steps - "-1" # Backward steps - "-1" # Write/read frequency - ]; - post = '' - rm -rf Results || true - #mv trace_* $CDIR - ''; - }; - - apps = bsc.garlic.apps; - - # FWI program - program = {nextStage, conf, ...}: apps.fwi.solver.override { - inherit (conf) cc gitBranch fwiInput; - }; - - pipeline = stdexp.stdPipeline ++ [ exec program ]; - in stdexp.genExperiment { inherit configs pipeline; } diff --git a/garlic/exp/index.nix b/garlic/exp/index.nix index 01275fb..6b8a638 100644 --- a/garlic/exp/index.nix +++ b/garlic/exp/index.nix @@ -100,9 +100,8 @@ fwi = { granularity = callPackage ./fwi/granularity.nix { }; ss = callPackage ./fwi/ss.nix { }; + reuse = callPackage ./fwi/reuse.nix { }; - strong_scaling_mpionly = callPackage ./fwi/strong_scaling_mpionly.nix { }; - data_reuse = callPackage ./fwi/data_reuse.nix { }; strong_scaling_io = callPackage ./fwi/strong_scaling_io.nix { }; sync_io = callPackage ./fwi/sync_io.nix { }; };