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