Compute#
This chapter covers some basics on compute devices and their software interfaces.
The primary devices of interest to us are Central Processing Units (CPUs) and Graphics Processing Units (GPUs), however in the HPC domain there are a spectrum of other specialized computing devices including Field Programmable Gate Arrays (FPGAs), Application Specific Integrated Circuits (ASICs), Tensor Processing Units (TPUs) and many others. In general, the trade-off is flexibility or generality of the available compute model versus performance or throughput.
When choosing a compute device, general concerns include:
Processing speed, often determined by number of floating point operations per second (flops)
Energy consumption, typically as Power draw in Watts
Ability to run target software on the architecture, which depends on available libraries and nature of both the problem at hand and the archicture characteristics themselves.