An Introduction to HPC
What is HPC ?
Definition...
High Performance Computing and Networking can be defined as computing resources
which provide more than an order of magnitude more computing power than is
normally available on ones desk top.
This includes the computers, networks, algorithms and environments necessary to
make such systems usable. These systems range from a departmental cluster of
workstations, up to the largest super-computers.
A Measure of Performance... !
Traditionally HPC systems have been used in the scientific and engineering
fields.
These fields are dominated by simulations:
- Computational Fluid Dynamics (CFD).
- Molecular Dynamics (MD)
- Quantum Chromo-Dynamics (QCD).
Codes are almost exclusively written in Fortran 77 (90%) and C.
Computations are all highly "floating point" intensive:
The performance measure used is therefore based on how many floating
point operations can be achieved in one second (flop/s).
A Measure of Performance... !
Some views of flop/s as a performance measure.
The results of unscientific survey of harassed delegates at a recent computer
conference...
- "Floating point? yeah, that's in football. A defensive play. A quick guy
goes deep on his own, looking for some receiver who thinks he's open, but then
the floater spoils his day."
- "That's easy. We had it in Physics. Floating point is a narrow range in
liquids, just below the boiling point"
- "I didn't read the book, and it was late when they showed the movie on TV.
I fell asleep. Sharon Stone bores me, anyway."
The Need for HPC...
Solve/compute increasingly more demanding problems; for example introducing
finer grids or smaller iterations periods.
This has resulted in the need for:
- More compute power (faster CPU !).
- Computers with more hardware resources (memory, disk, etc...).
Typical application areas include:
- Scientific and Engineering.
- Financial Modelling.
- Virtual Reality.
- Database - fast retrieval of data, from video to query data.
The Limitations of Sequential Processing.
- Physical limits to the speed of a single processor:
- Speed of light (30 cm/nanosecond).
- Copper wire (9 cm/nanosecond).
- Silicon technology (~0.3 micron at present).
- Diminishing returns - it is increasingly more expensive to make a single
processor faster.
What is the alternative?
- Move to parallel processing - use lots of relatively fast,
cheap processors (commodity) in parallel.
What is Parallel Processing ?
This is the concurrent use of multiple processors to process data.
Either by:
- Running the same program on each processor.
or by:
- Running different programs on each processor.
Submitted by Mark Johnston,
Last updated 6 April 1995.