Parallelisation of equation-based simulation programs on heterogeneous computing systems

Numerical solutions of equation-based simulations require computationally intensive tasks such as evaluation of model equations, linear algebra operations and solution of systems of linear equations. The focus in this work is on parallel evaluation of model equations on shared memory systems such as...

Full description

Bibliographic Details
Main Author: Dragan D. Nikolić
Format: Article
Language:English
Published: PeerJ Inc. 2018-08-01
Series:PeerJ Computer Science
Subjects:
Online Access:https://peerj.com/articles/cs-160.pdf
id doaj-2d7b0df641874410880a64f39d5744ba
record_format Article
spelling doaj-2d7b0df641874410880a64f39d5744ba2020-11-24T23:39:28ZengPeerJ Inc.PeerJ Computer Science2376-59922018-08-014e16010.7717/peerj-cs.160Parallelisation of equation-based simulation programs on heterogeneous computing systemsDragan D. NikolićNumerical solutions of equation-based simulations require computationally intensive tasks such as evaluation of model equations, linear algebra operations and solution of systems of linear equations. The focus in this work is on parallel evaluation of model equations on shared memory systems such as general purpose processors (multi-core CPUs and manycore devices), streaming processors (Graphics Processing Units and Field Programmable Gate Arrays) and heterogeneous systems. The current approaches for evaluation of model equations are reviewed and their capabilities and shortcomings analysed. Since stream computing differs from traditional computing in that the system processes a sequential stream of elements, equations must be transformed into a data structure suitable for both types. The postfix notation expression stacks are recognised as a platform and programming language independent method to describe, store in computer memory and evaluate general systems of differential and algebraic equations of any size. Each mathematical operation and its operands are described by a specially designed data structure, and every equation is transformed into an array of these structures (a Compute Stack). Compute Stacks are evaluated by a stack machine using a Last In First Out queue. The stack machine is implemented in the DAE Tools modelling software in the C99 language using two Application Programming Interface (APIs)/frameworks for parallelism. The Open Multi-Processing (OpenMP) API is used for parallelisation on general purpose processors, and the Open Computing Language (OpenCL) framework is used for parallelisation on streaming processors and heterogeneous systems. The performance of the sequential Compute Stack approach is compared to the direct C++ implementation and to the previous approach that uses evaluation trees. The new approach is 45% slower than the C++ implementation and more than five times faster than the previous one. The OpenMP and OpenCL implementations are tested on three medium-scale models using a multi-core CPU, a discrete GPU, an integrated GPU and heterogeneous computing setups. Execution times are compared and analysed and the advantages of the OpenCL implementation running on a discrete GPU and heterogeneous systems are discussed. It is found that the evaluation of model equations using the parallel OpenCL implementation running on a discrete GPU is up to twelve times faster than the sequential version while the overall simulation speed-up gained is more than three times.https://peerj.com/articles/cs-160.pdfModellingSimulationHeterogeneous computingParallel computingDifferential-algebraic equationsEquation-based
collection DOAJ
language English
format Article
sources DOAJ
author Dragan D. Nikolić
spellingShingle Dragan D. Nikolić
Parallelisation of equation-based simulation programs on heterogeneous computing systems
PeerJ Computer Science
Modelling
Simulation
Heterogeneous computing
Parallel computing
Differential-algebraic equations
Equation-based
author_facet Dragan D. Nikolić
author_sort Dragan D. Nikolić
title Parallelisation of equation-based simulation programs on heterogeneous computing systems
title_short Parallelisation of equation-based simulation programs on heterogeneous computing systems
title_full Parallelisation of equation-based simulation programs on heterogeneous computing systems
title_fullStr Parallelisation of equation-based simulation programs on heterogeneous computing systems
title_full_unstemmed Parallelisation of equation-based simulation programs on heterogeneous computing systems
title_sort parallelisation of equation-based simulation programs on heterogeneous computing systems
publisher PeerJ Inc.
series PeerJ Computer Science
issn 2376-5992
publishDate 2018-08-01
description Numerical solutions of equation-based simulations require computationally intensive tasks such as evaluation of model equations, linear algebra operations and solution of systems of linear equations. The focus in this work is on parallel evaluation of model equations on shared memory systems such as general purpose processors (multi-core CPUs and manycore devices), streaming processors (Graphics Processing Units and Field Programmable Gate Arrays) and heterogeneous systems. The current approaches for evaluation of model equations are reviewed and their capabilities and shortcomings analysed. Since stream computing differs from traditional computing in that the system processes a sequential stream of elements, equations must be transformed into a data structure suitable for both types. The postfix notation expression stacks are recognised as a platform and programming language independent method to describe, store in computer memory and evaluate general systems of differential and algebraic equations of any size. Each mathematical operation and its operands are described by a specially designed data structure, and every equation is transformed into an array of these structures (a Compute Stack). Compute Stacks are evaluated by a stack machine using a Last In First Out queue. The stack machine is implemented in the DAE Tools modelling software in the C99 language using two Application Programming Interface (APIs)/frameworks for parallelism. The Open Multi-Processing (OpenMP) API is used for parallelisation on general purpose processors, and the Open Computing Language (OpenCL) framework is used for parallelisation on streaming processors and heterogeneous systems. The performance of the sequential Compute Stack approach is compared to the direct C++ implementation and to the previous approach that uses evaluation trees. The new approach is 45% slower than the C++ implementation and more than five times faster than the previous one. The OpenMP and OpenCL implementations are tested on three medium-scale models using a multi-core CPU, a discrete GPU, an integrated GPU and heterogeneous computing setups. Execution times are compared and analysed and the advantages of the OpenCL implementation running on a discrete GPU and heterogeneous systems are discussed. It is found that the evaluation of model equations using the parallel OpenCL implementation running on a discrete GPU is up to twelve times faster than the sequential version while the overall simulation speed-up gained is more than three times.
topic Modelling
Simulation
Heterogeneous computing
Parallel computing
Differential-algebraic equations
Equation-based
url https://peerj.com/articles/cs-160.pdf
work_keys_str_mv AT dragandnikolic parallelisationofequationbasedsimulationprogramsonheterogeneouscomputingsystems
_version_ 1725513367032954880