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.

83 lines
1.6 KiB

9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
5 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
9 months ago
  1. # This is the environment that we show for the users.
  2. # Hear me out... I already regrett doing this while writing this, but (l)users
  3. # are not willing to pick up the nix-struggle for the greater benefit. So, here
  4. # I am building this shit that I know will fall apart soon.
  5. { pkgs, lib, config, ... }:
  6. with lib;
  7. let
  8. userenv = pkgs.buildEnv {
  9. name = "userenv";
  10. paths = with pkgs; [
  11. autoconf
  12. automake
  13. bash
  14. coreutils
  15. curl
  16. fd
  17. flex
  18. gcc
  19. gdb
  20. git
  21. gnumake
  22. hwloc
  23. (getDev libbfd)
  24. (getDev libiberty)
  25. (getDev libtool)
  26. munge
  27. nano
  28. (getBin numactl)
  29. (getDev numactl)
  30. openmpi
  31. openssh
  32. pandoc
  33. (getDev papi)
  34. (getLib papi)
  35. perl
  36. pkg-config
  37. postgresql
  38. (getDev postgresql)
  39. (getLib postgresql)
  40. python3
  41. ripgrep
  42. tmux
  43. (getBin ucx)
  44. (getDev ucx)
  45. valgrind
  46. vim
  47. wget
  48. libz
  49. scorep
  50. scalasca
  51. ];
  52. ignoreCollisions = false;
  53. inherit (config.environment) pathsToLink extraOutputsToInstall;
  54. };
  55. in
  56. {
  57. # environment.systemPackages = [ userenv ];
  58. environment.extraInit = ''
  59. if [[ "$(id -gn)" -eq "cluster" ]]; then
  60. export PKG_CONFIG_PATH="${makeSearchPath "lib/pkgconfig" config.environment.profiles}"
  61. fi
  62. # Disable OpenIB for open-mpi as it is depricated and bogous
  63. export OMPI_MCA_btl='^openib'
  64. '';
  65. environment.profiles = [
  66. "/etc/profiles/per-group/$(id -gn)"
  67. ];
  68. environment.etc."userenv" = {
  69. target = "profiles/per-group/cluster";
  70. source = userenv;
  71. };
  72. }