Skip to main content
Log in

Aproximating static list schedules in dynamic multithreaded applications

  • Published:
Cluster Computing Aims and scope Submit manuscript

Abstract

List scheduling algorithms are known to be efficient when the application to be executed can be described statically as a Directed Acyclic Graph (DAG) of tasks. Regardless of knowing the entire DAG beforehand, obtaining an optimal schedule in a parallel machine is a NP-hard problem. Moreover, many programming tools propose the use of scheduling techniques based on list strategies. This paper presents an analysis of scheduling algorithms for multithread programs in a dynamic scenario where threads are created and destroyed during execution. We introduce an algorithm to convert DAGs, describing applications as tasks, into Directed Cyclic Graphs (DCGs) describing the same application designed in a multithread programming interface. Our algorithm covers case studies described in previous works, successfully mapping from the abstract level of graphs to the application environment. These mappings preserve the guarantees offered by the abstract model, providing efficient scheduling of dynamic programs that follow the intended multithread model. We conclude the paper presenting some performance results we obtained by list schedulers in dynamic multithreaded environments. We also compare these results with the best scheduling we could obtain with similar static task schedulers.

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

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6

Similar content being viewed by others

References

  1. Albers, S.: Better bounds for on-line scheduling. SIAM J. Comput. 459–473 (1999)

  2. Bakshi, A., Prasanna, V., Reich, J., Larner, D.: The abstract task graph: a methodology for architecture-independent programming of networked sensor systems. In: Workshop on End-to-End, Sense-and-Respond Systems, Applications, and Services (2005)

    Google Scholar 

  3. Bartal, Y., Fiat, A.: New algorithms for an ancient scheduling problem. J. Comput. Syst. Sci. 51, 359–366 (1995)

    Article  MathSciNet  Google Scholar 

  4. Blumofe, R., Leiserson, C.: Scheduling multithreaded computations by work stealing. In: 35th Annual Symposium on Foundations of Computer Science, 1994 Proceedings, pp. 356–368. IEEE Press, New York (1994)

    Google Scholar 

  5. Blumofe, R.D., et al.: Cilk: an efficient multithreaded runtime system. ACM SIGPLAN Not. 30(8) (1995)

  6. Camargo, C.A.S., Cavalheiro, G.G.H., Pilla, M.L., da Costa, S.A., Foss, L.: Applying list scheduling algorithms in a multithreaded execution environment. In: Proceedings of the V Latin American Symposium on High Performance Computing (2012)

    Google Scholar 

  7. Casavant, T.L., Kuhl, J.G.: A taxonomy of scheduling in general-purpose distributed computing systems. IEEE Trans. Softw. Eng. 14(2), 141–154 (1988)

    Article  Google Scholar 

  8. Cavalheiro, G.G.H., Gaspary, L.P., Cardozo, M.A., Cordeiro, O.C.: Anahy: a programming environment for cluster computing. In: VII High Performance Computing for Computational Science. LNCS, vol. 4395. Springer, Berlin (2007)

    Google Scholar 

  9. Cavalheiro, G.G.H., ViÇosa, E.: Athreads: a dataflow programming interface for multiprocessors. In: LTPD 2007, Gramado, RS (2007)

    Google Scholar 

  10. Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., Menon, R.: Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco (2001)

    Google Scholar 

  11. Coffman, E. Jr, Denning, P.: Operating systems theory. Prentice Hall Professional Technical Reference (1973)

  12. Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computations. Pitman/MIT Press, London/Cambridge (1989)

    Google Scholar 

  13. Cordeiro, O., Peranconi, D., Villa Real, L., Dall’Agnol, E., Cavalheiro, G.: Exploiting multithreaded programming on cluster architectures. In: HPCS, Guelph (2005)

    Google Scholar 

  14. El-Rewini, H., Lewis, T.G.: Scheduling parallel program tasks onto arbitrary target machines. J. Parallel Distrib. Comput. 9(2), 138–153 (1990). doi:10.1016/0743-7315(90)90042-N

    Article  Google Scholar 

  15. Fleischer, R., Wahl, M.: On-line scheduling revisited. J. Sched. 343–353 (2000)

  16. Graham, R.: Bounds on the performance of scheduling algorithms. In: Computer and Job-Shop Scheduling Theory, pp. 165–227 (1976)

    Google Scholar 

  17. Graham, R.L.: Bounds for certain multiprocessor anomalies. Bell Syst. Tech. J. CLV(9) (1966)

  18. Hwang, J.J., Chow, Y.C., Anger, F.D., Lee, C.Y.: Scheduling precedence graphs in systems with interprocessor communication times. SIAM J. Comput. 18(2), 244–257 (1989). doi:10.1137/0218016

    Article  MATH  MathSciNet  Google Scholar 

  19. Johnston, W.M., Hanna, J.R.P., Millar, R.J.: Advances in dataflow programming languages. ACM Comput. Surv. 36(1), 1–34 (2004). doi:10.1145/1013208.1013209

    Article  Google Scholar 

  20. Karger, D.R., Phillips, S.J., Torng, E.: A better algorithm for an ancient scheduling problem. J. Algorithms 20, 400–430 (1996)

    Article  MATH  MathSciNet  Google Scholar 

  21. Reinders, J.: Intel Threading Building Blocks, 1st edn. O’Reilly, Sebastopol (2007)

    Google Scholar 

  22. Smith, T.F., Waterman, M.S.: Identification of common molecular subsequences. J. Mol. Biol. 215, 403–410 (1990)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Cícero A. S. Camargo.

Additional information

This work is part of the project “Green Grid”, supported by PRONEX FAPERGS/CNPq and PqG (11/1065-1) FAPERGS grants.

Supported by grant CAPES (Coordenadoria de Aperfeiçoamento de Pessoal de Nível Superior).

Rights and permissions

Reprints and permissions

About this article

Cite this article

Camargo, C.A.S., Cavalheiro, G.G.H., Pilla, M.L. et al. Aproximating static list schedules in dynamic multithreaded applications. Cluster Comput 17, 155–168 (2014). https://doi.org/10.1007/s10586-013-0322-3

Download citation

  • Received:

  • Revised:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s10586-013-0322-3

Keywords

Navigation