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  |  Inclusivity Statement