Abstract
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.
Similar content being viewed by others
References
Achour, S., Rinard, M.: Energy efficient approximate computation with topaz. In: OOPSLA (2015)
Ahmad, M., Hijaz, F., Shi, Q., et al.: CRONO: a benchmark suite for multithreaded graph algorithms executing on futuristic multicores. In: IISWC (2015)
Albarghouthi, A., Vinitsky, S.: Fairness-aware programming. In: Proceedings of the Conference on Fairness, Accountability, and Transparency, FAT* ’19 (2019)
Bakst, A., Kv, G., Kici, R.G., et al.: Verifying distributed programs via canonical sequentialization. In: OOPSLA (2017)
Bastani, O., Zhang, X., Solar-Lezama, A.: Probabilistic verification of fairness properties via concentration. In: OOPSLA (2019)
Bornholt, J., Mytkowicz, T., McKinley, K.S.: Uncertain<T>: a first-order type for uncertain data. In: ASPLOS (2014)
Boston, B., Sampson, A., Grossman, D., et al.: Probability type inference for flexible approximate programming. In: OOPSLA (2015)
Boston, B., Gong, Z., Carbin, M.: Leto: verifying application-specific hardware fault tolerance with programmable execution models. In: OOPSLA (2018)
Boyapati, R., Huang, J., Majumder, P., et al.: APPROX-NoC: a data approximation framework for network-on-chip architectures. In: ISCA (2017)
Carbin, M., Kim, D., Misailovic, S., et al.: Proving acceptability properties of relaxed nondeterministic approximate programs. In: PLDI (2012)
Carbin, M., Kim, D., Misailovic, S., et al.: Verified integrity properties for safe approximate program transformations. In: PEPM (2013)
Carbin, M., Misailovic, S., Rinard, M.: Verifying quantitative reliability for programs that execute on unreliable hardware. In: OOPSLA (2013)
Chen, Y., Louri, A.: An approximate communication framework for network-on-chips. IEEE Trans. Parallel Distrib. Syst. (2020)
Darulova, E., Kuncak, V.: Trustworthy numerical computation in scala. In: OOPSLA (2011)
Darulova, E., Kuncak, V.: Certifying solutions for numerical constraints. In: RV (2012)
Darulova, E., Izycheva, A., Nasir, F., et al.: Daisy-framework for analysis and optimization of numerical programs. In: TACAS (2018)
de Kruijf, M., Nomura, S., Sankaralingam, K.: Relax: an architectural framework for software recovery of hardware faults. In: ISCA (2010)
Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. In: OSDI (2004)
Fernando, V.: Programming systems for safe and accurate parallel programs in the face of uncertainty. PhD thesis, University of Illinois (2021) https://www.ideals.Illinois.edu/items/125369. Urbana-Champaign
Fernando, V., Franques, A., Abadal, S., et al.: Replica: a wireless manycore for communication-intensive and approximate data. In: ASPLOS (2019)
Fernando, V., Joshi, K., Misailovic, S.: Verifying safety and accuracy of approximate parallel programs via canonical sequentialization. In: OOPSLA (2019)
Fernando, V., Joshi, K., Laurel, J., et al.: Diamont: dynamic monitoring of uncertainty for distributed asynchronous programs. In: Runtime Verification (2021)
Golubovic, N., Krintz, C., Wolski, R., et al.: A scalable system for executing and scoring K-means clustering techniques and its impact on applications in agriculture. Int. J. Big Data Intell. 6 (2019)
Jaroszewicz, S., Korzeń, M.: Arithmetic operations on independent random variables: a numerical approach. SIAM J. Sci. Comput. 34 (2012)
Joshi, K., Fernando, V., Misailovic, S.: Statistical algorithmic profiling for randomized approximate programs. In: ICSE (2019)
Joshi, K., Fernando, V., Misailovic, S.: Aloe: verifying reliability of approximate programs in the presence of recovery mechanisms. In: CGO (2020)
Joshi, K., Hsieh, C., Mitra, S., et al.: Gas: generating fast and accurate surrogate models for autonomous vehicle systems (2023). https://arxiv.org/abs/2208.02232
Lafarge, T., Possolo, A.: The nist uncertainty machine. NCSLI Measure 10(3), 20–27 (2015)
Lahiri, S., Haran, A., He, S., et al.: Automated differential program verification for approximate computing (2015). Tech. Rep
Laurel, J., Misailovic, S.: Continualization of probabilistic programs with correction. In: ESOP (2020)
Laurel, J., Yang, R., Sehgal, A., et al.: Statheros: compiler for efficient low-precision probabilistic programming. In: Design Automation Conference (DAC), 2021 (2021)
Laurel, J., Yang, R., Singh, G., et al.: A dual number abstraction for static analysis of Clarke Jacobians. In: POPL (2022)
Laurel, J., Yang, R., Ugare, S., et al.: A general construction for abstract interpretation of higher-order automatic differentiation. In: OOPSLA (2022)
Leskovec, J., Krevl, A.: SNAP Datasets: stanford large network dataset collection (roadnet-pa) (2014). http://snap.Stanford.edu/data
Liu, T.: Datasheet for AM2302 Sensor (2020). https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf
Maderbacher, B., Karl, A.F., Bloem, R.: Placement of runtime checks to counteract fault injections. In: RV (2020)
Manousakis, I., Goiri, Í., Bianchini, R., et al.: Uncertainty propagation in data processing systems. In: Proceedings of the ACM Symposium on Cloud Computing (2018)
Misailovic, S.: Accuracy-aware optimization of approximate programs. PhD thesis, Massachusetts Institute of Technology (2015)
Misailovic, S., Carbin, M., Achour, S., et al.: Chisel: reliability- and accuracy-aware optimization of approximate computational kernels. In: OOPSLA (2014)
Misra, A., Laurel, J., Misailovic, S.: Vix: analysis-driven compiler for efficient low-precision variational inference. In: Design, Automation & Test in Europe Conference & Exhibition (DATE) (2023)
Page, L., Brin, S., Motwani, R., et al.: The PageRank citation ranking: bringing order to the web (1999). Tech. Rep
Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., et al.: Automatically improving accuracy for floating point expressions. In: PLDI (2015)
Paradis, L., Han, Q.: A survey of fault management in wireless sensor networks. J. Netw. Syst. Manag. (2007)
Ranjan, A., Venkataramani, S., Fong, X., et al.: Approximate storage for energy efficient spintronic memories. In: DAC, 2015 (2015)
Recht, B., Re, C., Wright, S., et al.: Hogwild: a lock-free approach to parallelizing stochastic gradient descent. In: Advances in Neural Information Processing Systems (2011)
Ringenburg, M., Sampson, A., Ackerman, I., et al.: Monitoring and debugging the quality of results in approximate programs. In: ASPLOS (2015)
Rubio-González, C., Nguyen, C., Nguyen, H., et al.: Precimonious: tuning assistant for floating-point precision. In: SC (2013)
Samadi, M., Jamshidi, D.A., Lee, J., et al.: Paraprox: pattern-based approximation for data parallel applications. In: ASPLOS (2014)
Sampson, A., Dietl, W., Fortuna, E., et al.: EnerJ: approximate data types for safe and general low-power computation. In: PLDI (2011)
Sampson, A., Panchekha, P., Mytkowicz, T., et al.: Expressing and verifying probabilistic assertions. In: PLDI (2014)
Sampson, A., Baixo, A., Ransford, B., et al.: Accept: a programmer-guided compiler framework for practical approximate computing (2015). Tech. Rep
Sanchez-Stern, A., Panchekha, P., Lerner, S., et al.: Finding root causes of floating point error. In: PLDI (2018)
Sen, K., Viswanathan, M., Agha, G.: Statistical model checking of black-box probabilistic systems. In: CAV (2004)
Sidiroglou, S., Misailovic, S., Hoffmann, H., et al.: Managing performance vs. accuracy trade-offs with loop perforation. In: FSE (2011)
Stanley-Marbell, P., Alaghi, A., Carbin, M., et al.: Exploiting errors for efficiency: a survey from circuits to applications. ACM Comput. Surv. (2020)
Stevens, J.R., Ranjan, A., Raghunathan, A.: AxBA: an approximate bus architecture framework. In: ICCAD (2018)
TensorFlow Developers: (2021). Tensorflow. https://doi.org/10.5281/zenodo.5159865. https://www.tensorflow.org
Tsoutsouras, V., Kaparounakis, O., Bilgin, B., et al.: The Laplace microarchitecture for tracking data uncertainty and its implementation in a risc-v processor. In: MICRO, MICRO ’21 (2021)
Yazdanbakhsh, A., Mahajan, D., Esmaeilzadeh, H., et al.: AxBench: a multiplatform benchmark suite for approximate computing. IEEE Des. Test 34(2) (2017)
Zhuang, W., Chen, X., Tan, J., et al.: An empirical analysis for evaluating the link quality of robotic sensor networks. In: WCSP (2009)
Acknowledgements
We would like to thank the reviewers of this version, as well as the previous version that appeared in RV 2021 [22], for their useful suggestions.
Funding
The research presented in this paper was supported in part by NSF Grants No. CCF-1846354, CCF-1956374, CCF-2028861, and CCF-2008883, USDA Grant No. NIFA-2021-67021-33449, and a gift from Meta Platforms, Inc.
Author information
Authors and Affiliations
Corresponding author
Ethics declarations
Competing Interests
The authors declare no competing interests.
Additional information
Publisher’s Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.
About this article
Cite this article
Fernando, V., Joshi, K., Laurel, J. et al. Diamont: dynamic monitoring of uncertainty for distributed asynchronous programs. Int J Softw Tools Technol Transfer 25, 521–539 (2023). https://doi.org/10.1007/s10009-023-00717-y
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10009-023-00717-y