39 lines
739 B
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
|