2 ◾ Industrial Applications of High-Performance Computing
or blue cables in homes and businesses. In supercomputing applications,
even faster communication is used and highly proprietary communication
schemes push speeds to 4–100 times the speeds of common Ethernet,
using parallel, simultaneous data paths to push and pull data from CPUs
to storage and memory and back.
Four basic components of supercomputing can be described as follows:
1. Parallel processing, using multiple cores per CPU, multiple CPUs in a
single computer, and multiple computers in a supercomputer. Agood
consumer CPU example is a dual-core or quad-core processor in a
laptop computer, which allows soware applications to do two or
four operations at once. CPUs used in supercomputers will typically
have between 8 and 32 cores, with newer general purpose graphics
processing units (GPUs) deploying hundreds of cores.
2. Large memory, with each computer holding 32, 64, 256, or
more gigabytes of memory, depending on the specic science or
3. Multiprocessor, or multinode communication, allowing an entire
collection of computers to be used in a single application. Special
soware techniques, such as MPI (Message Passing Interface) must
be used for sharing an application across two or more computers.
Supercomputers might pass information simultaneously among
25,000 or more individual computers.
4. Parallel le systems move data between compute nodes and storage
(disks, magnetic tape, and solid-state devices), using multiple
channels simultaneously, rather than one, to speed up data input
and output. In very advanced systems, large caches of memory sit
between the storage and compute systems to minimize bottlenecks.
As in all computers, supercomputers require an operating system—
commonly Linux—as well as machine-management soware known
as middleware. Specic application soware will map to the operating
system, and ultimately to the machine components themselves through
the use of compilers, which translate word-based programs into machine
language that only recognizes zeros and ones.
Supercomputing adds signicant complexity for users due to
idiosyncrasies of various vendor platforms, processors, storage disks, and
so on. ese dierences are routinely subtle and nonobvious, leading to