Refactor: remove comm_2D from Parallel_2D (Useful Information: BLACS encapsulates MPI and maintains its own internal data structure for MPI communicators) #4658
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
BLACS encapsulates MPI and maintains its own internal data structure for MPI communicators, and it is inadvisable to have MPI and BLACS functions intertwined. Given a BLACS context, one can always obtain its underlying MPI communicator via blacs_get followed by blacs2sys_handle. So, in theory, in the presence of a BLACS context, there's no need to hold its underlying MPI communicator explicitly. Maintaining both the BLACS context and its underlying MPI communicator within the same class not only cause confusion, but also make it bug-prone if not synchronized appropriately. This is particularly troublesome given that they are both public members and widely used in the code.
What's changed?