5 Hardware #
This chapter describes tools that can be used to obtain hardware infrastructure information for HPC applications.
5.1 cpuid #
cpuid
executes the x86 CPUID instruction and decodes
and prints the results to stdout
. Its knowledge of Intel, AMD and Cyrix
CPUs is fairly complete. It specifically targets the Intel Xeon Phi
architecture.
To install cpuid
, run zypper in cpuid
.
For information about runtime options for cpuid
, see the
man page cpuid(1)
.
Note that this tool is only available for x86-64.
5.2 hwloc — portable abstraction of hierarchical architectures for high-performance computing #
hwloc
provides CLI tools and a C API to
obtain the hierarchical map of key computing elements, such as NUMA
memory nodes, shared caches, processor packages, processor cores,
processing units (logical processors or “threads”), and I/O
devices. hwloc
also gathers various attributes such as
cache and memory information, and is portable across a variety of different
operating systems and platforms. It can also assemble the
topologies of multiple machines into a single one, so that applications
can read the topology of an entire fabric or cluster at once.
lstopo
allows the user to obtain the topology
of a machine or convert topology information obtained on a remote
machine into one of several output formats. In graphical mode (X11),
it displays the topology in a window. Other available formats include
plain text, PDF, PNG, SVG and FIG.
For more information, see the man pages provided by
hwloc
and lstopo
.
hwloc
features full support for import and export of XML-formatted
topology files via the libxml2
library.
The package hwloc-devel
offers a library that can be
directly included into external programs. This requires that the
libxml2
development library (package
libxml2-devel
) is available when compiling
hwloc
.