Comparação e Análise de Desempenho de Aceleradores Gráficos no Processamento de Matrizes
Resumo
Nos últimos anos as tradicionais soluções da Computação de Alto Desempenho (HPC, do inglês High Performance Computing), como a inserção ou a substituição de processadores, vêm sofrendo grandes mudanças, com a inclusão de novos recursos. O uso de aceleradores gráficos têm sido um dos métodos pelos quais tem se tornado possível continuar a ampliar o desempenho computacional. Porém, assim como outras técnicas, esta também conduz à necessidade de habilidades específicas de programação que permitam a melhor extração do poder computacional oferecido pelo conjunto CPU e GPU. Este trabalho faz uma comparação entre tecnologias como OpenACC, CUDA e OpenMP na avaliação de desempenho no processamento de matrizes.
Referências
Barbosa, J. (2011). Noções sobre Matrizes e Sistemas de Equações Lineares. FEUP Edições, 2a edição edition.
Bényász, G. and Cser, L. (2010). Clustering financial time series on cuda. In Conference of PHD Students in Computer Science Institute of Informatics of the University of Szeged, Hungary. University of Szeged.
Chandra, R., Dagum, L., Kohr, D., Maydan, D., McDonald, J., and Menon, R. (2001). Parallel Programming in OpenMP. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA.
Chapra, S. and Canale, R. (2011). Métodos Numéricos para Engenharia. McGraw Hill Brasil.
Cook, S. (2013). CUDA Programming: A Developer’s Guide to Parallel Computing with GPUs. Applications of GPU Computing Series. Morgan Kaufmann.
Erlangga, Y. A. (2005). A robust and efficient iterative method for the numerical solution of the Helmholtz equation. fl.126, Delft University. Tese (Doutorado).
Fernandes, A. d. A., Stephany, S., and Panetta, J. (2012). Paralelização do modelo de cinética química atmosférica do cptec/inpe para utilizar placas gráficas. In XII Workshop de Computação Aplicada.
Gilat, A. and Subramaniam, V. (2008). Metodos Numéricos para Engenheiros e Cientistas: Uma Introdução com Aplicações Usando o MATLAB. Bookman.
Hoshino, T., Maruyama, N., Matsuoka, S., and Takaki, R. (2013). Cuda vs openacc: Performance case studies with kernel benchmarks and a memory-bound cfd application. In Cluster, Cloud and Grid Computing (CCGrid), 2013 13th IEEE/ACM International Symposium on, pages 136–143.
Kirk, D. B. and Hwu, W.-m. W. (2013). Programming Massively Parallel Processors: A Hands-on Approach. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2st edition.
Ledur, C. L., Zeve, C. M., and dos Anjos, J. C. (2013). Comparative analysis of openacc, openmp and cuda using sequential and parallel algorithms.
Manavski, S. and Valle, G. (2008). Cuda compatible gpu cards as efficient hardware accelerators for smith-waterman sequence alignment. BMC Bioinformatics, 9:S10.
Manfroi, L. L. F., Schulze, B., Pinto, R. C. G., Mury, A. R., and Ferro, M. (2014). Avaliação de arquiteturas manycore e do uso da virtualização de gpus. In de Computação (SBC), S. B., editor, XXXIV Congresso da Sociedade Brasileira de Computação, pages 1837–1850.
NVIDIA (2013). Cuda toolkit documentation. http://docs.nvidia.com/cuda/.