Move apps into garlic/apps

This commit is contained in:
Rodrigo Arias 2020-10-09 16:13:16 +02:00
parent a576be8031
commit 332b738889
21 changed files with 60 additions and 99 deletions

View File

@ -59,7 +59,7 @@ let
bsc = super.bsc // { mpi = conf.mpi; };
});
in
customPkgs.garlic.nbody.override {
customPkgs.apps.nbody.override {
inherit cc blocksize mpi gitBranch;
};
@ -71,5 +71,4 @@ let
in
elemAt units 0
#buildExperiment units
stdexp.buildExperiment units

View File

@ -7,6 +7,7 @@
mn4 = {
config = {
name = "mn4";
sshHosts = [ "mn1" "mn2" "mn3" ];
nixPrefix = "/gpfs/projects/bsc15/nix";
cachelineBytes = 64;
march = "skylake-avx512";

View File

@ -1,19 +0,0 @@
{ lib }:
let inherit (lib) optional; in
mkDerivation:
args:
let
args_ = {
enableParallelBuilding = args.enableParallelBuilding or true;
hardeningDisable = [ "all" ];
};
in
mkDerivation (args // args_)

View File

@ -1,29 +0,0 @@
{
stdenv
, particles
, timestamps
, program
, config
}:
stdenv.mkDerivation {
inherit program;
passthru = {
inherit config;
};
name = "${program.name}-argv";
preferLocalBuild = true;
phases = [ "installPhase" ];
dontPatchShebangs = true;
installPhase = ''
mkdir -p $out/bin
cat > $out/bin/run <<EOF
#!/bin/sh
exec ${program}/bin/run -p ${toString config.particles} -t ${toString config.timesteps}
EOF
chmod +x $out/bin/run
'';
}

View File

@ -3,8 +3,8 @@
}:
{
units:
}
units
}:
with stdenv.lib;

View File

@ -9,7 +9,7 @@
{
nextStage
, nixPrefix
, clusterName
, clusterName ? "mn4"
}:
with garlicTools;

View File

@ -1,16 +1,21 @@
{
stdenv
, nixtools
, garlicTools
}:
{
program
nextStage
, nixPrefix
# FIXME: These two should be specified in the configuration of the machine
, sshHost ? "mn"
, targetCluster ? "mn4"
, stage
}:
let
program = garlicTools.stageProgram nextStage;
in
stdenv.mkDerivation {
name = "trebuchet";
phases = [ "installPhase" ];
@ -25,7 +30,7 @@ stdenv.mkDerivation {
# to see what is being executed.
# $out
${stage.desc}
${nextStage.desc}
nixtools=${nixPrefix}${nixtools}/bin
runexp=\$nixtools/${targetCluster}/runexp

View File

@ -15,11 +15,11 @@ in
rec {
/* Takes a list of units and builds an experiment, after executing the
trebuchet and the isolate stages. Returns the trebuchet stage. */
buildExperiment = {units, conf, ...}: stage.trebuchet {
buildExperiment = units: stages.trebuchet {
inherit (machineConf) nixPrefix;
nextStage = stage.isolate {
nextStage = stages.isolate {
inherit (machineConf) nixPrefix;
nextStage = stage.experiment {
nextStage = stages.experiment {
inherit units;
};
};
@ -73,7 +73,7 @@ rec {
];
# FIXME: Remove this hack and allow custom nixpkgs
bscOverlay = import ../../overlay.nix;
bscOverlay = import ../overlay.nix;
nixpkgs = import <nixpkgs>;
genPkgs = newOverlay: nixpkgs {
overlays = [

View File

@ -143,6 +143,8 @@ let
garlicTools = callPackage ./garlic/tools.nix {};
garlic = {
# TODO: move into garlic/default.nix
# Configuration for the machines
machines = callPackage ./garlic/machines.nix {};
@ -151,51 +153,54 @@ let
# Load some helper functions to generate app variants
stdexp = callPackage ./garlic/exp/stdexp.nix {
stdexp = callPackage ./garlic/stdexp.nix {
inherit (self.garlic) targetMachine stages;
};
# Apps for Garlic
# heat = callPackage ./garlic/heat {
# stdenv = pkgs.gcc7Stdenv;
# mpi = intel-mpi;
# tampi = tampi;
# };
apps = {
creams = callPackage ./garlic/apps/creams/default.nix {
gnuDef = self.gfortran10 ; # Default GNU compiler version
intelDef = self.bsc.icc ; # Default Intel compiler version
gitBranch = "garlic/mpi+send+seq";
cc = self.bsc.icc; # self.bsc.icc OR self.gfortran10;
mpi = self.bsc.mpi; # self.bsc.mpi OR self.bsc.openmpi-mn4;
};
creamsInput = callPackage ./garlic/apps/creams/input.nix {
gitBranch = "garlic/mpi+send+seq";
};
nbody = callPackage ./garlic/apps/nbody/default.nix {
cc = self.bsc.icc;
mpi = self.bsc.mpi;
tampi = self.bsc.tampi;
mcxx = self.bsc.mcxx;
gitBranch = "garlic/seq";
};
saiph = callPackage ./garlic/apps/saiph/default.nix {
cc = self.bsc.clangOmpss2;
};
# heat = callPackage ./garlic/apps/heat {
# stdenv = pkgs.gcc7Stdenv;
# mpi = intel-mpi;
# tampi = tampi;
# };
#
creams = callPackage ./garlic/creams {
gnuDef = self.gfortran10 ; # Default GNU compiler version
intelDef = self.bsc.icc ; # Default Intel compiler version
gitBranch = "garlic/mpi+send+seq";
cc = self.bsc.icc; # self.bsc.icc OR self.gfortran10;
mpi = self.bsc.mpi; # self.bsc.mpi OR self.bsc.openmpi-mn4;
};
creamsInput = callPackage ./garlic/creams/input.nix {
gitBranch = "garlic/mpi+send+seq";
};
# lulesh = callPackage ./garlic/lulesh {
# mpi = intel-mpi;
# };
# lulesh = callPackage ./garlic/apps/lulesh {
# mpi = intel-mpi;
# };
#
# hpcg = callPackage ./garlic/hpcg { };
# hpcg = callPackage ./garlic/apps/hpcg { };
#
# hpccg = callPackage ./garlic/hpccg { };
# hpccg = callPackage ./garlic/apps/hpccg { };
#
# fwi = callPackage ./garlic/fwi { };
nbody = callPackage ./garlic/nbody {
cc = self.bsc.icc;
mpi = self.bsc.mpi;
tampi = self.bsc.tampi;
mcxx = self.bsc.mcxx;
gitBranch = "garlic/seq";
};
saiph = callPackage ./garlic/saiph/default.nix {
cc = self.bsc.clangOmpss2;
# fwi = callPackage ./garlic/apps/fwi { };
};
# Execution stages
@ -317,9 +322,8 @@ in
{
bsc = bsc;
# Alias
# Aliases
garlic = bsc.garlic;
# Alias
exp = bsc.garlic.exp;
apps = bsc.garlic.apps;
}