Advertisement

Transitive Closure Based Schedule of Loop Nest Statement Instances

  • Wlodzimierz BieleckiEmail author
  • Marek Palkowski
Conference paper
Part of the Advances in Intelligent Systems and Computing book series (AISC, volume 889)

Abstract

A novel algorithm of loop nest statement instance scheduling is presented. It is based on the transitive closure of dependence graphs. The algorithm is implemented in the publicly available optimizing TRACO compiler, which allows for automatic parallelization of program loop nests and automatic generation of parallel compilable code in the OpenMP standard. Results of an experimental study demonstrate that the algorithm is able to generate parallel code for popular benchmarks and this code achieves satisfactory speed-up on modern machines. The computational complexity of the approach is low. Future algorithm improvements are discussed.

Keywords

Schedule Transitive closure Dependence graphs Automatic loop nest parallelization OpenMP 

Notes

Acknowledgements

Thanks to the Miclab Team (miclab.pl) from the Technical University of Czestochowa (Poland) that provided access to high performance multi-core machines for the experimental study presented in this paper.

References

  1. 1.
    Bastoul, C., Cohen, A., Girbal, S., Sharma, S., Temam, O.: Putting polyhedral loop transformations to work. In: International Workshop on Languages and Compilers for Parallel Computers, LCPC 2016. LNCS, Texas, vol. 2958, pp. 209–225 (2003)Google Scholar
  2. 2.
    Beletska, A., et al.: Coarse-grained loop parallelization: iteration space slicing vs affine transformations. Parallel Comput. 37, 479–497 (2011)CrossRefGoogle Scholar
  3. 3.
    Bielecki, W., Palkowski, M., Klimek, T.: Free scheduling for statement instances of parameterized arbitrarily nested affine loops. Parallel Comput. 38(9), 518–532 (2012)CrossRefGoogle Scholar
  4. 4.
    Bondhugula, U., et al.: A practical automatic polyhedral parallelizer and locality optimizer. SIGPLAN Not. 43(6), 101–113 (2008)CrossRefGoogle Scholar
  5. 5.
    Feautrier, P.: Some efficient solutions to the affine scheduling problem: I. one-dimensional time. Int. J. Parallel Program. 21(5), 313–348 (1992)Google Scholar
  6. 6.
    Feautrier, P.: Some efficient solutions to the affine scheduling problem. Part II. multidimensional time. Int. J. of Parallel Program. 21(6), 389–420 (1992)Google Scholar
  7. 7.
    Griebl, M., Feautrier, P., Lengauer, C.: Index set splitting. Int. J. Paralleling Program. 28, 607–631 (2000)CrossRefGoogle Scholar
  8. 8.
    Grosser, T., Verdoolaege, S., Cohen, A.: Polyhedral AST generation is more than scanning polyhedra. ACM Trans. Program. Lang. Syst. 37(4), 12:1–12:50 (2015)Google Scholar
  9. 9.
    Lim, A., 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, pp. 228–237. ACM Press (1999)Google Scholar
  10. 10.
    Pugh, W., Wonnacott, D.: An exact method for analysis of value-based array data dependences. In: Sixth Annual Workshop on Programming Languages and Compilers for Parallel Computing. Springer (1993)Google Scholar
  11. 11.
    Verdoolaege, S.: isl: an integer set library for the polyhedral model. In: Mathematical Software, ICMS 2010. LNCS, vol. 6327, pp. 299–302. Springer, Heidelberg (2010)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2019

Authors and Affiliations

  1. 1.Faculty of Computer Science and Information SystemsWest Pomeranian University of Technology in SzczecinSzczecinPoland

Personalised recommendations