{ 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 ]; }; }; }