slurm: add sigsegv experiment

Ensure that we can catch a sigsegv signal before and after the
MPI_Finalize call.
This commit is contained in:
Rodrigo Arias 2021-04-06 15:28:27 +02:00
parent 71c06d02da
commit f842f1e01d
2 changed files with 60 additions and 0 deletions

View File

@ -91,6 +91,7 @@
slurm = {
cpu = callPackage ./slurm/cpu.nix { };
sigsegv = callPackage ./slurm/sigsegv.nix { };
};
lulesh = {

View File

@ -0,0 +1,59 @@
{
stdenv
, stdexp
, bsc
, targetMachine
, stages
, garlicTools
}:
with stdenv.lib;
with garlicTools;
let
machineConfig = targetMachine.config;
inherit (machineConfig) hw;
# Initial variable configuration
varConf = {
when = [ "before" "after" "never" ];
};
# Generate the complete configuration for each unit
genConf = c: targetMachine.config // rec {
expName = "sigsegv";
unitName = expName + "-" + when;
inherit (machineConfig) hw;
inherit (c) when;
loops = 3;
# Resources
qos = "debug";
cpusPerTask = 1;
ntasksPerNode = hw.cpusPerNode;
nodes = 1;
jobName = unitName;
};
# Compute the array of configurations
configs = stdexp.buildConfigs {
inherit varConf genConf;
};
exec = {nextStage, conf, ...}: with conf; stages.exec {
inherit nextStage;
env = "date";
argv = [ conf.when ];
};
program = {nextStage, conf, ...}: bsc.test.sigsegv;
pipeline = stdexp.stdPipeline ++ [ exec program ];
in
stdexp.genExperiment { inherit configs pipeline; }