October 15, 2020
One of the most discussed topics in the advancement of high-performance computing (HPC) is how commercial and open-source software have adapted to the HPC revolution and integrated parallel computing algorithms into their source-code to best take advantage of the new infrastructures. While some software focused on select portions of their kernels such as parallel solvers and post-processing tools, others took a more holistic approach and redesigned their entire software to take full advantage of the HPC capabilities.
This article highlights the types of software most widely used with Cloud HPC and specific software examples.
Biostatistics HPC Software
In the world of bio-modeling and biostatistics, MrBayes, a modeling software used for Bayesian statistical inference across a wide range of phylogenetic and evolutionary models, is considered the gold standard. MrBayes uses Markov Chain Monte Carlo (MCMC) simulation methods to estimate model parameters' posterior distribution.
As far as implementation is concerned, MrBayes is available both in a serial and parallel version. The parallel MrBayes version uses message passing interface (MPI) instructions to distribute computations across several processors or cores. This version must be compiled from its source code and only runs on Linux/Unix. The serial MrBayes version does not support multithreading and therefore does not allow its users to use more than one core on a multi-core machine for a single analysis.
Computational Fluid Dynamics (CFD) HPC Software
Ansys Fluent and Siemens STAR-CCM+ software are two of the most widely used for computational fluid dynamics (CFD) analysis.
Fluent, developed as an efficient and performant CFD solver, can analyze myriads of complex problems. Its spin-off, Icepak, uses the pressure-based Fluent solver for electronics cooling. HPC providers have moved towards heterogeneous computing systems where central processing units (CPUs) and accelerators work in tandem. Fluent adapted well to the transition, taking advantage of this trend in the HPC industry. Fluent is now a highly scalable parallel software with concurrent meshing capabilities and network parallel solvers that improve CFD simulations' performance.
Siemens engineered STAR-CCM+ with parallel scalability as the focus. The popular simulation software has been performance tested over thousands of computational cores to ensure that, when available, the software is ready to utilize these resources. STAR-CCM+ HPC operates its processing at 80% efficiency with just 5,000 cells per CPU core.
Multithreading and parallel processing, breaking down the job into manageable sized packets of data distributed among several cores and machines and reassembled after processing, is implemented for pre-processing (parallel meshing), CFD solvers, and post-processing. Most HPC providers use MPI instructions to distribute computations across processors or cores for CFD Software.
Finite Element Analysis (FEA) HPC Software
Ansys Software Suite, such as Mechanical, Design Explorer, or LS-Dyna, kernels, and processing utilities, is also highly optimized for taking advantage of HPC capabilities.
Parallel meshing is now the default option in Mechanical and the solver is designed to take advantage of graphic processing units (GPU) acceleration. Advanced parallel processing (shared memory and distributed memory) algorithms implemented in the Ansys Software Suite efficiently utilize multi-core processors from a single machine or in a grouping of machines on a network. No loss of accuracy is observed when using one core vs. 1000 cores.
The network parallelization is also available in batch mode, highly recommended for speeding up processing times. If interactive mode is needed, Ansys Mechanical and other FEA software can take advantage of the option that places a GPU on your head-node, therefore offering better visual performance.
The examples above showcase how the HPC revolution is shaping software development toward MPI and the parallelization of tasks. Jobs are submitted to multiple nodes across a network using MPI technology. The results are assembled for post-processing, increasing computational speed and solver efficiency and allowing the analyst to solve increasingly complex problems at a fixed incremental cost.