First successful execution with SLURM
This commit is contained in:
parent
39a639ac10
commit
bab4c696d8
@ -28,6 +28,7 @@ let
|
|||||||
ppong-job = srunner { app=ppong; };
|
ppong-job = srunner { app=ppong; };
|
||||||
|
|
||||||
exp = {
|
exp = {
|
||||||
|
|
||||||
jobs = callPackage ./experiments {
|
jobs = callPackage ./experiments {
|
||||||
apps = map (app: srunner {app=app;}) (
|
apps = map (app: srunner {app=app;}) (
|
||||||
genApps [ ppong ] (
|
genApps [ ppong ] (
|
||||||
@ -46,7 +47,7 @@ let
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
nbody = callPackage ./experiments {
|
nbodyExp = callPackage ./experiments {
|
||||||
apps = genApp nbody [
|
apps = genApp nbody [
|
||||||
{ cc=bsc.icc;
|
{ cc=bsc.icc;
|
||||||
cflags="-march=core-avx2"; }
|
cflags="-march=core-avx2"; }
|
||||||
@ -55,14 +56,26 @@ let
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
nbody-blocksize = callPackage ./experiments {
|
nbodyBS = callPackage ./experiments {
|
||||||
apps = genApp nbody (
|
apps = genApp nbody (
|
||||||
genConfigs {
|
genConfigs {
|
||||||
cc = [ bsc.icc ];
|
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
|
# Test if there is any difference between intel -march and -xCORE
|
||||||
# with target avx2.
|
# with target avx2.
|
||||||
march = callPackage ./experiments {
|
march = callPackage ./experiments {
|
||||||
|
32
bsc/garlic/dispatcher.nix
Normal file
32
bsc/garlic/dispatcher.nix
Normal file
@ -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 <<EOF
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
for j in $out/jobs/*; do
|
||||||
|
echo "sbatch \$j"
|
||||||
|
sbatch \$j
|
||||||
|
done
|
||||||
|
EOF
|
||||||
|
|
||||||
|
chmod +x $out/bin/execute-all-jobs
|
||||||
|
'';
|
||||||
|
}
|
@ -3,9 +3,9 @@
|
|||||||
, cc
|
, cc
|
||||||
, cflags ? null
|
, cflags ? null
|
||||||
, gitBranch
|
, gitBranch
|
||||||
, blocksize ? "2048"
|
, blocksize ? 2048
|
||||||
, particles ? "16384"
|
, particles ? 16384
|
||||||
, timesteps ? "10"
|
, timesteps ? 10
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
@ -26,7 +26,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
makeFlags = [
|
makeFlags = [
|
||||||
"CC=${cc.cc.CC}"
|
"CC=${cc.cc.CC}"
|
||||||
"BS=${blocksize}"
|
"BS=${toString blocksize}"
|
||||||
];
|
];
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
@ -35,7 +35,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
cat > $out/bin/run <<EOF
|
cat > $out/bin/run <<EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
exec $out/bin/nbody -p ${particles} -t ${timesteps}
|
exec $out/bin/nbody -p ${toString particles} -t ${toString timesteps}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x $out/bin/run
|
chmod +x $out/bin/run
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
, binary ? "/bin/run"
|
, binary ? "/bin/run"
|
||||||
, ntasks ? null
|
, ntasks ? null
|
||||||
, exclusive ? true # By default we run in exclusive mode
|
, exclusive ? true # By default we run in exclusive mode
|
||||||
, workdir ? "."
|
, chdir ? "."
|
||||||
, qos ? null
|
, qos ? null
|
||||||
, time ? null
|
, time ? null
|
||||||
, output ? "job_%j.out"
|
, output ? "job_%j.out"
|
||||||
@ -42,14 +42,13 @@ stdenv.mkDerivation rec {
|
|||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out/bin
|
mkdir -p $out
|
||||||
cat > $out/bin/run <<EOF
|
cat > $out/job <<EOF
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#SBATCH --job-name="${name}"
|
#SBATCH --job-name="${name}"
|
||||||
''
|
''
|
||||||
+ sbatchOpt "ntasks" ntasks
|
+ sbatchOpt "ntasks" ntasks
|
||||||
+ sbatchOpt "ntasks" ntasks
|
+ sbatchOpt "chdir" chdir
|
||||||
+ sbatchOpt "workdir" workdir
|
|
||||||
+ sbatchOpt "output" output
|
+ sbatchOpt "output" output
|
||||||
+ sbatchOpt "error" error
|
+ sbatchOpt "error" error
|
||||||
+ sbatchEnable "exclusive" exclusive
|
+ sbatchEnable "exclusive" exclusive
|
||||||
@ -62,7 +61,5 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
srun ${app}${binary} ${argv}
|
srun ${app}${binary} ${argv}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
chmod +x $out/bin/run
|
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user