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
|