Exploring computer architecture

Experimental html version of downloadable textbook, see http://www.tacc.utexas.edu/~eijkhout/istc/istc.html
\[ \newcommand\inv{^{-1}}\newcommand\invt{^{-t}} \newcommand\bbP{\mathbb{P}} \newcommand\bbR{\mathbb{R}} \newcommand\defined{ \mathrel{\lower 5pt \hbox{${\equiv\atop\mathrm{\scriptstyle D}}$}}} \] 43.1 : Tools for discovery
43.1.1 : Intel cpuinfo
43.1.2 : hwloc
Back to Table of Contents

43 Exploring computer architecture

There is much that can be said about computer architecture. However, in the context of parallel programming we are mostly concerned with the following:

  • How many networked nodes are there, and does the network have a structure that we need to pay attention to?
  • On a compute node, how many sockets (or other NUMA domains) are there?
  • For each socket, how many cores and hyperthreads are there? Are caches shared?

43.1 Tools for discovery

crumb trail: > architecture > Tools for discovery

An easy way for discovering the structure of your parallel machine is to use tools that are written especially for this purpose.

43.1.1 Intel cpuinfo

crumb trail: > architecture > Tools for discovery > Intel cpuinfo

The Intel compiler suite comes with a tool cpuinfo that reports on the structure of the node you are running on. It reports on the number of package s, that is: sockets, cores, and threads.

43.1.2 hwloc

crumb trail: > architecture > Tools for discovery > hwloc

The open source package hwloc does similar reporting to cpuinfo, but it has been ported to many platforms. Additionally, it can generate ascii and pdf graphic renderings of the architecture.

Back to Table of Contents