trilinos / Trilinos

Primary repository for the Trilinos Project
https://trilinos.org/
Other
1.19k stars 565 forks source link

Zoltan2: Integrate Jet graph partitioner #12951

Open egboman opened 4 months ago

egboman commented 4 months ago

@trilinos/zoltan2

There is a new multilevel graph partitioner, Jet: https://github.com/sandialabs/Jet-Partitioner/ Jet uses Kokkos so will run on both CPU and GPU. It has been optimized for GPU. It is currently a stand-alone partitioning code, but we want to integrate it into Zoltan2. To make it easily available to all users, we plan to snapshot the source code into Zoltan2 and add the necessary adapters and tests. No TPL installation required for the user.

cgcgcg commented 4 months ago

Does this mean that all development for Jet will happen within Trilinos going forward?

egboman commented 4 months ago

Yes, that's the plan. The development is a collaboration between Sandia and Penn State. They wanted to have a stand-alone version (outside Trilinos). I know there is a risk that the two versions may diverge some day, which could have been avoided with the TPL option.

cgcgcg commented 4 months ago

My feeling is, either development is fully in Trilinos, or it is fully outside. We have enough issues with code that gets added via snapshot. It sounds like there is some interest in having a standalone capability, so I would consider using a TPL approach instead.

egboman commented 4 months ago

History shows Trilinos users are much more likely to use code that is native in Trilinos. TPL is an extra step that many people don't want to take (especially if it's not a critical feature).

egboman commented 3 months ago

After some discussion, we have changed the plan to make Jet a TPL. The main advantage is it can then be maintained separately as a stand-alone partitioner, and there will be no divergence of versions. Note Jet does not depend on Trilinos. The current version uses Kokkos for shared-memory parallelism (including GPU) but does not support distributed memory. A distributed-memory version of Jet is in progress but not yet ready.