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.






Similar content being viewed by others
References
Albers, S.: Better bounds for on-line scheduling. SIAM J. Comput. 459–473 (1999)
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)
Bartal, Y., Fiat, A.: New algorithms for an ancient scheduling problem. J. Comput. Syst. Sci. 51, 359–366 (1995)
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)
Blumofe, R.D., et al.: Cilk: an efficient multithreaded runtime system. ACM SIGPLAN Not. 30(8) (1995)
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)
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)
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)
Cavalheiro, G.G.H., ViÇosa, E.: Athreads: a dataflow programming interface for multiprocessors. In: LTPD 2007, Gramado, RS (2007)
Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., Menon, R.: Parallel Programming in OpenMP. Morgan Kaufmann, San Francisco (2001)
Coffman, E. Jr, Denning, P.: Operating systems theory. Prentice Hall Professional Technical Reference (1973)
Cole, M.: Algorithmic Skeletons: Structured Management of Parallel Computations. Pitman/MIT Press, London/Cambridge (1989)
Cordeiro, O., Peranconi, D., Villa Real, L., Dall’Agnol, E., Cavalheiro, G.: Exploiting multithreaded programming on cluster architectures. In: HPCS, Guelph (2005)
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
Fleischer, R., Wahl, M.: On-line scheduling revisited. J. Sched. 343–353 (2000)
Graham, R.: Bounds on the performance of scheduling algorithms. In: Computer and Job-Shop Scheduling Theory, pp. 165–227 (1976)
Graham, R.L.: Bounds for certain multiprocessor anomalies. Bell Syst. Tech. J. CLV(9) (1966)
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
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
Karger, D.R., Phillips, S.J., Torng, E.: A better algorithm for an ancient scheduling problem. J. Algorithms 20, 400–430 (1996)
Reinders, J.: Intel Threading Building Blocks, 1st edn. O’Reilly, Sebastopol (2007)
Smith, T.F., Waterman, M.S.: Identification of common molecular subsequences. J. Mol. Biol. 215, 403–410 (1990)
Author information
Authors and Affiliations
Corresponding author
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
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
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10586-013-0322-3