Open MPI logo

Frequently Asked Questions

  |   Home   |   Support   |   FAQ   |   all just the FAQ

Table of contents:

  1. What is netloc?
  2. What types of networks does netloc support?
  3. How do netloc and hwloc work together?
  4. What is "mapping"?
  5. What is a "reader"?


1. What is netloc?

The Portable Network Locality (netloc) software package provides network topology discovery tools, and an abstract representation of those networks topologies for a range of network types and configurations. It is provided as a companion to the Portable Hardware Locality (hwloc) package. These two software packages work together to provide a comprehensive view of the HPC system topology, spanning from the processor cores in one server to the cores in another - including the complex network(s) in between.

Towards this end, netloc is divided into three components:

  • Network topology discovery tools for each network type and discovery technique (called readers).
  • erging hwloc server topology information with that network topology information to produce a unified map of an entire computing system (even if that system includes multiple networks of different types, and servers that are on at least one of those networks).
  • A portable C API for higher-level software to query, traverse, and manipulate the abstract representation of the network topology and unified map (represented as a graph)
The network topology graph not only provides information about the physical nodes and edges in the network topology, but also information about the paths between nodes (both physical and logical, where available). Since the type of analysis (e.g., graph partitioning) required of this graph is often application-specific, netloc limits the amount of analysis it performs and leaves further analysis to higher level applications and libraries built upon this service. Additionally, the lsnettopo CLI tool can display and export this network topology information in a variety of formats (e.g., GraphML and GEXF file formats) providing developers with an additional mechanism to access the data for further analysis.

Similar to hwloc, netloc primarily aims at helping applications with gathering information about modern computing and networking hardware so as to exploit it accordingly and efficiently.


2. What types of networks does netloc support?

The project currently supports the following networks:

  • Ethernet networks using OpenFlow
  • InfiniBand networks

We are always working to support for additional networks. If there is a particular network technology or configuration that you would like us to support then please contact us on the development mailing list.


3. How do netloc and hwloc work together?

The hwloc project provides a detailed view of the server topology from compute cores to memory domains to PCI connected devices such as network cards. The netloc core readers have the ability to discover the network topology from the switches to each individual network card.

The netloc core readers themselves do not have enough information to determine which network cards belong to the same server. By mapping the network topology (discovered by the netloc core readers) with the hwloc server topology netloc is able to group the network cards installed into the same server box. The mapping joins these two topologies allowing the user to trace a path from a processor core on one server to the cores in another through the network(s) between them.


4. What is "mapping"?

The netloc project uses the term "mapping" when we are combining the network topology information with the server topology information. Specifically, mapping joins together the network cards in the hwloc topologies to their corresponding network interfaces in the netloc topology.

The mapping process also allows multiple types of and subnets within networks to be accessed together. For example, if you have a cluster that has an InfiniBand network and multiple Ethernet networks the mapping process will connect these network topologies to the appropriate network cards in the server topologies during the mapping phase. The end user can differentiate those two networks by identifiers on their associated data structures.


5. What is a "reader"?

A netloc "reader" is a command line tool that is used to access the network topology for a specific network type. As such there is at least one reader for each network type. The goal of the reader is to hide the discovery mechanism from the end user, access the topology information, and preserve that network topology information to a network independent format. The readers use the Data Collection API internally to save the network topology information into a netloc specific format.