diff --git a/bsc/gpi-2/default.nix b/bsc/gpi-2/default.nix new file mode 100644 index 0000000000000000000000000000000000000000..a885e029a2d570113fc9c7bcda5483403021fc53 --- /dev/null +++ b/bsc/gpi-2/default.nix @@ -0,0 +1,40 @@ +{ + 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 = "refs/tags/tagaspi-2021.11"; + }; + + enableParallelBuilding = true; + + 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 0000000000000000000000000000000000000000..de893eb024ae5dec560500bbfa5a95c29212b0cf --- /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 = true; + + 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 dc990c9b8119758d0926d1d6d8c1b7b0a2e2f9af..6186f7a94a0981a06c53b363943867d13404a89d 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 # =================================================================