[petsc-dev] Parmetis / Metis changes
Barry Smith
bsmith at mcs.anl.gov
Sat Nov 19 23:01:28 CST 2011
Thanks Sean,
It appears that George is still living in the Linux desert and Sean has so pimped out his Mac it is barely running OS X.
One problem I don't know how to fix.
metis has the file gk_externs.h with the lines
#ifndef _GK_ERROR_C_
/* declared in error.c */
extern __thread int gk_cur_jbufs;
extern __thread jmp_buf gk_jbufs[];
extern __thread jmp_buf gk_jbuf;
#endif
The default Mac compilers won't compile it; I don't see how this worked for Sean. Anyways no big deal except because of metis's cmake system I don't know how I can pass the flag _GK_ERROR_C_ done into the metis cmake system so the compiler doesn't see this thing. Any ideas on how to pass it from metis.py??????
Thanks
Barry
On Nov 18, 2011, at 7:25 PM, Sean Farley wrote:
> I've just pushed some changes that update parmetis to newest revision, and this has some consequences on packages that depend on parmetis.
>
> Parmetis now depends on metis, and both can use 64-bit integers. This required an update to SuperLU_DIST to use this new interface which can now use 64-bit integers everywhere. Also, MUMPS needed to be updated (but is not 64-bit). All of these are available with --download-packagename (BuildSystem is always an adventure!). Patches are available upon request but I hope that the code maintainers accept them (I've sent them to their respective authors).
>
> CHOLMOD needed updating too, but that isn't available as a --download-cholmod because it will be refactored into --download-suitesparse. Tim has graciously posted my patch on CHOLMOD's website:
>
> http://www.cise.ufl.edu/research/sparse/cholmod/
>
> People that use sieve will need to rebuild as well since Matt uses parmetis directly. Potentially, sieve could work with 64-bit integers now, but I tried to go through sieve ... and then ran screaming in terror. I think I may have tripped on the bones of the last intrepid adventurer who ventured into sieve. It's hairy. At the very least, triangle and tetgen will have to be updated. Matt might also want to look at updating the other mesh partitioners (zoltan, hmetis, chaco, etc.)
>
> If you use any of these packages, I recommend deleting your PETSC_ARCH and externalpackages directories, and re-running configure.
>
> I tested each of the situations:
>
> Matrix partitioning:
>
> $ cd src/mat/examples/tutorials
> $ make ex15
> $ ./ex15 -mat_partitioning_type parmetis
>
> SuperLU_DIST (w/ metis):
>
> $ cd src/ksp/ksp/examples/tutorials
> $ make ex15
> $ ./ex15 -pc_type lu -pc_factor_mat_solver_package superlu_dist -ksp_view
>
> SuperLU_DIST (w/ parmetis):
>
> $ cd src/ksp/ksp/examples/tutorials
> $ make ex15
> $ mpiexec -n 2 ./ex15 -pc_type lu -pc_factor_mat_solver_package superlu_dist -ksp_view -mat_superlu_dist_matinput DISTRIBUTED -mat_superlu_dist_colperm PARMETIS
>
> MUMPS (w/ metis):
>
> $ cd src/ksp/ksp/examples/tutorials
> $ make ex15
> $ /ex15 -pc_type lu -pc_factor_mat_solver_package mumps -ksp_view -mat_mumps_icntl_7 5
>
> MUMPS (w/ parmetis):
>
> $ cd src/ksp/ksp/examples/tutorials
> $ make ex15
> $ mpiexec -n 2 ./ex15 -pc_type lu -pc_factor_mat_solver_package mumps -ksp_view -mat_mumps_icntl_28 2 -mat_mumps_icntl_29 2
>
> I tried to do my best with testing, but I'm sure I missed something. Please let me know if there are any problems.
More information about the petsc-dev
mailing list