Open MPI logo

Portable Network Locality (netloc)

  |   Home   |   Support   |   FAQ   |  

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:

  1. Network topology discovery tools for each network type and discovery technique (called readers)
  2. Merging 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).
  3. 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.

Portability and support

netloc is still in early days -- there is much work to be done before it is ready for prime time. However, netloc currently supports InfiniBand networks and OpenFlow-managed Ethernet networks.

netloc supports the following operating systems:

  • Linux
  • Mac OS X

How do you pronounce "netloc"?

When in doubt, say "network locality."

Some of the core developers say "Net. Loke"; others say "Net. Lock". We've heard several other pronunciations as well. We don't really have a strong preference for how you say it; we chose the name for its Google-ability and similarity to hwloc, not its pronunciation.


Questions and bugs

Questions, comments, and bugs should be sent to netloc mailing lists.

Also be sure to see the netloc wiki and bug tracking system.

History / credits

netloc is the natural evolution of the hwloc project. The authors of hwloc have long-since wanted to extend locality information to include networking resources. However, after examining hwloc and the requirements needed to expose network locality information, it was determined that netloc should be a standalone project -- extending hwloc wouldn't be the right abstraction. As such, netloc uses hwloc, but is a new system on its own.