Desempenho da Multiplicação de Matrizes em Sistemas Multicore com Pthreads, OpenMP, Blocking, SIMD e BLAS
Resumo
Este trabalho avalia o desempenho da multiplicação de matrizes paralelizada com OpenMP e Pthreads em sistemas multicore, aplicando otimizações como blocking, SIMD (AVX) e uso da BLAS. Os testes, com matrizes de até 4096×4096 e variação no número de threads, revelam que combinações dessas técnicas proporcionam ganhos expressivos, com speedups acima de 1000× com BLAS. Pthreads teve leve vantagem sobre OpenMP, e destaca-se a relevância de blocking e SIMD para eficiência de cache e paralelismo.
Referências
Santos, M. S.; Machado, M. C.; Oliveira, D. P. Comparação entre Implementações de Multiplicação de Matrizes com Pthreads, OpenMP e CUDA. Simpósio em Sistemas Computacionais de Alto Desempenho (WSCAD-SSC), 2023. Disponível em: [link]
IEEE. POSIX Threads Programming, 2017. Disponível em: [link]
Intel Corporation. Intel Advanced Vector Extensions (AVX), 2020. Disponível em: [link]
Goto, K., and Van De Geijn, R. Anatomy of High-Performance Matrix Multiplication. ACM Transactions on Mathematical Software, vol. 34, no. 3, pp. 12:1–12:25, 2008.
Ribeiro, B., Carvalho, D., Santos, V. Comparação do uso de OpenMP e Pthreads em uma Paralelização de Multiplicação de Matrizes. ResearchGate, 2019. Disponível em: [link]
Lawson, C.L., Hanson, R.J., Kincaid, D.R., Krogh, F.T. Basic Linear Algebra Subprograms for Fortran Usage. ACM Transactions on Mathematical Software, vol. 5, no. 3, pp. 308-323, 1979. Disponível em: [link]
