diff --git a/pkgs/by-name/co/costa/package.nix b/pkgs/by-name/co/costa/package.nix new file mode 100644 index 000000000000..3dacce655055 --- /dev/null +++ b/pkgs/by-name/co/costa/package.nix @@ -0,0 +1,40 @@ +{ stdenv +, lib +, fetchFromGitHub +, cmake +, mpi +, scalapack +, llvmPackages +}: + +stdenv.mkDerivation rec { + pname = "COSTA"; + version = "2.2.2"; + + src = fetchFromGitHub { + owner = "eth-cscs"; + repo = pname; + rev = "v${version}"; + hash = "sha256-jiAyZXC7wiuEnOLsQFFLxhN3AsGXN09q/gHC2Hrb2gg="; + }; + + nativeBuildInputs = [ cmake ]; + + buildInputs = [ scalapack ] ++ lib.optional stdenv.isDarwin llvmPackages.openmp; + + propagatedBuildInputs = [ mpi ]; + + cmakeFlags = [ + "-DCOSTA_SCALAPACK=CUSTOM" + "-DSCALAPACK_ROOT=${scalapack}" + ]; + + + meta = with lib; { + description = "Distributed Communication-Optimal Shuffle and Transpose Algorithm"; + homepage = "https://github.com/eth-cscs/COSTA"; + license = licenses.bsd3; + platforms = platforms.linux; + maintainers = [ maintainers.sheepforce ]; + }; +}