diff --git a/bsc/garlic/default.nix b/bsc/garlic/default.nix index bdc0ede..8518514 100644 --- a/bsc/garlic/default.nix +++ b/bsc/garlic/default.nix @@ -28,6 +28,7 @@ let ppong-job = srunner { app=ppong; }; exp = { + jobs = callPackage ./experiments { apps = map (app: srunner {app=app;}) ( genApps [ ppong ] ( @@ -46,7 +47,7 @@ let ); }; - nbody = callPackage ./experiments { + nbodyExp = callPackage ./experiments { apps = genApp nbody [ { cc=bsc.icc; cflags="-march=core-avx2"; } @@ -55,14 +56,26 @@ let ]; }; - nbody-blocksize = callPackage ./experiments { + nbodyBS = callPackage ./experiments { apps = genApp nbody ( genConfigs { cc = [ bsc.icc ]; - blocksize = [ "1024" "2048" ]; + blocksize = [ 1024 2048 4096 ]; }); }; + nbodyBSjob = callPackage ./dispatcher.nix { + jobs = map (app: srunner {app=app;}) ( + genApp nbody ( + genConfigs { + cc = [ bsc.icc ]; + blocksize = [ 1024 2048 4096 ]; + } + ) + ); + }; + + # Test if there is any difference between intel -march and -xCORE # with target avx2. march = callPackage ./experiments { diff --git a/bsc/garlic/dispatcher.nix b/bsc/garlic/dispatcher.nix new file mode 100644 index 0000000..4594b34 --- /dev/null +++ b/bsc/garlic/dispatcher.nix @@ -0,0 +1,32 @@ +{ + stdenv +, jobs +}: + +stdenv.mkDerivation { + name = "slurm-dispatcher"; + preferLocalBuild = true; + + buildInputs = [] ++ jobs; + jobs = jobs; + phases = [ "installPhase" ]; + + installPhase = '' + mkdir -p $out/jobs + for j in $jobs; do + ln -s $j/job $out/jobs/$(basename $j) + done + + mkdir -p $out/bin + cat > $out/bin/execute-all-jobs < $out/bin/run < $out/bin/run < $out/job <