diff --git a/bsc/gpi-2/default.nix b/bsc/gpi-2/default.nix new file mode 100644 index 0000000..425fe46 --- /dev/null +++ b/bsc/gpi-2/default.nix @@ -0,0 +1,38 @@ +{ + stdenv +, slurm +, rdma-core +, autoconf +, automake +, libtool +, mpi +, rsync +, gfortran +}: + +stdenv.mkDerivation rec { + pname = "GPI-2"; + version = src.shortRev; + + src = builtins.fetchGit { + url = "ssh://git@bscpm03.bsc.es/interoperability/GPI-2"; + ref = "lowlevel"; + }; + + preConfigure = '' + patchShebangs autogen.sh + ./autogen.sh + ''; + + configureFlags = [ + "--with-infiniband=${rdma-core}" + "--with-mpi=${mpi}" + "--with-slurm" + "CFLAGS=-fPIC" + "CXXFLAGS=-fPIC" + ]; + + buildInputs = [ slurm mpi rdma-core autoconf automake libtool rsync gfortran ]; + + hardeningDisable = [ "all" ]; +} diff --git a/bsc/tagaspi/default.nix b/bsc/tagaspi/default.nix new file mode 100644 index 0000000..21e9019 --- /dev/null +++ b/bsc/tagaspi/default.nix @@ -0,0 +1,46 @@ +{ + stdenv +, automake +, autoconf +, libtool +, mpi +, autoreconfHook +, gaspi +, boost +, numactl +, rdma-core +, gfortran +}: + +stdenv.mkDerivation rec { + pname = "tagaspi"; + version = src.shortRev; + enableParallelBuilding = false; + + buildInputs = [ + autoreconfHook + automake + autoconf + libtool + boost + mpi + numactl + rdma-core + gfortran + ]; + + dontDisableStatic = true; + + configureFlags = [ + "--with-gaspi=${gaspi}" + "CFLAGS=-fPIC" + "CXXFLAGS=-fPIC" + ]; + + src = builtins.fetchGit { + url = "ssh://git@bscpm03.bsc.es/interoperability/tagaspi"; + ref = "master"; + }; + + hardeningDisable = [ "all" ]; +} diff --git a/overlay.nix b/overlay.nix index dc990c9..6186f7a 100644 --- a/overlay.nix +++ b/overlay.nix @@ -134,6 +134,16 @@ let tampiRelease = callPackage ./bsc/tampi/default.nix { }; tampiGit = callPackage ./bsc/tampi/git.nix { }; + # ================================================================= + # GASPI + # ================================================================= + gpi-2 = callPackage ./bsc/gpi-2/default.nix { }; + + # Use GPI-2 as the default implementation for GASPI + gaspi = bsc.gpi-2; + + tagaspi = callPackage ./bsc/tagaspi/default.nix { }; + # ================================================================= # Tracing # =================================================================