Testing parallel processing for faster project times
Parallelisation is an approach that seeks to speed up the execution of a program by using more than one processor. Processing load is distributed amongst multiple processors by the application code and each processor returns its results to the controlling module upon completion. The application can therefore be executed in significantly less time than if a single processor was used.
During our research study, we aimed to gain an understanding of how to implement parallel processing using TELEMAC and to test its performance in parallel.
Parallel computing can offer benefits including:
These features should help HR Wallingford to maintain its competitiveness in an environment of ever-growing processing requirement.
There were very positive outcomes in a wide range of scenarios with TELEMAC in parallel. Using twelve processors we noted a six-fold increase in speed. Gains varied between models. The more computationally demanding runs benefited the most, because communication time between processors is negligible compared to calculation time. We also found that communication over the network between computers did not slow down the simulation - run times sometimes improved. Speed-up factor of 1000 can be achieved on very large models on a suitable high performance computer.
We detailed the hardware and software setup of TELEMAC in parallel, highlighting the need for management of parallel processing on a company-wide basis in order to provide smooth operation.
On the hardware side, a parallel architecture can be built using either a cluster of mainstream computers (allowing for greater flexibility), or a smaller set of super-computers (allowing for a simpler management and a smaller physical footprint).
As a result of this research project, we were able to identify and test other software within the company that could benefit from a parallel processing approach.
We identified ways of optimising model code for use on a parallel architecture, suggesting a method for selecting the models currently used at Wallingford that would benefit most from parallel implementation. Amongst these, we chose PLUME-RW as a test case to investigate the optimisation of model code.
"We identified ways of optimising model code for use on a parallel architecture, suggesting a method for selecting the models currently used that would benefit most from parallel implementation."