Skip to main content

Boosting the Software Quality of Parallel Programming Using Logical Means

  • Conference paper
  • First Online:
  • 2314 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 9159))

Abstract

Parallel programming can be realized as a main tool to improve performance. A main model for programming parallel machines is the single instruction multiple data (SIMD) model of parallelism.

This paper presents an axiomatic semantics for SIMD programs. This semantics is useful for designating and attesting partial correctness properties for SIMD programs and is a generalization of the separation’s logical system (designed for sequential programs). The second contribution of this paper is an operational framework to conventionally define the semantics of SIMD programs. This framework has two sets of inference rules; for running a program on a single machine and for running a program on many machines concurrently. A detailed correctness proof for the presented logical system is presented using the proposed operational semantics. Also the paper presents a detailed example of a specification derivation in the proposed logical system.

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. Soubhagya Sankar Barpanda and Durga Prasad Mohapatra: Dynamic slicing of distributed object-oriented programs. IET Software 5(5), 425–433 (2011)

    Article  Google Scholar 

  2. Bornat, R., Calcagno, C., O’Hearn, P.W., Parkinson, M.J.: Permission accounting in separation logic. In: Palsberg, J., Abadi, M. (eds.) POPL, pp. 259–270. ACM (2005)

    Google Scholar 

  3. Chiu, Y.-C., Shieh, C.-K., Huang, T.-C., Liang, T.-Y., Chu, K.-C.: Data race avoidance and replay scheme for developing and debugging parallel programs on distributed shared memory systems. Parallel Computing 37(1), 11–25 (2011)

    Article  MATH  Google Scholar 

  4. Dinsdale-Young, T., Dodds, M., Gardner, P., Parkinson, M.J., Vafeiadis, V.: Concurrent abstract predicates. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 504–528. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  5. El-Zawawy, M.A.: Dead code elimination based pointer analysis for multithreaded programs. Journal of the Egyptian Mathematical Society 20(1), 28–37 (2012)

    Article  MATH  MathSciNet  Google Scholar 

  6. El-Zawawy, M.A.: Frequent statement and de-reference elimination for distributed programs. In: Murgante, B., Misra, S., Carlini, M., Torre, C.M., Nguyen, H.-Q., Taniar, D., Apduhan, B.O., Gervasi, O. (eds.) ICCSA 2013, Part III. LNCS, vol. 7973, pp. 82–97. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  7. El-Zawawy, M.A.: Testing automation of context-oriented programs using separation logic. Applied Comp. Int. Soft Computing 2014 (2014)

    Google Scholar 

  8. Hoare, C.A.R.: Monitors: An operating system structuring concept. Commun. ACM 17(10), 549–557 (1974)

    Article  MATH  Google Scholar 

  9. Ishtiaq, S.S., O’Hearn, P.W.: Bi as an assertion language for mutable data structures. In: Hankin, C., Schmidt, D. (eds.) POPL, pp. 14–26. ACM (2001)

    Google Scholar 

  10. Kamil, A., Yelick, K.A.: Hierarchical pointer analysis for distributed programs. In: Riis Nielson, H., Filé, G. (eds.) SAS 2007. LNCS, vol. 4634, pp. 281–297. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  11. Liblit, B., Aiken, A., Yelick, K.A.: Type systems for distributed data sharing. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 273–294. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  12. Lindberg, P., Leingang, J., Lysaker, D., Khan, S.U., Li, J.: Comparison and analysis of eight scheduling heuristics for the optimization of energy consumption and makespan in large-scale distributed systems. The Journal of Supercomputing 59(1), 323–360 (2012)

    Article  Google Scholar 

  13. O’Hearn, P.W.: Linear logic and interference control. In: Pitt, D.H., Curien, P.-L., Abramsky, S., Pitts, A.M., Poigné, A., Rydeheard, D.E. (eds.) Category Theory and Computer Science. LNCS, vol. 530, pp. 74–93. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  14. O’Hearn, P.W.: Resources, concurrency, and local reasoning. Theor. Comput. Sci. 375(1–3), 271–307 (2007)

    Article  MATH  MathSciNet  Google Scholar 

  15. Owicki, S.S., Gries, D.: Verifying properties of parallel programs: An axiomatic approach. Commun. ACM 19(5), 279–285 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  16. Reddy, U.S., Reynolds, J.C.: Syntactic control of interference for separation logic. In: Field, J., Hicks, M. (eds) POPL, pp. 323–336. ACM (2012)

    Google Scholar 

  17. Reynolds, J.C.: Syntactic control of interference. In: Aho, A.V., Zilles, S.N., Szymanski, T.G. (eds.) POPL, pp. 39–46. ACM Press (1978)

    Google Scholar 

  18. Reynolds, J.C.: Separation logic: a logic for shared mutable data structures. In: LICS, pp. 55–74. IEEE Computer Society (2002)

    Google Scholar 

  19. Udaya Shankar, A.: Distributed Programming: Theory and Practice. Springer (2013)

    Google Scholar 

  20. Vafeiadis, V.: Concurrent separation logic and operational semantics. Electr. Notes Theor. Comput. Sci. 276, 335–351 (2011)

    Article  MathSciNet  Google Scholar 

  21. Yelick, K.A., Bonachea, D., Chen, W.-Y., Colella, P., Datta, K., Duell, J., Graham, S.L., Hargrove, P., Hilfinger, P.N., Husbands, P., Iancu, C., Kamil, A., Nishtala, R., Su, J., Welcome, M.L., Wen, T.: Productivity and performance using partitioned global address space languages. In: Maza, M.M., Watt, S.M. (eds.) PASCO, pp. 24–32. ACM (2007)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Mohamed A. El-Zawawy .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

El-Zawawy, M.A. (2015). Boosting the Software Quality of Parallel Programming Using Logical Means. In: Gervasi, O., et al. Computational Science and Its Applications -- ICCSA 2015. ICCSA 2015. Lecture Notes in Computer Science(), vol 9159. Springer, Cham. https://doi.org/10.1007/978-3-319-21413-9_8

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-21413-9_8

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-21412-2

  • Online ISBN: 978-3-319-21413-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics