Skip to main content

Extending the OpenSHMEM Analyzer to Perform Synchronization and Multi-valued Analysis

  • Conference paper
OpenSHMEM and Related Technologies. Experiences, Implementations, and Tools (OpenSHMEM 2014)

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

Included in the following conference series:

  • 567 Accesses

Abstract

OpenSHMEM Analyzer (OSA) is a compiler-based tool that provides static analysis forOpenSHMEMprograms. It was developed with the intention of providing feedback to the users about semantics errors due to incorrect use of the OpenSHMEM API in their programs, thus making development of OpenSHMEMapplications an easier task for beginners as well as experienced programmers. In this paper we discuss the improvements to theOSA tool to perform parallel analysis to detect collective synchronization structure of a program. Synchronization is a critical aspect of all programming models and in OpenSHMEMit is the responsibility of the programmer to introduce synchronization calls to ensure the completion of communication among processing elements (PEs) to prevent use of old/incorrect data, avoid deadlocks and ensure data race free execution keeping in mind the semantics of OpenSHMEM library specification. Our analysis yields three tangible outputs: a detailed control flow graph (CFG) making all the OpenSHMEM calls used, a system dependence graph and a barrier tree. The barrier tree represents the synchronization structure of the programpresented in a simplisticmanner that enables visualization of the program’s synchronization keeping in mind the concurrent nature of SPMD applications that use OpenSHMEM library calls. This provides a graphical representation of the synchronization calls in the order in which they appear at execution time and how the different PEs in OpenSHMEMmay encounter them based upon the different execution paths available in the program. Our results include the summarization of the analysis conducted within themiddle-endof a compiler and the improvementswe have done to the existing analysis to make it aware of the parallelism in the OpenSHMEM program.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Similar content being viewed by others

References

  1. Oscar, H., Siddhartha, J., Pophale, S., Stephen, P., Kuehn, J., Barbara, C.: The OpenSHMEM Analyzer. In: Proceedings of the Sixth Conference on Partitioned Global Address Space Programming Model, PGAS 2012 (2012)

    Google Scholar 

  2. Taylor, R.N.: A general-purpose algorithm for analyzing concurrent programs. Commun. ACM 26, 361–376 (1983)

    Article  Google Scholar 

  3. Lin, Y.: Static nonconcurrency analysis of openMP programs. In: Mueller, M.S., Chapman, B.M., de Supinski, B.R., Malony, A.D., Voss, M. (eds.) IWOMP 2005/2006. LNCS, vol. 4315, pp. 36–50. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  4. Masticola, S.P., Ryder, B.G.: Non-concurrency analysis. In: Proceedings of the Fourth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPOPP 1993, pp. 129–138. ACM, New York (1993)

    Chapter  Google Scholar 

  5. Auslander, J., Philipose, M., Chambers, C., Eggers, S.J., Bershad, B.N.: Fast, effective dynamic compilation. In: Proceedings of the ACM SIGPLAN 1996 Conference on Programming Language Design and Implementation, PLDI 1996, pp. 149–159. ACM, New York (1996)

    Chapter  Google Scholar 

  6. Swaroop, P., Oscar, H., Stephen, P., Barbara, C.: Static analyses for unaligned collective synchronization matching for OpenSHMEM. In: Proceedings of the Seventh Conference on Partitioned Global Address Space Programming Model, PGAS 2013 (2013)

    Google Scholar 

  7. Zhang, Y., Duesterwald, E.: Barrier matching for programs with textually unaligned barriers. In: Proceedings of the 12th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2007, pp. 194–204. ACM, New York (2007)

    Google Scholar 

  8. Horwitz, S., Reps, T., Binkley, D.: Interprocedural slicing using dependence graphs. In: Proceedings of the ACM SIGPLAN 1988 Conference on Programming Language Design and Implementation, PLDI 1988, pp. 35–46. ACM, New York (1988)

    Chapter  Google Scholar 

  9. Kamil, A.A., Yelick, K.A.: Concurrency analysis for parallel programs with textually aligned barriers. Technical Report UCB/EECS-2006-41, EECS Department, University of California, Berkeley (2006)

    Google Scholar 

  10. OpenSHMEM.org: OpenSHMEM specification 1.0 (2011)

    Google Scholar 

  11. Chakrabarti, G., Chow, F.: Structure layout optimizations in the open64 compiler: Design, implementation and measurements (2008)

    Google Scholar 

  12. Kleene, S.C.: Representation of events in nerve nets and finite automata. Automata Studies (1956)

    Google Scholar 

  13. Swaroop, P., Oscar, H., Stephen, P., Barbara, C.: Poster: Validation and verification suite for OpenSHMEM. In: Proceedings of the Seventh Conference on Partitioned Global Address Space Programming Model, PGAS 2013 (2013)

    Google Scholar 

  14. Aiken, A., Gay, D.: Barrier inference. In: Proceedings of the 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 1998, pp. 342–354. ACM, New York (1998)

    Google Scholar 

  15. Luigi, K.Y., Semenzato, L., Pike, G., Miyamoto, C., Liblit, B., Krishnamurthy, A., Hilfinger, P., Graham, S., Gay, D., Colella, P., Aiken, A.: Titanium: A high-performance java dialect, pp. 10–11. ACM (1998)

    Google Scholar 

  16. Markstrum, S.A., Fuhrer, R.M., Millstein, T.D.: Towards concurrency refactoring for x10. In: Proceedings of the 14th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP 2009, pp. 303–304. ACM, New York (2009)

    Google Scholar 

  17. Muller, S., Chong, S.: Towards a practical secure concurrent language. In: Proceedings of the ACM International Conference on Object Oriented Programming Systems Languages and Applications, OOPSLA 2012, pp. 57–74. ACM, New York (2012)

    Chapter  Google Scholar 

  18. Kaiser, C., Pajault, C., Pradat-Peyre, J.-F.: Modelling remote concurrency with ada. In: Abdennadher, N., Kordon, F. (eds.) Ada-Europe 2007. LNCS, vol. 4498, pp. 192–207. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  19. Burns, A., Wellings, A.: Concurrency in Ada. Cambridge University Press, New York (1995)

    MATH  Google Scholar 

  20. Vakilian, M., Negara, S., Tasharofi, S., Johnson, R.E.: Keshmesh: a tool for detecting and fixing java concurrency bug patterns. In: Proceedings of the ACM International Conference Companion on Object Oriented Programming Systems Languages and Applications Companion, SPLASH 2011, pp. 39–40. ACM, New York (2011)

    Google Scholar 

  21. Magee, J., Kramer, J.: Concurrency: state models & Java programs. John Wiley & Sons, Inc., New York (1999)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Pophale, S., Hernandez, O., Poole, S., Chapman, B.M. (2014). Extending the OpenSHMEM Analyzer to Perform Synchronization and Multi-valued Analysis. In: Poole, S., Hernandez, O., Shamis, P. (eds) OpenSHMEM and Related Technologies. Experiences, Implementations, and Tools. OpenSHMEM 2014. Lecture Notes in Computer Science, vol 8356. Springer, Cham. https://doi.org/10.1007/978-3-319-05215-1_10

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-05215-1_10

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-05214-4

  • Online ISBN: 978-3-319-05215-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics