Abstract
This paper presents Anahy, a programming environment for cluster computing. Anahy is presented in terms of its programming interface (API) and its scheduling mechanism. The main features of this environment are the specification of a POSIX thread-based API and the use of dynamic scheduling techniques based on Directed Acyclic Task Graphs (DAG). The main advantage obtained with these features is the dissociation between the description of the concurrency of an application and its parallel execution. The paper examines how Anahy builds a DAG describing the dependencies among tasks at execution time from a multithreaded program and how this DAG is handled by the runtime to apply dynamic scheduling techniques. The paper concludes discussing three case studies of applications developed in the context of Anahy environment.
The Anahy project is supported by CNPq/PDPG-TI (55 2196/2002-9), FAPERGS (02/0571.4), and was developed in collaboration with UNISINOS and HP Brazil R&D.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Alverson, G.A., et al.: Abstractions for portable, scalable parallel programming. IEEE Trans. on Parallel and Distributed Systems 9(1), 71–86 (1998)
Galilée, F., et al.: Athapascan-1: on-line building data flow graph in a parallel language. In: Proc. of the 7th International Conference on Parallel Architectures and Compilation Techniques (PACT), Paris (1998)
Blumofe, R., et al.: Cilk: an efficient multithreaded runtime system. Journal of Parallel and Distributed Computing 37(1), 55–69 (1996)
Mendes, R., et al.: Runtime system support for running applications with dynamic and asynchronous task parallelism in software DSM systems. In: Proc. of the 18th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD’06), Ouro Preto (2006)
Yang, T., Gerasoulis, A.: DSC: Scheduling parallel tasks on an unbounded number of processors. IEEE Transactions on Parallel and Distributed Systems 5(9), 283–297 (1994)
Berman, F., et al.: New grid scheduling and rescheduling methods in the grads project. International Journal of Parallel Programming 33(2–3), 209–229 (2005)
Coffman, E.G., Graham, R.: Optimal scheduling for two-processor systems. Acta Informatica 1, 200–213 (1972)
Hu, T.C.: Parallel sequencing and assembly line problems. Operations Research 19(6), 841–848 (1961)
Kwok, Y.-K., Ahmad, I.: Benchmarking and comparison of the task graph scheduling algorithms. Parallel and Distributed Computing 59(3), 381–422 (1999)
Cavalheiro, G.G.H.: A general scheduling framework for parallel execution environments. In: Proc. of the SLAB’01, Brisbane (2001)
Black, D.L.: Scheduling support for concurrency and parallelism in the mach operating system. IEEE Computer 23(5), 35–43 (1990), citeseer.ist.psu.edu/black90scheduling.html
Xiao, Z., Li, W.N., Jenq, J.J.F.: On unit task linear-nonlinear two-cluster scheduling problem. In: Proc. of the ACM Symposium on Applied Computing, Santa Fe, ACM Press, New York (2005)
Kwok, Y.-K., Ahmad, I.: Static scheduling algorithms for allocating directed task graphs to multiprocessors. ACM Comput. Surv. 31(4), 406–471 (1999), doi:10.1145/344588.344618
Culler, D.: Arvind: Resource requirements of dataflow programs, Honolulu (1988)
Garey, M., Johnson, D.: Computers and intractability: a guide to the theory of NP-Completeness (1979)
Feitelson, D.G., Rudolph, L.: Parallel job scheduling: issues and approaches. In: Feitelson, D.G., Rudolph, L. (eds.) IPPS-WS 1995 and JSSPP 1995. LNCS, vol. 949, pp. 1–18. Springer, Heidelberg (1995)
Iverson, M.A., Özgüner, F.: Dynamic, competitive scheduling of multiple DAGs in a distributed heterogeneous environment. In: Heterogeneous Computing Workshop (1998)
Sinnen, O., Sousa, L.: List scheduling: extension for contention awareness and evaluation of node priorities for heterogeneous cluster architectures. Parallel Computing 30(1) (2004)
Sakellariou, R., Zhao, H.: A hybrid heuristic for DAG scheduling on heterogeneous systems. In: Proc. of the Heterogeneous Computing Workshop (2004)
Valiant, L.G.: A bridging model for parallel computation. Commun. ACM 33(8) (1990)
Cordeiro, O.C., et al.: Exploiting multithreaded programming on cluster architectures. In: Proc. of the 19th Annual International Symposium on High Performance Computing Systems and Applications (HPCS), Guelph (2005)
Peranconi, D.S., Cavalheiro, G.G.H.: Using Active Messages to explore high performance in cluster of computers. In: Proc. of the 15th International Conference of the Chilean Computer Science Society (SCCC) (2005)
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 2007 Springer Berlin Heidelberg
About this paper
Cite this paper
Cavalheiro, G.G.H., Gaspary, L.P., Cardozo, M.A., Cordeiro, O.C. (2007). Anahy: A Programming Environment for Cluster Computing. In: Daydé, M., Palma, J.M.L.M., Coutinho, Á.L.G.A., Pacitti, E., Lopes, J.C. (eds) High Performance Computing for Computational Science - VECPAR 2006. VECPAR 2006. Lecture Notes in Computer Science, vol 4395. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-71351-7_16
Download citation
DOI: https://doi.org/10.1007/978-3-540-71351-7_16
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-71350-0
Online ISBN: 978-3-540-71351-7
eBook Packages: Computer ScienceComputer Science (R0)