Maximizing Computational Resources with a Strictly Task-Based Execution Environment
Abstract
Runtime environments uses strategies for create and manage multiple parallel threads, beyond to provide increase application performance. On the other hand, it doesn’t always exploit the resources provided by hardware, and provide mostly programming models where part of management is usually explicit. This paper presents a programming language PLH, a simple language renewing some points in the paradigm of parallel programming and the execution environment PLH-Env which has aimed to explore the most out of multicore architectures. The parallelism in PLH-Env is strictly task-based, so the programming language PLH enhances the use of tasks while much of the management of parallelism is removed from the programmer to the runtime environment.References
Agrawal, K., Leiserson, C. E., He, Y., and Hsu, W. J. (2008). Adaptive work-stealing with parallelism feedback. ACM Trans. Comput. Syst., 26(3):1–32.
Appel, A. W. and Ginsburg, M. (1998). Modern Compiler Implementation in C. Cambridge University Press, New York, Cambridge.
Blikberg, R. and Sorevik, T. (2001). Nested parallelism: Allocation of threads to tasks and openMP implementation. Scientific Programming, 9(2-3):185–194.
Chamberlain, B. L., Choi, S.-E., Lewis, E. C., Lin, C., Snyder, L., and Weathersby, W. D. (2000). Zpl: A machine independent programming language for parallel computers. IEEE Trans. Softw. Eng., 26:197–211.
Chapman, B., Jost, G., and Vanderpas, R. (2007). Using OpenMP. MIT Press, New York, NY, USA.
Damm, W. and Pnueli, A. (1997). Verifying out-of-order executions. Technical report, Jerusalem, Israel, Israel.
El-Ghazawi, T., Carlson, W., Sterling, T., and Yelick, K. (2003). UPC: Distributed Shared-Memory Programming. Wiley-Interscience, USA.
Frigo, M. (2007). Multithreaded programming in cilk. In Proceedings of the 2007 international workshop on Parallel symbolic computation, pages 13–14, New York, NY, USA. ACM.
Hübner, R. and da Silva, A. F. (2011). PLH: A General Purpose Parallel Language for Humans. In Proceedings of the IADIS International Conference on Applied Computing, pages 1–8, Rio de Janeiro, Brasil. IADIS.
Lin, C. and Snyder, L. (2009). Principle of Parallel Programming. Addison Wesley, California, USA, 1 edition.
Nichols, B. (1996). Pthreads Programming. Oreilly and Associates, New York.
Numrich, R. W. and Reid, J. (1998). Co-array fortran for parallel programming. SIGPLAN Fortran Forum, 17:1–31.
Planas, J., Badia, R. M., Ayguadé, E., and Labarta, J. (2009). Hierarchical task-based programming with starss. Int. J. High Perform. Comput. Appl., 23:284–299.
Scott, M. L. (2008). Programming Language Pragmatics. Elsevier, USA, 3 edition.
Smyk, A., Tudruj, M., and Masko, L. (2006). Open mp extension for multithreaded computing with dynamic smp processor clusters with communication on the fly. In Proceedings of the international symposium on Parallel Computing in Electrical Engineering, pages 83–88, Washington, DC, USA. IEEE Computer Society.
Stallings, W. (2009). Computer Organization and Architecture: Design and Performance. Prentice Hall, USA, 8th edition.
Tzenakis, G., Kapelonis, K., Alvanos, M., Koukos, K., Nikolopoulos, D. S., and Bilas, A. (2010). Tagged procedure calls (tpc): Efficient runtime support for task-based parallelism on the cell processor. In Patt, Y. N., Foglia, P., Duesterwald, E., Faraboschi, P., and Martorell, X., editors, HiPEAC, volume 5952, pages 307–321, USA. Springer.
Appel, A. W. and Ginsburg, M. (1998). Modern Compiler Implementation in C. Cambridge University Press, New York, Cambridge.
Blikberg, R. and Sorevik, T. (2001). Nested parallelism: Allocation of threads to tasks and openMP implementation. Scientific Programming, 9(2-3):185–194.
Chamberlain, B. L., Choi, S.-E., Lewis, E. C., Lin, C., Snyder, L., and Weathersby, W. D. (2000). Zpl: A machine independent programming language for parallel computers. IEEE Trans. Softw. Eng., 26:197–211.
Chapman, B., Jost, G., and Vanderpas, R. (2007). Using OpenMP. MIT Press, New York, NY, USA.
Damm, W. and Pnueli, A. (1997). Verifying out-of-order executions. Technical report, Jerusalem, Israel, Israel.
El-Ghazawi, T., Carlson, W., Sterling, T., and Yelick, K. (2003). UPC: Distributed Shared-Memory Programming. Wiley-Interscience, USA.
Frigo, M. (2007). Multithreaded programming in cilk. In Proceedings of the 2007 international workshop on Parallel symbolic computation, pages 13–14, New York, NY, USA. ACM.
Hübner, R. and da Silva, A. F. (2011). PLH: A General Purpose Parallel Language for Humans. In Proceedings of the IADIS International Conference on Applied Computing, pages 1–8, Rio de Janeiro, Brasil. IADIS.
Lin, C. and Snyder, L. (2009). Principle of Parallel Programming. Addison Wesley, California, USA, 1 edition.
Nichols, B. (1996). Pthreads Programming. Oreilly and Associates, New York.
Numrich, R. W. and Reid, J. (1998). Co-array fortran for parallel programming. SIGPLAN Fortran Forum, 17:1–31.
Planas, J., Badia, R. M., Ayguadé, E., and Labarta, J. (2009). Hierarchical task-based programming with starss. Int. J. High Perform. Comput. Appl., 23:284–299.
Scott, M. L. (2008). Programming Language Pragmatics. Elsevier, USA, 3 edition.
Smyk, A., Tudruj, M., and Masko, L. (2006). Open mp extension for multithreaded computing with dynamic smp processor clusters with communication on the fly. In Proceedings of the international symposium on Parallel Computing in Electrical Engineering, pages 83–88, Washington, DC, USA. IEEE Computer Society.
Stallings, W. (2009). Computer Organization and Architecture: Design and Performance. Prentice Hall, USA, 8th edition.
Tzenakis, G., Kapelonis, K., Alvanos, M., Koukos, K., Nikolopoulos, D. S., and Bilas, A. (2010). Tagged procedure calls (tpc): Efficient runtime support for task-based parallelism on the cell processor. In Patt, Y. N., Foglia, P., Duesterwald, E., Faraboschi, P., and Martorell, X., editors, HiPEAC, volume 5952, pages 307–321, USA. Springer.
Published
2012-07-16
How to Cite
HÜBNER, Rodrigo; FOLEISS, Juliano Henrique; D’AMATO, André Luiz Tinassi; SILVA, Anderson Faustino da.
Maximizing Computational Resources with a Strictly Task-Based Execution Environment. In: WORKSHOP ON PERFORMANCE OF COMPUTER AND COMMUNICATION SYSTEMS (WPERFORMANCE), 11. , 2012, Curitiba/PR.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2012
.
p. 57-70.
ISSN 2595-6167.
