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.

114 lines
2.1 KiB

3 months ago
  1. { lib
  2. , stdenv
  3. , fetchFromGitHub
  4. , git
  5. , autoconf
  6. , automake
  7. , pkg-config
  8. , gfortran
  9. , perl
  10. , python3
  11. , flex
  12. , libnl
  13. , rdma-core
  14. , zlib
  15. , numactl
  16. , libevent
  17. , hwloc
  18. , targetPackages
  19. , symlinkJoin
  20. , libpsm2
  21. , libfabric
  22. , libtool
  23. , libbfd
  24. , libiberty
  25. , pmix
  26. , ucx
  27. , ucc
  28. , postgresql
  29. , ...
  30. }:
  31. stdenv.mkDerivation {
  32. pname = "edumpi";
  33. version = "ee0735";
  34. src = fetchFromGitHub {
  35. owner = "AnnaLena77";
  36. repo = "EduMPI";
  37. rev = "9a6989e26cad9264e62d10bbff02324d506cc674";
  38. hash = "sha256-s+1/2VYrEU8TVw/wR4N93N2rrC4JylVV+EavsB21Gb4=";
  39. fetchSubmodules = true;
  40. };
  41. postPatch = ''
  42. patchShebangs ./
  43. '';
  44. nativeBuildInputs = [
  45. autoconf
  46. automake
  47. perl
  48. python3
  49. gfortran
  50. git
  51. flex
  52. ];
  53. buildInputs = [
  54. zlib
  55. libnl
  56. numactl
  57. pmix
  58. ucx
  59. libevent
  60. hwloc
  61. rdma-core
  62. libpsm2
  63. libfabric
  64. libtool
  65. libbfd
  66. libiberty
  67. postgresql
  68. ];
  69. LIBS = "-lpq";
  70. CFLAGS = "-DENABLE_ANALYSIS=1";
  71. preConfigure = ''
  72. ./autogen.pl
  73. '';
  74. configureFlags = [
  75. "--disable-mca-dso"
  76. "--with-libnl=${lib.getDev libnl}"
  77. "--with-pmix=${lib.getDev pmix}"
  78. "--with-pmix-libdir=${pmix}/lib"
  79. "--with-psm2=${lib.getDev libpsm2}"
  80. "--with-libfabric=${lib.getDev libfabric}"
  81. "--with-libfabric-libdir=${libfabric}/lib"
  82. ];
  83. enableParallelBuilding = true;
  84. postInstall = ''
  85. find $out/lib/ -name "*.la" -exec rm -f \{} \;
  86. '';
  87. #postFixup = ''
  88. # sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
  89. # $out/share/openmpi/mpicc-wrapper-data.txt
  90. # sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}cc:' \
  91. # $out/share/openmpi/ortecc-wrapper-data.txt
  92. # sed -i 's:compiler=.*:compiler=${targetPackages.stdenv.cc}/bin/${targetPackages.stdenv.cc.targetPrefix}c++:' \
  93. # $out/share/openmpi/mpic++-wrapper-data.txt
  94. # sed -i 's:compiler=.*:compiler=${gfortran}/bin/${gfortran.targetPrefix}gfortran:' \
  95. # $out/share/openmpi/mpifort-wrapper-data.txt
  96. #'';
  97. doCheck = true;
  98. }