NixOS configuration for HPC cluster https://docs.hpc.informatik.hs-fulda.de/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

87 lines
1.7 KiB

# This is the environment that we show for the users.
# Hear me out... I already regrett doing this while writing this, but (l)users
# are not willing to pick up the nix-struggle for the greater benefit. So, here
# I am building this shit that I know will fall apart soon.
{ pkgs, lib, config, ... }:
with lib;
let
userenv = pkgs.buildEnv {
name = "userenv";
paths = with pkgs; [
autoconf
automake
bash
coreutils
curl
fd
flex
gcc
gdb
git
gnumake
hwloc
(getDev libbfd)
(getDev libiberty)
(getDev libtool)
munge
nano
(getBin numactl)
(getDev numactl)
openmpi
openssh
pandoc
(getDev papi)
(getLib papi)
perl
pkg-config
postgresql
(getDev postgresql)
(getLib postgresql)
python3
ripgrep
tmux
(getBin ucx)
(getDev ucx)
valgrind
vim
wget
libz
# tau
];
ignoreCollisions = false;
inherit (config.environment) pathsToLink extraOutputsToInstall;
};
in
{
# environment.systemPackages = [ userenv ];
environment.extraInit = ''
if [[ "$(id -gn)" -eq "cluster" ]]; then
export PKG_CONFIG_PATH="${makeSearchPath "lib/pkgconfig" config.environment.profiles}"
fi
# Disable OpenIB for open-mpi as it is depricated and bogous
export OMPI_MCA_btl='^openib'
'';
environment.profiles = [
"/etc/profiles/per-group/$(id -gn)"
];
environment.etc."userenv" = {
target = "profiles/per-group/cluster";
source = userenv;
};
systemd.tmpfiles.rules = [
''L+ /opt/scalasca - - - - ${pkgs.scalasca}''
''L+ /opt/scorep - - - - ${pkgs.scorep} ''
];
}