Parallelizing a Real-time Audio Application - A Case Study in Multithreaded Software Engineering
-
Tagung:
Konferenzartikel
-
Autoren:
Marc Aurel Kiefer
Korbinian Molitorisz
Jochen Bieler
Walter F. Tichy -
Summary
Multicore hardware is ubiquitous, but billions of lines of code in performance-critical commodity software are still sequential. Although parallel libraries, design patterns, and best practice guidelines are available, thinking parallel is still a big challenge for many software engineers.
In this paper we present a case study on parallelizing commodity software using a commercial real-time audio application with over 700,000 lines of code. In contrast to best practice guidelines, our goal is to investigate what parallelization strategy can effectively be used in data stream-intensive applications. Performing an in-depth analysis of the software architecture and its run-time performance, we locate parallelization potential and propose three different parallelization strategies. We evaluate them with respect to their parallel performance impact.
Regarding the application's intrinsic real-time requirement and a very short audio cycle turnaround time, a busy-waiting strategy offers the best audio performance of 327 µs per cycle on an eight-core machine. With an efficiency of 99% this is close to the optimal schedule.
-
Jahr:
2015
- Links:
Titel Vorname Nachname |
---|
M.Sc. Marc Aurel Kiefer |
Dr. Ing. Korbinian Molitorisz |
Prof. em. Dr. Walter F. Tichy |
Bibtex
@inproceedings{,
author={Marc Aurel Kiefer, Korbinian Molitorisz, Jochen Bieler, Walter F. Tichy},
title={Parallelizing a Real-time Audio Application - A Case Study in Multithreaded Software Engineering},
year=2015,
month=Mai,
booktitle={17th Workshop on Advances in Parallel and Distributed Computational Models (APDCM)},
url={https://ps.ipd.kit.edu/downloads/},
abstract={Multicore hardware is ubiquitous, but billions of lines of code in performance-critical commodity software are still sequential. Although parallel libraries, design patterns, and best practice guidelines are available, thinking parallel is still a big challenge for many software engineers.
In this paper we present a case study on parallelizing commodity software using a commercial real-time audio application with over 700,000 lines of code. In contrast to best practice guidelines, our goal is to investigate what parallelization strategy can effectively be used in data stream-intensive applications. Performing an in-depth analysis of the software architecture and its run-time performance, we locate parallelization potential and propose three different parallelization strategies. We evaluate them with respect to their parallel performance impact.
Regarding the application's intrinsic real-time requirement and a very short audio cycle turnaround time, a busy-waiting strategy offers the best audio performance of 327 µs per cycle on an eight-core machine. With an efficiency of 99% this is close to the optimal schedule.},
}