TY - GEN
T1 - Diamont
T2 - 21st International Conference on Runtime Verification, RV 2021
AU - Fernando, Vimuth
AU - Joshi, Keyur
AU - Laurel, Jacob
AU - Misailovic, Sasa
N1 - Publisher Copyright:
© 2021, Springer Nature Switzerland AG.
PY - 2021
Y1 - 2021
N2 - Many application domains including graph analytics, the Internet-of-Things, precision agriculture, and media processing operate on noisy data and/or produce approximate results. These applications can distribute computation across multiple (often resource-constrained) processing units. Analyzing the reliability and accuracy of such applications is challenging, since most existing techniques operate on specific fixed error models, check for individual properties, or can only be applied to sequential programs. We present Diamont, a system for dynamic monitoring of uncertainty properties in distributed programs. Diamont programs consist of distributed processes that communicate via asynchronous message passing. Diamont includes datatypes that dynamically monitor uncertainty in data and provides support for checking predicates over the monitored uncertainty at runtime. We also present a general methodology for verifying the soundness of the runtime system and optimizations using canonical sequentialization. We implemented Diamont for a subset of the Go language and evaluated eight programs from precision agriculture, graph analytics, and media processing. We show that Diamont can prove important end-to-end properties on the program outputs for significantly larger inputs compared to prior work, with modest execution time overhead: 3% on average and 16.3% at maximum.
AB - Many application domains including graph analytics, the Internet-of-Things, precision agriculture, and media processing operate on noisy data and/or produce approximate results. These applications can distribute computation across multiple (often resource-constrained) processing units. Analyzing the reliability and accuracy of such applications is challenging, since most existing techniques operate on specific fixed error models, check for individual properties, or can only be applied to sequential programs. We present Diamont, a system for dynamic monitoring of uncertainty properties in distributed programs. Diamont programs consist of distributed processes that communicate via asynchronous message passing. Diamont includes datatypes that dynamically monitor uncertainty in data and provides support for checking predicates over the monitored uncertainty at runtime. We also present a general methodology for verifying the soundness of the runtime system and optimizations using canonical sequentialization. We implemented Diamont for a subset of the Go language and evaluated eight programs from precision agriculture, graph analytics, and media processing. We show that Diamont can prove important end-to-end properties on the program outputs for significantly larger inputs compared to prior work, with modest execution time overhead: 3% on average and 16.3% at maximum.
UR - http://www.scopus.com/inward/record.url?scp=85117489234&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85117489234&partnerID=8YFLogxK
U2 - 10.1007/978-3-030-88494-9_10
DO - 10.1007/978-3-030-88494-9_10
M3 - Conference contribution
AN - SCOPUS:85117489234
SN - 9783030884932
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 184
EP - 206
BT - Runtime Verification - 21st International Conference, RV 2021, Proceedings
A2 - Feng, Lu
A2 - Fisman, Dana
PB - Springer
Y2 - 11 October 2021 through 14 October 2021
ER -