Skip to content

[WIP] Zoltan2: Implement directory for globalWeightedCutsMessagesByPart

Created by: MicheldeMessieres

@trilinos/zoltan2

Description

This is in progress.

Implements the new directory for Zoltan2_GraphMetricsUtility.hpp
for the method globalWeightedCutsMessagesByPart.

The original implementation with Tpetra is still available by
commenting out USE_NEW_DIRECTORY and this option is intended to
be deleted eventually.

A new AggregateAdd option was added to the directory to facilitate
combining structs. This currently does not assume any ordering but
we could make that a requirement.
The structs determine if they match through operator== and if they
do operator+= is used to combine them. This design needs discussion.

The hops methods have been combined with the non-hops methods
and (machine == Teuchos::null) is used to distinguish the two
cases.

The first section using the original zoltan directory was
also replaced with the new zoltan2 directory.
There is some inefficiency where zoltan directory code was changed to
zoltan2 directory code due to the std::vector interface making it
necessary to copy the data before passing to the directory. This
could be resolved by changing the directory interface. To discuss.

Motivation and Context

This is a first implementation to address requests from kddevin to implement
the new directory in current zoltan2 code. 

Related Issues

This PR builds on PR #1533.

How Has This Been Tested?

This is in progress. Note that usually SEMS is run but due to some account issues
I won't be able to run those tests until next week.

This PR is being setup to facilitate discussion.

Checklist

  • My commit messages mention the appropriate GitHub issue numbers.
  • My code follows the code style of the affected package(s).
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.
  • I have read the code contribution guidelines for this project.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • No new compiler warnings were introduced.
  • These changes break backwards compatibility.

Additional Information

This code is not intended to be merged yet. Several discussion points need to be resolved.

Merge request reports