The future in automotive, aerospace, electronics, medical, and all industries is to obtain scalability. The predecessor of the HPC servers were the large central computers that eventually turned to distributed computers. Distributed computers needed more power and linking them gave way to today’s High Performance Computing. Today’s High Performance Computing is distributed and links large amounts of data from various locations in a seamless environment.Parallel techniques and programming models evolved based mainly on their 'ease' of use and potential for commercial success, both of which are closely related (e.g. shortened time-to-market for MCAE software).

Evolution: There existed roughly 4 choices over time:

1. SMP Fine Grain

Classic Vector choice since H/W offered very few, very fast CPUs, scalability to 4 CPUs typically. Parallelism at the DO-LOOP (matrix/data) level and with compiler options. OpenMP has improved this somewhat today to about 16 CPUs, but not 100's to 1000's that is capable today.

2. SMP Coarse Grain

Evolved with SMP programming model as way to higher levels of parallel within an application. Rather than data level, sought parallelism at the geometry, or domain level. There were not many tools to assist with this effort.

3. DMP (Distributed Memory Parallel)

Began with MPP architectures and cluster of networked W/Ss, and software tools such as PVM (parallel virtual machine) but did not achieve success commercially until current RISC architectures and MPI. Another breakthrough for commercial MCAE software were robust graph partitioning schemes such as METIS that could effectively partition the geometry domain to (1) eliminate the need for user inter-action, (2) evenly distribute computational 'work' between each partition of the domain, and (3) minimize boundary communication, across which messages must be passed (again more on this below on H/W). This is the most popular choice today for MCAE applications.

4. Hybrid SMP/DMP

This is what's now emerging, the potential to use say OpenMP within an SMP 'node' whereby a node is typically as large as 16 CPUs and MPI between the SMP nodes. This method seeks to leverage the programming and performance advantages of both SMP and DMP.

Common terms:

High Performance Computing (HPC), sometimes called High Performance and Technical Computing (HPTC), commonly refers to numerically-intensive computations in scientific and technical fields. These computations are usually performed on servers, supercomputers, or clusters – often, hundreds, or thousands of CPU’s (nodes"), and a job can run for hours, days, and even weeks.  Typical HPC applications include in addition to crash and occupant safety simulations: product structural integrity simulations; computational fluid dynamics (CFD); noise, vibration, and harshness (NVH); aero acoustics; computational biology or bioinformatics (gene sequencing, protein folding, etc.); astrophysics (planetary motion, asteroids, space exploration); computational chemistry (molecular modeling, drug design); weather forecasting; geophysics (plate tectonics, seismic prediction); nuclear weapons design; classified defense/intelligence; oil and gas exploration; high energy physics (e.g., CERN, Argonne, Brookhaven); and computational finance (economic modeling, stock market analysis, risk assessment).

In addition to the number-crunching compute servers, other important elements in a typical HPC environment include: accessibility (perhaps using mobile devices); portals; storage devices; high-performance file systems; networking and high-speed data transfer; interconnects; grid computing (campus grids, cluster grids, and global grids) and load management middleware (e.g., LSF, PBS, Sun Grid Engine, etc.); RAS (reliability, accessibility, and serviceability); and increasingly important, security

 High Performance Computing (HPC) - Workstations - Supercomputers, High Speed Networks, MPP Systems - Contact the following for your solution needs: