TY - JOUR
T1 - Deadlock-free buffer configuration for stream computing
AU - Li, Peng
AU - Beard, Jonathan C.
AU - Buhler, Jeremy D.
N1 - Funding Information:
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This work was supported by NIH award R42 HG003225, NSF award CNS-0751212, and NSF award CNS-0905368.
Publisher Copyright:
© 2016 The Author(s).
PY - 2017/9/1
Y1 - 2017/9/1
N2 - Stream computing is a popular paradigm for parallel and distributed computing, where compute nodes are connected by first-in first-out data channels. Each channel can be considered as a concatenation of several data buffers, including an output buffer for the sender and an input buffer for the receiver. The configuration of buffer sizes impacts the performance as well as the correctness of the application. In this article, we focus on application deadlocks that are caused by incorrect configuration of buffer sizes. We describe three types of deadlock in streaming applications, categorized by how they can be created. To avoid them, we first prove necessary and sufficient conditions for deadlock-free computations; then based on the theorems, we propose both compile-time and runtime solutions for deadlock avoidance.
AB - Stream computing is a popular paradigm for parallel and distributed computing, where compute nodes are connected by first-in first-out data channels. Each channel can be considered as a concatenation of several data buffers, including an output buffer for the sender and an input buffer for the receiver. The configuration of buffer sizes impacts the performance as well as the correctness of the application. In this article, we focus on application deadlocks that are caused by incorrect configuration of buffer sizes. We describe three types of deadlock in streaming applications, categorized by how they can be created. To avoid them, we first prove necessary and sufficient conditions for deadlock-free computations; then based on the theorems, we propose both compile-time and runtime solutions for deadlock avoidance.
KW - Buffer configuration
KW - deadlock avoidance
KW - feedback channels
KW - parallel and distributed computing
KW - streaming computing
UR - https://www.scopus.com/pages/publications/85028064485
U2 - 10.1177/1094342016675679
DO - 10.1177/1094342016675679
M3 - Article
AN - SCOPUS:85028064485
SN - 1094-3420
VL - 31
SP - 441
EP - 450
JO - International Journal of High Performance Computing Applications
JF - International Journal of High Performance Computing Applications
IS - 5
ER -