Skip to main content
Log in

Diamont: dynamic monitoring of uncertainty for distributed asynchronous programs

  • General
  • Special Issue: RV 2021
  • Published:
International Journal on Software Tools for Technology Transfer Aims and scope Submit manuscript

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.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Achour, S., Rinard, M.: Energy efficient approximate computation with topaz. In: OOPSLA (2015)

    Google Scholar 

  2. Ahmad, M., Hijaz, F., Shi, Q., et al.: CRONO: a benchmark suite for multithreaded graph algorithms executing on futuristic multicores. In: IISWC (2015)

    Google Scholar 

  3. Albarghouthi, A., Vinitsky, S.: Fairness-aware programming. In: Proceedings of the Conference on Fairness, Accountability, and Transparency, FAT* ’19 (2019)

    Google Scholar 

  4. Bakst, A., Kv, G., Kici, R.G., et al.: Verifying distributed programs via canonical sequentialization. In: OOPSLA (2017)

    Google Scholar 

  5. Bastani, O., Zhang, X., Solar-Lezama, A.: Probabilistic verification of fairness properties via concentration. In: OOPSLA (2019)

    Google Scholar 

  6. Bornholt, J., Mytkowicz, T., McKinley, K.S.: Uncertain<T>: a first-order type for uncertain data. In: ASPLOS (2014)

    Google Scholar 

  7. Boston, B., Sampson, A., Grossman, D., et al.: Probability type inference for flexible approximate programming. In: OOPSLA (2015)

    Google Scholar 

  8. Boston, B., Gong, Z., Carbin, M.: Leto: verifying application-specific hardware fault tolerance with programmable execution models. In: OOPSLA (2018)

    Google Scholar 

  9. Boyapati, R., Huang, J., Majumder, P., et al.: APPROX-NoC: a data approximation framework for network-on-chip architectures. In: ISCA (2017)

    Google Scholar 

  10. Carbin, M., Kim, D., Misailovic, S., et al.: Proving acceptability properties of relaxed nondeterministic approximate programs. In: PLDI (2012)

    Google Scholar 

  11. Carbin, M., Kim, D., Misailovic, S., et al.: Verified integrity properties for safe approximate program transformations. In: PEPM (2013)

    Google Scholar 

  12. Carbin, M., Misailovic, S., Rinard, M.: Verifying quantitative reliability for programs that execute on unreliable hardware. In: OOPSLA (2013)

    Google Scholar 

  13. Chen, Y., Louri, A.: An approximate communication framework for network-on-chips. IEEE Trans. Parallel Distrib. Syst. (2020)

  14. Darulova, E., Kuncak, V.: Trustworthy numerical computation in scala. In: OOPSLA (2011)

    Google Scholar 

  15. Darulova, E., Kuncak, V.: Certifying solutions for numerical constraints. In: RV (2012)

    Google Scholar 

  16. Darulova, E., Izycheva, A., Nasir, F., et al.: Daisy-framework for analysis and optimization of numerical programs. In: TACAS (2018)

    Google Scholar 

  17. de Kruijf, M., Nomura, S., Sankaralingam, K.: Relax: an architectural framework for software recovery of hardware faults. In: ISCA (2010)

    Google Scholar 

  18. Dean, J., Ghemawat, S.: MapReduce: simplified data processing on large clusters. In: OSDI (2004)

    Google Scholar 

  19. 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

  20. Fernando, V., Franques, A., Abadal, S., et al.: Replica: a wireless manycore for communication-intensive and approximate data. In: ASPLOS (2019)

    Google Scholar 

  21. Fernando, V., Joshi, K., Misailovic, S.: Verifying safety and accuracy of approximate parallel programs via canonical sequentialization. In: OOPSLA (2019)

    Google Scholar 

  22. Fernando, V., Joshi, K., Laurel, J., et al.: Diamont: dynamic monitoring of uncertainty for distributed asynchronous programs. In: Runtime Verification (2021)

    Google Scholar 

  23. 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)

  24. Jaroszewicz, S., Korzeń, M.: Arithmetic operations on independent random variables: a numerical approach. SIAM J. Sci. Comput. 34 (2012)

  25. Joshi, K., Fernando, V., Misailovic, S.: Statistical algorithmic profiling for randomized approximate programs. In: ICSE (2019)

    Google Scholar 

  26. Joshi, K., Fernando, V., Misailovic, S.: Aloe: verifying reliability of approximate programs in the presence of recovery mechanisms. In: CGO (2020)

    Google Scholar 

  27. 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

  28. Lafarge, T., Possolo, A.: The nist uncertainty machine. NCSLI Measure 10(3), 20–27 (2015)

    Article  Google Scholar 

  29. Lahiri, S., Haran, A., He, S., et al.: Automated differential program verification for approximate computing (2015). Tech. Rep

  30. Laurel, J., Misailovic, S.: Continualization of probabilistic programs with correction. In: ESOP (2020)

    Google Scholar 

  31. Laurel, J., Yang, R., Sehgal, A., et al.: Statheros: compiler for efficient low-precision probabilistic programming. In: Design Automation Conference (DAC), 2021 (2021)

    Google Scholar 

  32. Laurel, J., Yang, R., Singh, G., et al.: A dual number abstraction for static analysis of Clarke Jacobians. In: POPL (2022)

    Google Scholar 

  33. Laurel, J., Yang, R., Ugare, S., et al.: A general construction for abstract interpretation of higher-order automatic differentiation. In: OOPSLA (2022)

    Google Scholar 

  34. Leskovec, J., Krevl, A.: SNAP Datasets: stanford large network dataset collection (roadnet-pa) (2014). http://snap.Stanford.edu/data

  35. Liu, T.: Datasheet for AM2302 Sensor (2020). https://cdn-shop.adafruit.com/datasheets/Digital+humidity+and+temperature+sensor+AM2302.pdf

  36. Maderbacher, B., Karl, A.F., Bloem, R.: Placement of runtime checks to counteract fault injections. In: RV (2020)

    Google Scholar 

  37. Manousakis, I., Goiri, Í., Bianchini, R., et al.: Uncertainty propagation in data processing systems. In: Proceedings of the ACM Symposium on Cloud Computing (2018)

    Google Scholar 

  38. Misailovic, S.: Accuracy-aware optimization of approximate programs. PhD thesis, Massachusetts Institute of Technology (2015)

  39. Misailovic, S., Carbin, M., Achour, S., et al.: Chisel: reliability- and accuracy-aware optimization of approximate computational kernels. In: OOPSLA (2014)

    Google Scholar 

  40. 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)

    Google Scholar 

  41. Page, L., Brin, S., Motwani, R., et al.: The PageRank citation ranking: bringing order to the web (1999). Tech. Rep

  42. Panchekha, P., Sanchez-Stern, A., Wilcox, J.R., et al.: Automatically improving accuracy for floating point expressions. In: PLDI (2015)

    Google Scholar 

  43. Paradis, L., Han, Q.: A survey of fault management in wireless sensor networks. J. Netw. Syst. Manag. (2007)

  44. Ranjan, A., Venkataramani, S., Fong, X., et al.: Approximate storage for energy efficient spintronic memories. In: DAC, 2015 (2015)

    Google Scholar 

  45. 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)

    Google Scholar 

  46. Ringenburg, M., Sampson, A., Ackerman, I., et al.: Monitoring and debugging the quality of results in approximate programs. In: ASPLOS (2015)

    Google Scholar 

  47. Rubio-González, C., Nguyen, C., Nguyen, H., et al.: Precimonious: tuning assistant for floating-point precision. In: SC (2013)

    Google Scholar 

  48. Samadi, M., Jamshidi, D.A., Lee, J., et al.: Paraprox: pattern-based approximation for data parallel applications. In: ASPLOS (2014)

    Google Scholar 

  49. Sampson, A., Dietl, W., Fortuna, E., et al.: EnerJ: approximate data types for safe and general low-power computation. In: PLDI (2011)

    Google Scholar 

  50. Sampson, A., Panchekha, P., Mytkowicz, T., et al.: Expressing and verifying probabilistic assertions. In: PLDI (2014)

    Google Scholar 

  51. Sampson, A., Baixo, A., Ransford, B., et al.: Accept: a programmer-guided compiler framework for practical approximate computing (2015). Tech. Rep

  52. Sanchez-Stern, A., Panchekha, P., Lerner, S., et al.: Finding root causes of floating point error. In: PLDI (2018)

    Google Scholar 

  53. Sen, K., Viswanathan, M., Agha, G.: Statistical model checking of black-box probabilistic systems. In: CAV (2004)

    Google Scholar 

  54. Sidiroglou, S., Misailovic, S., Hoffmann, H., et al.: Managing performance vs. accuracy trade-offs with loop perforation. In: FSE (2011)

    Google Scholar 

  55. Stanley-Marbell, P., Alaghi, A., Carbin, M., et al.: Exploiting errors for efficiency: a survey from circuits to applications. ACM Comput. Surv. (2020)

  56. Stevens, J.R., Ranjan, A., Raghunathan, A.: AxBA: an approximate bus architecture framework. In: ICCAD (2018)

    Google Scholar 

  57. TensorFlow Developers: (2021). Tensorflow. https://doi.org/10.5281/zenodo.5159865. https://www.tensorflow.org

  58. 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)

    Google Scholar 

  59. Yazdanbakhsh, A., Mahajan, D., Esmaeilzadeh, H., et al.: AxBench: a multiplatform benchmark suite for approximate computing. IEEE Des. Test 34(2) (2017)

  60. Zhuang, W., Chen, X., Tan, J., et al.: An empirical analysis for evaluating the link quality of robotic sensor networks. In: WCSP (2009)

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Vimuth Fernando.

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.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

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

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10009-023-00717-y

Keywords

Navigation