Avaliação de Desempenho dos Algoritmos de Números Primos e Monte Carlo em Ambientes HPC

  • Gabriella Osório Ribeiro IFRO
  • Lucas Freire Sêmeler IFRO
  • Wanderson Roger Azevedo Dias IFRO

Resumo


A Computação de Alto Desempenho (HPC) é crucial para aplicações que requerem processamento intensivo, abrangendo as diversas áreas da ciência. Assim, este artigo apresenta a análise de desempenho dos algoritmos de Números Primos e Monte Carlo em versões serial e paralela, usando as bibliotecas OpenMP e MPI, e executando em Raspberry Pi e no ClusterPi. Os resultados mostraram que a paralelização reduziu significativamente o tempo de execução em comparação com a versão sequencial. O OpenMP superou o MPI para entradas menores, aproveitando melhor a memória compartilhada, enquanto MPI mostrou vantagens para grandes volumes de dados. O algoritmo de Monte Carlo, beneficiou-se da paralelização apenas com entradas maiores, devido ao overhead significativo em pequenas cargas de trabalho. A implementação em OpenMP apresentou os melhores speedups, sendo ≈2,9x e ≈1,5x para os algoritmos de Números Primos e Monte Carlo, respectivamente. Assim, a escolha entre OpenMP e MPI deve considerar a arquitetura do sistema e o tamanho do problema para otimizar o desempenho computacional.

Referências

Andrews, G. R. (2001) “Foundations of Multithreaded, Parallel, and Distributed Programming”. Boston, Massachusetts, EUA: Addison-Wesley, 2nd edition, 664p.

Akel, A. (2024) “A Importância dos Números Primos – Unidades Imaginárias”, disponível em [link]. Acessado em 22/06/2024.

Bell, G., Gray, J. (2002) “What’s Next in High-Performance Computing?”. In Communications of the ACM, 45(2):91-95, February.

Chapman, B.; Jost, G.; Pas, R. V. D. (2007) “Using OpenMP: Portable Shared Memory Parallel Programming”. Cambridge, Massachusetts, EUA: MIT Press, 1st edition, 353p.

Diaz, J.; Munoz-Caro, C.; Nino, A. (2012) “A Survey of Parallel Programming Models and Tools in the Multi and Many-Core Era”. In IEEE Trans. on Parallel and Distributed Systems, 23(8):1369-1386, August.

Gebali, F. (2011) “Algorithms and Parallel Computing”. Wiley, 1st edition, 364p.

Ignácio, A. L. J.; Dias, W. R. A. (2023) “Análise do Desempenho Computacional de Algoritmos Paralelizados com OpenMP e MPI Executados em Raspberry Pi”. In Workshop de Iniciação Científica - Simpósio em Sistemas Computacionais de Alto Desempenho (SSCAD), Porto Alegre, RS, Brasil, pp. 41-48.

Jin, H., Jespersen, D., Mehrotra, P., Biswas, R., Huang, L., Chapman, B. (2011) “High Performance Computing using MPI and OpenMP on Multi-core Parallel Systems”. In Parallel Computing, 37(9):562-575, September.

Lima, F. A.; Dias, W. R. A.; Moreno, E. D. (2020) “Implementação de um Cluster Embarcado usando a Plataforma Raspberry Pi”. In Escola Regional de Alto Desempenho do Rio de Janeiro (ERAD-RJ), Nova Iguaçu, RJ, Brasil, pp. 11-15.

Lima, F. A.; Moreno, E. D.; Dias, W. R. A. (2016) “Performance Analysis of a Low Cost Cluster with Parallel Applications and ARM Processors”. In IEEE Latin America Transactions, 14(11):4591-4596, December.

Mpi, (2024) “A Message-Passing Interface Standard Version 2.1”, disponível em [link]. Acessado em 12/06/2024.

OpenMP, (2024) “The OpenMP API Specification for Parallel Programming”, disponível em [link]. Acessado em 10/06/2024.

Pacheco, P. S. (2011) “An Introduction to Parallel Programming”. Morgan Kaufmann Publishers, 1st Ed., 370p.

Parhami, B. (2006) “Introduction to Parallel Processing - Algorithms and Architectures”. New York, USA: Kluwer Academic Publishers, 1st edition, 532p.

Petersen, W. P., Arbenz, P. (2004) “Introduction to Parallel Computing”. New York, EUA: Oxford University Press, 1st edition, 259p.

Silberschatz, A., Peter, G., Gagne, G. (2001) “Sistemas Operacionais - Conceitos e Aplicações”. Campus, 8ª edição, 618p.

Souto, R. P., Ávila, R. B., Navaux, P. A. O., Py, M., Maillard, N., Diverio, T. A., Velho, H. F. de C., Stephany, S., Preto, A., Panetta, J., Rodrigues, E., Almeida, E. (2007) “Processing Mesoscale Climatology in a Grid Environment”. In Proceedings of the Seventh IEEE International Symposium on Cluster Computing and the Grid (CCGRID'07), Rio de Janeiro, RJ, Brazil, pp. 363-370.

Top500. (2024) “Top 500 Supercomputing Site”, disponível em [link]. Acessado em 01/07/2024.

Trobec, R., Slivnik, B., Bulić, P., Robič, B. (2018) “Introduction to Parallel Computing - From Algorithms to Programming on State-of-the-Art Platforms”. Berlim, Alemanha: Springer, 1st edition, 255p.

Xavier, C., Sachetto, R., Vieira, V., Santos, R. W. dos, JR, W. M. (2007) “Multi level Parallelism in the Computational Modeling of the Heart”. In Proceedings of the 19th International Symposium on Computer Architecture and High Performance Computing (SBAC-PAD), Gramado, RS, Brazil, pp. 3-10.

Weisstein, E. W. (2024) “Monte Carlo Method. Wolfram Research Inc.”, disponível em [link]. Acessado em 23/05/2024.
Publicado
23/10/2024
RIBEIRO, Gabriella Osório; SÊMELER, Lucas Freire; DIAS, Wanderson Roger Azevedo. Avaliação de Desempenho dos Algoritmos de Números Primos e Monte Carlo em Ambientes HPC. In: WORKSHOP DE INICIAÇÃO CIENTÍFICA - SIMPÓSIO EM SISTEMAS COMPUTACIONAIS DE ALTO DESEMPENHO (SSCAD), 25. , 2024, São Carlos/SP. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2024 . p. 65-72. DOI: https://doi.org/10.5753/sscad_estendido.2024.244768.