Maximizando os Recursos Computacionais com um Ambiente de Execução Baseado Estritamente em Tarefas
Resumo
Ambientes de execução utilizam estratégias para criar e gerenciar diversos fluxos paralelos, além de prover o aumento do desempenho das aplicações. Por outro lado, nem sempre exploram os recursos disponibilizados pelo hardware, além de fornecerem em sua maioria modelos de programação onde parte da gerência é normalmente explícita. Este artigo apresenta a linguagem de programação PLH, uma linguagem simples que renova alguns pontos no paradigma de programação paralela e o ambiente de execução PLH-Env que possui como objetivo explorar ao máximo os recursos das arquiteturas multinúcleo. O paralelismo em PLH-Env é baseado estritamente em tarefas, desta forma a linguagem de programação PLH potencializa o uso de tarefas enquanto grande parte da gerência do paralelismo é retirada do programador para o ambiente de execução.Referências
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.
Publicado
16/07/2012
Como Citar
HÜBNER, Rodrigo; FOLEISS, Juliano Henrique; D’AMATO, André Luiz Tinassi; SILVA, Anderson Faustino da.
Maximizando os Recursos Computacionais com um Ambiente de Execução Baseado Estritamente em Tarefas. In: WORKSHOP EM DESEMPENHO DE SISTEMAS COMPUTACIONAIS E DE COMUNICAÇÃO (WPERFORMANCE), 11. , 2012, Curitiba/PR.
Anais [...].
Porto Alegre: Sociedade Brasileira de Computação,
2012
.
p. 57-70.
ISSN 2595-6167.