bscpkgs/bsc/garlic/exp/nbody/bs.nix

39 lines
739 B
Nix

{
bsc
, nbody
, genApp
, genConfigs
, sbatch
, sbatchLauncher
}:
let
# Set the configuration for the experiment
config = {
cc = [ bsc.icc ];
blocksize = [ 1024 2048 4096 ];
};
# Compute the cartesian product of all configurations
configList = genConfigs config;
# Generate each app variant via override
appList = genApp nbody configList;
# Job generator helper function
genJobs = map (app:
sbatch {
app = app;
prefix = "/gpfs/projects/bsc15/nix";
exclusive = false;
ntasks = "1";
}
);
# Generate one job for each app variant
jobList = genJobs appList;
# And merge all jobs in a script to lauch them all with sbatch
launcher = sbatchLauncher jobList;
in
launcher