nixpkgs/pkgs/by-name/pa/parmetis/package.nix

46 lines
1.2 KiB
Nix

{
lib,
stdenv,
fetchFromGitHub,
cmake,
metis,
mpi,
}:
stdenv.mkDerivation {
pname = "parmetis";
version = "4.0.3";
src = fetchFromGitHub {
owner = "KarypisLab";
repo = "ParMETIS";
rev = "d90a2a6cf08d1d35422e060daa28718376213659";
hash = "sha256-22YQxwC0phdMLX660wokRgmAif/9tRbUmQWwNMZ//7M=";
};
nativeBuildInputs = [ cmake ];
enableParallelBuilding = true;
buildInputs = [ mpi ];
configurePhase = ''
tar xf ${metis.src}
mv metis-* metis
make config metis_path=metis gklib_path=metis/GKlib prefix=$out
'';
meta = with lib; {
description = "Parallel Graph Partitioning and Fill-reducing Matrix Ordering";
longDescription = ''
MPI-based parallel library that implements a variety of algorithms for
partitioning unstructured graphs, meshes, and for computing fill-reducing
orderings of sparse matrices.
The algorithms implemented in ParMETIS are based on the multilevel
recursive-bisection, multilevel k-way, and multi-constraint partitioning
schemes
'';
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview";
platforms = platforms.all;
license = licenses.unfree;
maintainers = [ maintainers.costrouc ];
};
}