Advertisement

Finding Synchronization-Free Parallelism Represented with Trees of Dependent Operations

  • Wlodzimierz Bielecki
  • Anna Beletska
  • Marek Palkowski
  • Pierluigi San Pietro
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5022)

Abstract

Algorithms are presented for extracting synchronization-free parallelism available in arbitrarily nested parameterized loops. The parallelism is represented with synchronization-free trees of dependent operations. Sets representing trees can be described with non-linear expressions. The main idea is to firstly extract sources of synchronization-free trees and next to generate parallel code based on a while loop. Experimental results are presented exposing speed-up and efficiency of parallel programs written in the OpenMP standard on the basis of code generated by the algorithms proposed.

Keywords

Dependence Relation Loop Index Loop Body Parallel Code Dependence Source 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Allen, R., Kennedy, K.: Optimizing Compilers for Modern Architectures, p. 790. Morgan Kaufmann, San Francisco (2001)Google Scholar
  2. 2.
    Banerjee, U.: Unimodular transformations of double loops. In: Proceedings of the Third Workshop on Languages and Compilers for Parallel Computing, pp. 192–219 (1990)Google Scholar
  3. 3.
    Feautrier, P.: Toward automatic distribution. Journal of Parallel Processing Letters 4, 233–244 (1994)CrossRefGoogle Scholar
  4. 4.
    Lim, W., Cheong, G.I., Lam, M.S.: An affine partitioning algorithm to maximize parallelism and minimize communication. In: Proceedings of the 13th ACM SIGARCH International Conference on Supercomputing (1999)Google Scholar
  5. 5.
    Darte, A., Robert, Y., Vivien, F.: Scheduling and Automatic Parallelization, Birkhäuser Boston (2000) Google Scholar
  6. 6.
    Pugh, W., Wonnacott, D.: Constraint-based array dependence analysis. ACM Trans. on Programming Languages and Systems (1998)Google Scholar
  7. 7.
    Weiser, M.: Program slices: formal, psychological, and practical investigations of an automatic program abstraction method, PhD thesis, University of Michigan, Ann Arbor, MI (1979)Google Scholar
  8. 8.
    Weiser, M.: Program Slicing. IEEE Transactions on Software Engineering SE-10(7), 352–357 (1984)CrossRefGoogle Scholar
  9. 9.
    Pugh, W., Rosser, E.: Iteration Space Slicing and Its Application to Communication Optimization. In: Proceedings of the International Conference on Supercomputing, pp. 221–228 (1997)Google Scholar
  10. 10.
    Kelly, W., Pugh, W., Rosser, E., Shpeisman, T.: Transitive Closure of Infinite Graphs and its Applications. International Journal of Parallel Programming 24(6), 579–598 (1996)Google Scholar
  11. 11.
    Kelly, W., Maslov, V., Pugh, W., Rosser, E., Shpeisman, T., Wonnacott, D.: The omega library interface guide, Technical Report CS-TR-3445, University of Maryland (1995) Google Scholar
  12. 12.
    Ancourt, C., Irigoin, F.: Scanning polyhedra with do loops. In: Proceedings of the Third ACM/SIGPLAN Symposium on Principles and Practice of Parallel Programming, pp. 39–50. ACM Press, New York (1991)CrossRefGoogle Scholar
  13. 13.
    Bastoul, C.: Code Generation in the Polyhedral Model Is Easier Than You Think. In: Proceedings of the PACT 13 IEEE International Conference on Parallel Architecture and Compilation Techniques, Juan-les-Pins, pp. 7–16 (2004)Google Scholar
  14. 14.
    Boulet, P., Darte, A., Silber, G.A., Vivien, F.: Loop parallelization algorithms: from parallelism extraction to code generation. Parallel Computing 24, 421–444 (1998)zbMATHCrossRefMathSciNetGoogle Scholar
  15. 15.
    Quillere, F., Rajopadhye, S., Wilde, D.: Generation of efficient nested loops from polyhedra. International Journal of Parallel Programming 28 (2000)Google Scholar
  16. 16.
    Vasilache, N., Bastoul, C., Cohen, A.: Polyhedral code generation in the real world. In: Proceedings of the International Conference on Compiler Construction (ETAPS CC 2006). LNCS, pp. 185–201. Springer, Vienna, Austria (2006)Google Scholar
  17. 17.
    Gupta, G., DaeGon, Kim, Sanjay, Rajopadhye, V.: Scheduling in the Z-Polyhedral Model. In: Proceedings of IPDPS 2007 (2007) Google Scholar
  18. 18.
  19. 19.
    Lim, W., Lam, M.S.: Communication-free parallelization via affine transformations. In: Proceedings of the Seventh workshop on languages and compilers for parallel computing, pp. 92–106 (1994)Google Scholar
  20. 20.
    Feautrier, P.: Some efficient solutions to the affine scheduling problem, part i, one dimensional time. International Journal of Parallel Programming 21, 313–348 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  21. 21.
    Feautrier, P.: Some efficient solutions to the affine scheduling problem, part ii, multidimensional time. International Journal of Parallel Programming 21, 389–420 (1992)zbMATHCrossRefMathSciNetGoogle Scholar
  22. 22.
    Beletskyy, V., Siedlecki, K.: Finding Free Schedules for Non-uniform Loops. In: Kosch, H., Böszörményi, L., Hellwagner, H. (eds.) Euro-Par 2003. LNCS, vol. 2790, pp. 297–302. Springer, Heidelberg (2003)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Wlodzimierz Bielecki
    • 2
  • Anna Beletska
    • 1
  • Marek Palkowski
    • 2
  • Pierluigi San Pietro
    • 1
  1. 1.Dipartimento di Elettronica e InformazionePolitecnico di MilanoMilanoItaly
  2. 2.Faculty of Computer ScienceTechnical University of SzczecinSzczecinPoland

Personalised recommendations