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
©
|
Cornell University
|
Center for Advanced Computing
|
Copyright Statement
|
Access Statement
CVW material development is supported by NSF OAC awards 1854828, 2321040, 2323116 (UT Austin) and 2005506 (Indiana University)
CVW material development is supported by NSF OAC awards 1854828, 2321040, 2323116 (UT Austin) and 2005506 (Indiana University)