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.

110 lines
2.0 KiB

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