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
Towards this end, netloc is divided into three components:
- Network topology discovery tools for each network type and
discovery technique (called readers)
- 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).
- 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.
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
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
netloc supports the following operating systems:
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
But now at least you know how we pronounce it. :-)
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
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.