Diamont: Dynamic Monitoring of Uncertainty for Distributed Asynchronous Programs
Diamont: Dynamic Monitoring of Uncertainty for Distributed Asynchronous Programs
复制标题
Diamont:分布式异步程序不确定性的动态监控
DOI:
10.1007/978-3-030-88494-9_10
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
Misailovic, Sasa
中科院分区:
文献类型:
--
作者:
Fernando, Vimuth;Joshi, Keyur;Laurel, Jacob;Misailovic, Sasa
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 of program outputs for significantly larger inputs compared to prior work, with modest execution time overhead: 3% on average (max 16.3%) for our main evaluation input set and 15% on average for 8x larger inputs.