Process Topologies
What Is a Virtual Topology?
Topology is an extra, optional attribute you can give to a communicator. The assigned topology can correspond to the network interconnect between processes or some other aspect of the underlying hardware, but it does not have to.
- Simple linear rank (0,1,... n-1) may not adequately express the communication pattern.
- Often, communication between processes is logically arranged in a pattern such as a 2- or 3-dimensional grid.
- This logical process arrangement is generally described by a graph or “virtual topology”.
How to Use Virtual Topologies
- Creating a topology produces a new communicator.
- MPI provides mapping functions; between old and new communicators.
- Mapping functions compute processor ranks in a manner consistent with the specified topology.
Topology Types
Cartesian topologies
- Each process is connected to its neighbors in a virtual n-dimensional grid.
- Boundaries in each dimension can be cyclic (periodic), or not.
- Result: processes can be conveniently identified by Cartesian coordinates.
Graph topologies (not covered in this topic)
- Graphs (undirected graphs)
- Distributed graphs (directed graphs; noncollective)
Neighborhood collectives
- Defined over existing topologies
- Allows programmer to induce a communicator for neighboring nodes