4 Hardware #
This chapter describes tools that can be used to obtain hardware infrastructure information for HPC applications.
4.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.
4.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.