HPC Servers 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
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.