Skip to content
Snippets Groups Projects

WIP: Feature/convenient mpi

Closed Nils-Arne Dreier requested to merge nils.dreier/dune-common:feature/convenient_mpi into master

Hi, we propose here a more convenient interface to MPI, which implements the following features:

  • non-blocking communications using future-concept (oriented at std::future)
  • supporting exceptions
    • MPIErrors are treat by exceptions
    • extending existing MPIGuard capabilities
    • using ULFM if available
    • fallback to blackchannel approach, which is used to propagate an error state through the communicator and prevent deadlocks.
  • resource management for MPI_Comm
  • Datatypes
    • communication of dynamic datatypes that are stored in consecutive memory (e.g. std::vector)
    • MPIPack represents MPI_Pack. It can collocate objects of different types and send it within a single statement.
  • Point to point communication (blocking and nonblocking)
  • Collective communication (blocking and non-blocking)
  • Low-level wrapper for MPI_IO (File IO)
  • Low-level wrapper for MPI_Win (Remote memory access)
  • high-level methods
    • Generic ring communication
    • NeighborIndexMapping construction

Sometimes we where a little bit rough when remove old interfaces. E.g.

  • CollectiveCommunication<MPI_Comm>
  • GuardCommunicator Whats you opinion?

I'm try to put sufficient documentation in the code, please let me know where things are not clear.

I'm looking forward to comments.

Best, Nils

Merge request reports

Pipeline #6863 passed

Pipeline passed for 0f4ac173 on nils.dreier:feature/convenient_mpi

Approval is optional

Closed by Nils-Arne DreierNils-Arne Dreier 7 years ago (Feb 7, 2018 8:42am UTC)

Merge details

  • The changes were not merged into master.

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
Please register or sign in to reply
Loading