Hierarchical parallelism in a physical modelling synthesis code

James Perry, Stefan Bilbao, Alberto Torin

Research output: Chapter in Book/Report/Conference proceedingConference contribution


Modern computer hardware provides parallelism at various dierent levels - most obviously, multiple multicore processors allow many independent threads to execute at once. At a ner-grained level, each core contains a vector unit allowing multiple integer or
oating point calculations to be performed with a single instruction. Additionally, GPU hardware is highly parallel and performs
best when processing large numbers of independent threads. At the same time, tools such as CUDA have become steadily more abundant and mature, allowing more of this parallelism to be exploited.
In this paper we describe the process of optimising a physical modelling sound synthesis code, the Multiplate 3D code, which models the acoustic response of a number of metal plates embedded within a box of air. This code presented a number of challenges and no single optimisation technique was applicable to all of these. However, by exploiting parallelism at several dierent levels (multithreading, GPU acceleration, and vectorisation), as well as applying other optimisations, it was possible to speed up the simulation very signicantly.
Original languageEnglish
Title of host publicationParCo2015
PublisherIOS Press
Number of pages11
Publication statusPublished - 2016

Fingerprint Dive into the research topics of 'Hierarchical parallelism in a physical modelling synthesis code'. Together they form a unique fingerprint.

Cite this