Parallel Processing in FLOW-3D
"There is more to life than increasing its speed." -- Mahatma Gandhi
The great Indian independence activist understood much about life and the human condition, but his ideas certainly do not translate 100% to the realm of computational fluid dynamics. When it comes to runtimes for a flow simulation, it seems as though there is nothing more important than increasing speed.
Flow Science's developers are given one fundamental precept when working on the FLOW-3D code: Make it fast and efficient. Nevertheless, despite every effort to abide by this admonition, the reality is that users are better at pushing the envelope with larger and more complex problems than Flow Science's developers are at speeding up FLOW-3D.
Beginning with Version 7.7 of FLOW-3D, Flow Science introduced parallel processing to its users**. This version of parallel processing employs OpenMP protocols, which enable the use of two or more shared-memory processors to run a single calculation. However, OpenMP scaling is limited by both hardware and software. Some of FLOW-3D's modeling options could not be parallelized at all. More importantly, memory limitations of a single computer put a cap on the size of flow problems, even on multi-million dollar UNIX workstations.
A different kind of parallel processing protocol, designed for distributed memory computing on clusters or networked grids of computers, has grown in favor for large-scale problems. This protocol is known as Message Passing Interface (MPI). The basic concept is that a group of processors, tied together by a high-speed communications link, will solve discreet portions of a computation and share the results at each time step by passing messages back and forth. This compares to the approach in OpenMP, where each processor shares the load on computing the entire domain
Since early 2003, Flow Science has been working closely with MPI Software Technology Inc., a leading commercial developer of parallel programming environments and middleware for cluster computing, on the creation of a cluster version of FLOW-3D based on Version 8.2. This new release will be known as FLOW-3D/MP. The development work is nearing completion, and Flow Science and MSTI are beginning to test a beta version of FLOW-3D/MP for Linux clusters. The goal is to release FLOW-3D/MP this summer. The target is to achieve a 10-12 times speed-up on a 16-processor cluster for a series of test problems. The initial version of FLOW-3D/MP will be limited to Linux clusters only, but plans are to consider extension to other platforms, such as Windows, after initial release and after assessing customer demand.
In order to take advantage of this speed-up, users will require an upgrade to FLOW-3D/MP, an upgrade that is not covered by standard maintenance contracts. For more information, contact Flow Science at firstname.lastname@example.org.
"Speedy execution is the mother of good fortune." -- Danish proverb.
**The platforms on which FLOW-3D is ported for parallel processing are shown on our website on ;our parellel computing page.