Open MPI logo

Frequently Asked Questions

  |   Home   |   Support   |   FAQ   |   all just the FAQ
This FAQ is for Open MPI v4.x and earlier.
If you are looking for documentation for Open MPI v5.x and later, please visit docs.open-mpi.org.

Table of contents:

  1. How many API's are there? Which one(s) should I use?
  2. What is the Data Collection API?
  3. What is the Network Metadata API?
  4. What is the Network Topology Query API?
  5. What is the Map API?
  6. Are there any example programs that I can reference to get started?


1. How many API's are there? Which one(s) should I use?

The netloc project has four sections to its API, each listed below.

  1. Data Collection API
  2. Network Metadata API
  3. Network Topology Query
  4. Map API

If you are an application programmer you will probably want to focus on APIs #2, #3, and #4. If you are interested in developing a reader for a new network then you will want to look at API #1.


2. What is the Data Collection API?

This API is used by the readers to create the netloc-common .ndat topology files. This API can be used by other system services (e.g., resource managers, MPI) to produce .ndat files that represent a subset of the network, or to further annotate the network information.

Futher details can be found in the header linked below:
/include/netloc_dc.h


3. What is the Network Metadata API?

This API is used by the application to access high level information about the network types and subnets available on the system without pulling all of the network information. An application may use this API to search for a specific type of network or subnet, or to request information about all available networks.

Futher details can be found in the header linked below:
/include/netloc.h


4. What is the Network Topology Query API?

This API is used by the application to access specific information about nodes and edges in a single network subnet graph.

Futher details can be found in the header linked below:
/include/netloc.h


5. What is the Map API?

Futher details can be found in the header linked below:
/include/netloc_map.h


6. Are there any example programs that I can reference to get started?

The netloc repository contains a few examples in the tests sub-directory:
/tests

A few exemplars to get you started:

  • The map_paths.c test provides the path between two processors on separate servers.
  • The test_metadata.c demonstrates ways to use the Network Metadata API to discover sets of networks.