Skip to main content

Precise Dynamic Analysis for Slack Elasticity: Adding Buffering without Adding Bugs

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6305))

Abstract

Increasing the amount of buffering for MPI sends is an effective way to improve the performance of MPI programs. However, for programs containing non-deterministic operations, this can result in new deadlocks or other safety assertion violations. Previous work did not provide any characterization of the space of slack elastic programs: those for which buffering can be safely added. In this paper, we offer a precise characterization of slack elasticity based on our formulation of MPI’s happens before relation. We show how to efficiently locate potential culprit sends in such programs: MPI sends for which adding buffering can increase overall program non-determinism and cause new bugs. We present a procedure to minimally enumerate potential culprit sends and efficiently check for slack elasticity. Our results demonstrate that our new algorithm called POEMSE which is incorporated into our dynamic verifier ISP can efficiently run this new analysis on large MPI programs.

Supported in part by Microsoft, NSF CNS-0935858, CCF-0903408.

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

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Compute Unified Device Architecture (CUDA), http://www.nvidia.com/object/cuda_get.html

  2. Danalis, A., Pollock, L., Swany, M., Cavazos, J.: Mpi-aware compiler optimizations for improving communication-computation overlap. In: ICS 2009 (2009)

    Google Scholar 

  3. DeSouza, J., Kuhn, B., de Supinski, B.R., Samofalov, V., Zheltov, S., Bratanov, S.: Automated, scalable debugging of mpi programs with Intel Message Checker. In: SE-HPCS 2005 (2005)

    Google Scholar 

  4. http://www.hpcx.ac.uk/support/FAQ/eager.html

  5. Hilbrich, T., de Supinski, B.R., Schulz, M., Müller, M.S.: A graph based approach for MPI deadlock detection. In: ICS 2009, pp. 296–305 (2009)

    Google Scholar 

  6. http://www.cs.unb.ca/acrl/training/general/ibm_parallel_programming/pgm3.PDF

  7. PE MPI buffer management for eager protocol, http://publib.boulder.ibm.com/infocenter/clresctr/vxrx/index.jsp?topic=/com.ibm.cluster.pe431.mpiprog.doc/am106_buff.html

  8. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Commun. ACM 21(7), 558–565 (1978)

    Article  MATH  Google Scholar 

  9. Lusk, R., Pieper, S., Butler, R., Chan, A.: Asynchronous dynamic load balancing, http://unedf.org/content/talks/Lusk-ADLB.pdf

  10. Manohar, R., Martin, A.J.: Slack elasticity in concurrent computing. In: Jeuring, J. (ed.) MPC 1998. LNCS, vol. 1422, pp. 272–285. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  11. http://www.multicore-association.org

  12. http://www.mpiblast.org

  13. OpenCL: Open Computing Language, http://www.khronos.org/opencl

  14. ParMETIS - Parallel graph partitioning and fill-reducing matrix ordering. http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview

  15. Schloegel, K., Karypis, G., Kumar, V.: Parallel static and dynamic multi-constraint graph partitioning. Concurrency and Computation: Practice and Experience 14, 219–240 (2002)

    Article  MATH  Google Scholar 

  16. Siegel, S.F.: Efficient verification of halting properties for MPI programs with wildcard receives. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 413–429. Springer, Heidelberg (2005)

    Google Scholar 

  17. Vakkalanka, S.: Efficient Dynamic Verification Algorithms for MPI Applications. PhD Dissertation (2010), http://www.cs.utah.edu/Theses

  18. Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M.: Scheduling considerations for building dynamic verification tools for MPI. In: Parallel and Distributed Systems - Testing and Debugging (PADTAD-VI), Seattle, WA (July 2008)

    Google Scholar 

  19. Vakkalanka, S., DeLisi, M., Gopalakrishnan, G., Kirby, R.M., Thakur, R., Gropp, W.: Implementing efficient dynamic formal verification methods for MPI programs. In: Lastovetsky, A., Kechadi, T., Dongarra, J. (eds.) EuroPVM/MPI 2008. LNCS, vol. 5205, pp. 248–256. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  20. Vakkalanka, S., Gopalakrishnan, G., Kirby, R.M.: Dynamic Verification of MPI Programs with Reductions in Presence of Split Operations and Relaxed Orderings. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 66–79. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  21. Vakkalanka, S., Vo, A., Gopalakrishnan, G., Kirby, R.M.: Reduced execution semantics of mpi: From theory to practice. In: Cavalcanti, A., Dams, D.R. (eds.) FM 2009. LNCS, vol. 5850, pp. 724–740. Springer, Heidelberg (2009)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2010 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vakkalanka, S., Vo, A., Gopalakrishnan, G., Kirby, R.M. (2010). Precise Dynamic Analysis for Slack Elasticity: Adding Buffering without Adding Bugs. In: Keller, R., Gabriel, E., Resch, M., Dongarra, J. (eds) Recent Advances in the Message Passing Interface. EuroMPI 2010. Lecture Notes in Computer Science, vol 6305. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-15646-5_16

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-15646-5_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-15645-8

  • Online ISBN: 978-3-642-15646-5

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics