KarypisLab / METIS

METIS - Serial Graph Partitioning and Fill-reducing Matrix Ordering
Other
707 stars 139 forks source link

Merge changes from PETSc repository #6

Open jtojnar opened 4 years ago

jtojnar commented 4 years ago

Thanks for creating this repository.

Before this, people from PETSc project maintained their own in https://bitbucket.org/petsc/pkg-metis/. We should review the changes they made and incorporate them here.

cc @prj- @balay @dalcinl

prj- commented 4 years ago

Sounds like a good idea, pkg-metis, from PETSc, includes a bunch of Valgrind fixes as well as portability fixes on some architectures, e.g., MinGW. I guess we won't be able to track this repository as long as these fixes are not merged upstream.

dalcinl commented 4 years ago

My fixes related to the use of the random number generator have been extremely useful in production for getting reproducible partitions in parallel runs.

karypis commented 4 years ago

You can PR the changes and I'll incorporate them.

dalcinl commented 4 years ago

@prj- I'll start by submitting a PR with my random number generator fixes. These should go to the GKLib repo.

@karypis I do not see any repository for ParMETIS. Is that intentional?

karypis commented 4 years ago

Great. Regarding ParMetis, I'll try to do it before the summer is out.

nourgaliev commented 2 years ago

I am trying to update MeTiS/ParMeTiS with PETSC and MFEM. Couple of things came out:

  1. Petsc expects GKLib not as separate library, but build in together with MeTiS, as it was before. I actually fixed this in my version of CMake for MeTiS (if interested - I could share my changes). I modified CMakesList.txt to enable building directly using CMake.
  2. define IDXTYPEWIDTH 32 and #define REALTYPEWIDTH 32 are commented out in metis.h. Nether MFEM or PETSC currently define these, which causes failure (as these undefined). Instead of commenting out, I would rather do:

    ifndef IDXTYPEWIDTH

    define IDXTYPEWIDTH 32

    endif // IDXTYPEWIDTH

ifndef REALTYPEWIDTH

define REALTYPEWIDTH 32

endif // REALTYPEWIDTH

In metis.h. Alternatively, one needs to define these. I did make these changes in MFEM - which was straightforward, as it is using CMAKE directly. PETSC is more complicated. I informed PETSC about this...