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.