Skip to main content

Dependence driven execution for data parallelism

  • Run Time Control of Parallelism
  • Conference paper
  • First Online:
Languages and Compilers for Parallel Computing (LCPC 1996)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 1239))

  • 99 Accesses

Abstract

This paper proposes an efficient run-time system to schedule general nested loops on multiprocessors. The work extends existing one-dimensional loop scheduling strategies such as static scheduling, affinity scheduling and various dynamic scheduling methods. The extensions are twofold. First, multiple independent loops as found in different branches of parbegin/parend constructs can be scheduled simultaneously. Secondly, multidimensional loops with dependencies and conditions can be aggressively scheduled. The ability to schedule multidimensional loops with dependencies is made possible by providing a dependence vector as an input to the scheduler. Based on this application-specific input, a continuation-passing run-time system using non-blocking threads efficiently orchestrates the parallelism on shared memory MIMD and DSM multi-computers. The run-time system uses a dependence-driven execution which is similar to data-driven and message-driven executions in that it is asynchronous. This asynchrony allows a high degree of parallelism.

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

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J.R. Allen and K. Kennedy. Automatic loop interchange. ACM SIGPLAN Notices, 19(6):233–246, June 1985.

    Article  Google Scholar 

  2. Vasanth Balasundaram. A mechanism for keeping useful internal information in parallel programming tools: The data access descriptor. Journal of Parallel and Distributed Computing, 9:154–170, 1990.

    Article  Google Scholar 

  3. Vasanth Balasundaram and Ken Kennedy. A technique for summarizing data access and its use in parallelism enhancing transformations. In Proceedings of teh ACM SIGPLAN Symposium on Compiler Construction, pages 41–53, June 1989.

    Google Scholar 

  4. U. Banerjee. An introduction to a formal theory of dependence analysis. J. Supercomp., 2(2): 133–149, August 1988.

    Article  Google Scholar 

  5. B.N. Bershad, E.D. Lazowska, and H.M. Levy. PRESTO: A System for Object-Oriented Parallel Programming. Software Practice and Experience, 18(8):713–732, August 1988.

    Google Scholar 

  6. Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. Cilk: An efficient multithreaded runtime system. In Proceedings of the Fifth ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, San Barbara, California, July 1995.

    Google Scholar 

  7. David Callahan. A Global Approach to Detection of Parallelism. PhD thesis, Rice University, April 1987.

    Google Scholar 

  8. D.E. Culler, A. Sah, K.E. Schauser, T. von Eicken, and J. Wawrzynek. Fine-grain parallelism with minimal hardware support: a compiler-controlled threaded abstract machine. In Proceedings of the 4th Symposium on Architectural Support for Programming Languages and Operating Systems, pages 164–175, Santa Clara, CA, April 1991.

    Google Scholar 

  9. Derek L. Eager and John Zahorjan. Chores: Enhanced run-time support fo shared memory parallel computing. ACM. Trans on Computer Systems, 11(1): 1–32, February 1993.

    Article  Google Scholar 

  10. Zhixi Fang, Peiyi Tang, Pen chung Yew, and Chuan qi Zhu. Dynamic processor self-scheduling for general parallel nested loops. IEEE Transactions on Computers, pages 919–929, July 1990.

    Google Scholar 

  11. D. Gannon and J.K. Lee. Object oriented parallelism. In Proceedings of 1991 Japan Society for Parallel Processing, pages 13–23, 1991.

    Google Scholar 

  12. Susan Graham, Steven Lucco, and Oliver Sharp. Orchestrating interactions among parallel computations. In Proceedings of the ACM SIGPLAN '93 Conference on Programming Language Design and Implementation, Albuquerque, NM, April 1993. ACM, ACM.

    Google Scholar 

  13. A. S. Grimshaw. Easy to use object-oriented parallel programming with mentat. IEEE Computer, pages 39–51, May 1993.

    Google Scholar 

  14. A. S. Grimshaw, W. T. Strayer, and P. Narayan. Dynamic object-oriented parallel processing. IEEE Parallel and Distributed Technology: Systems and Applications, pages 33–47, May 1993.

    Google Scholar 

  15. Dirk Grunwald. A users guide to awesime: An object oriented parallel programming and simulation system. Technical Report CU-CS-552-91, University of Colorado, Boulder, 1991.

    Google Scholar 

  16. High Performance Fortran Forum HPFF. Draft high performance fortran specificition, version 0.4. In Proceedings of 1991 Japan Society for Parallel Processing, page Available from anonymous ftp site titan.cs.rice.edu, 1992.

    Google Scholar 

  17. S. F. Hummel, Edith Schonberg, and L. E. Flynn. Factoring, a method for scheduling parallel loops. Communications of the ACM, 35(8):90–101, August 1992.

    Article  Google Scholar 

  18. C. Kruskal and A. Weiss. Allocating independent subtasks on parallel processors. IEEE Transactions on Software Engineering, 11:1001–10016, October 1985.

    Google Scholar 

  19. Liu and et al. Scheduling parallel loops with variable length iteration execution times on parallel computers. In Proc. 5th Intl. Conf. Parallel and Distributed Computing and System, October 1992.

    Google Scholar 

  20. Steven Lucco. A dynamic scheduling method for irregular parallel programs. In Proceedings of ACM SIGPLAN '92 Conference on Porgramming Language Design and Implementation, pages 200–211. ACM, June 1992.

    Google Scholar 

  21. E.P Markatos and T. J. LeBlanc. Load Balancing vs Locality Management in Shared Memory Multiprocessors. In Intl. Conference on Parallel Processing, pages 258–257, St. Charles, Illinois, August 1992.

    Google Scholar 

  22. C. D. Polochronopoulous and D. Kuck. Guided self-scheduling: A practical scheduling scheme for parallel supercomputers. IEEE Transactions on Computers, 36(12): 1425–1439, December 1987.

    Google Scholar 

  23. C. D. Polychronopoulos. Loop coalescing: A compiler transformation for parallel machines. In Proceedings of International Conference on Parallel Processing, August 1987.

    Google Scholar 

  24. Hanan Samet. The Design and Analysis of Spatial Data Structures. Addison-Wesley, 1990.

    Google Scholar 

  25. P. Tang and P.C. Yew. Processor self-scheduling for multiple nested parallel loops. In Proc. Int. Conf. on Parallel Processing, pages 528–535. IEEE, August 1986.

    Google Scholar 

  26. T.H. Tzen and L.M. Ni. Trapezoid self-scheduling: A practical scheduling scheme for parallel computers. IEEE Transactions Parrallel Distributed Systems, 4:87–98, January 1993.

    Article  Google Scholar 

  27. Chien-Min Wang and Sheng-De Wang. A hybrid scheme for efficiently executing loops on multiprocessors. Parallel Computing, 18:625–637, 1992.

    Article  Google Scholar 

  28. M.J. Wolfe. Optimizing supercompilers for supercomputers. PhD thesis, Univ. Illinois, Urbana, April 1987. Rep. 329.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

David Sehr Utpal Banerjee David Gelernter Alex Nicolau David Padua

Rights and permissions

Reprints and permissions

Copyright information

© 1997 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Vajracharya, S., Grunwald, D. (1997). Dependence driven execution for data parallelism. In: Sehr, D., Banerjee, U., Gelernter, D., Nicolau, A., Padua, D. (eds) Languages and Compilers for Parallel Computing. LCPC 1996. Lecture Notes in Computer Science, vol 1239. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0017276

Download citation

  • DOI: https://doi.org/10.1007/BFb0017276

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-63091-3

  • Online ISBN: 978-3-540-69128-0

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics