devshell/isabel/slurm/flake.nix

45 lines
1.3 KiB
Nix

{
inputs.jungle.url = "git+https://jungle.bsc.es/git/rarias/jungle";
outputs = { self, jungle }:
let
nixpkgs = jungle.inputs.nixpkgs;
lib = nixpkgs.lib;
clusterOverlay = (final: prev: {
# Use cluster llvm compiler repo
clangOmpss2Unwrapped = prev.clangOmpss2Unwrapped.override {
useGit = true;
gitUrl = "ssh://git@bscpm04.bsc.es/ompss-2-at-cluster/llvm.git";
gitCommit = "151c260ba834826c01855da0a41fc203ffe4d025";
gitBranch = "cluster";
};
# Configure MPICH to use UCX with multiple thread support
mpich = prev.mpich.overrideAttrs (old: {
configureFlags = (lib.remove "--with-device=ch4:ofi" old.configureFlags) ++ [
"--with-device=ch4:ucx"
"--enable-threads=multiple"
];
});
});
pkgs = import nixpkgs {
system = "x86_64-linux";
overlays = [
# Apply jungle overlay to get our BSC custom packages
jungle.outputs.bscOverlay
# And on top apply our local changes to customize for cluster
clusterOverlay
];
};
in {
devShells.x86_64-linux.default = pkgs.mkShell {
pname = "devshell";
buildInputs = with pkgs; [
slurm.out slurm.dev gcc
clangOmpss2 mpich osumb
];
inputsFrom = with pkgs; [
nanos6
];
};
};
}