Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

patchkernel: keep track of vertices owners #80

Merged
merged 26 commits into from
Dec 19, 2020

Conversation

andrea-iob
Copy link
Member

Each vertex is now associated with a processor, that processor is the owner of the vertex. Given the owners of the cells in one-ring neighborhood of a vertex, the owner of the vertex is the processor with the lowest rank.

Like for the cells, data structures for ghost data exchange are built also for the vertices.

@andrea-iob andrea-iob force-pushed the patchkernel.ghost.vertices branch 2 times, most recently from edb0478 to 1c508b4 Compare August 26, 2020 18:29
@andrea-iob andrea-iob added this to the 1.7 milestone Sep 12, 2020
@andrea-iob andrea-iob force-pushed the patchkernel.ghost.vertices branch 2 times, most recently from df6ad38 to 9b6e8e8 Compare October 2, 2020 16:50
@andrea-iob andrea-iob force-pushed the patchkernel.ghost.vertices branch 2 times, most recently from 4ef01aa to f17e9a3 Compare October 16, 2020 11:23
@@ -2947,6 +3234,54 @@ std::vector<int> PatchKernel::getNeighbourRanks()
return neighRanks;
}

/*!
Gets a constant reference to the ghost targets needed for data exchange.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A comment here can help to understand better what are ghost targets. Something like:

For each source rank (key of the returned map) the ordered list of the local ids of the ghost vertices is provided. These vertices are involved as targets in a send/receive data exchange. Targets ghost vertices on a receiving rank have the same order of the source vertices on the related sending rank.

Maybe, it can be written more clearly....


/*!
Gets a constant reference to the ghost sources needed for data exchange.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The same as for target vertices.
Here, we can also add a comment explaining that the sources are internal vertices and not ghost vertices.

Sources ids are the ids of the local vertices, owned by the current rank, that are involved as sources in data exchange for each receving rank.

//
// Identify exchange sources
//
// Since vertices are shared among elements, data exchange does not involve
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This comment is really clear, maybe can be included in some method documentation?

For instance in a getGhostTarget/SourceVertexExchangeInfo()? Or in the documentation of this method?

Does it make sense?

@andrea-iob andrea-iob force-pushed the patchkernel.ghost.vertices branch 2 times, most recently from f3223b7 to bc893c6 Compare December 15, 2020 08:11
@andrea-iob andrea-iob merged commit 32bde41 into master Dec 19, 2020
@andrea-iob andrea-iob deleted the patchkernel.ghost.vertices branch December 19, 2020 16:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants