lol
1{
2 stdenv,
3 lib,
4 fetchFromGitHub,
5 cmake,
6 mpi,
7 scalapack,
8 llvmPackages,
9}:
10
11stdenv.mkDerivation rec {
12 pname = "COSTA";
13 version = "2.2.4";
14
15 src = fetchFromGitHub {
16 owner = "eth-cscs";
17 repo = "COSTA";
18 rev = "v${version}";
19 hash = "sha256-smrDK7iucGWlL1pDv+O4QXefxr1QirC00q5Wva0S+ks=";
20 };
21
22 nativeBuildInputs = [ cmake ];
23
24 buildInputs = [ scalapack ] ++ lib.optional stdenv.hostPlatform.isDarwin llvmPackages.openmp;
25
26 propagatedBuildInputs = [ mpi ];
27
28 cmakeFlags = [
29 "-DCOSTA_SCALAPACK=CUSTOM"
30 "-DSCALAPACK_ROOT=${scalapack}"
31 ];
32
33 meta = with lib; {
34 description = "Distributed Communication-Optimal Shuffle and Transpose Algorithm";
35 homepage = "https://github.com/eth-cscs/COSTA";
36 license = licenses.bsd3;
37 platforms = platforms.linux;
38 maintainers = [ maintainers.sheepforce ];
39 };
40}