Comparação das linguagens Rust, Go e OpenMP na Implementação de Algoritmos Concorrentes e Paralelos

  • Lucas Braatz Araujo UFPEL
  • André Rauber Du Bois UFPEL
  • Gerson Geraldo H. Cavalheiro UFPEL

Resumo


Este artigo apresenta um projeto que realiza um estudo comparativo entre Rust, Go e OpenMP no contexto de programação paralela e concorrente. A pesquisa analisa a expressividade e o esforço de programação na implementação de algoritmos clássicos de concorrência. Utiliza-se a metodologia GQM (Goal Question Metric), que orienta a avaliação com base em objetivos, questões e métricas. Resultados preliminares indicam que Rust oferece segurança e controle, Go se destaca pela simplicidade e OpenMP pela facilidade na paralelização incremental. Essas conclusões podem auxiliar na escolha da linguagem conforme requisitos de desempenho, segurança e implementação.
Palavras-chave: Algoritmos Paralelos e Distribuídos, Aplicações de Computação de Alto Desempenho em Ciências e Engenharias, Linguagens, Compiladores e Ferramentas para Alto Desempenho, Sistemas Operacionais

Referências

Basili, V. R., Caldiera, G., and Rombach, D. H. (1994). The Goal Question Metric Approach, volume I. John Wiley & Sons.

Dagum, L. and Menon, R. (1998). Openmp: An industry-standard api for shared-memory programming. IEEE Computational Science & Engineering, 5(1):46–55.

Lee, K., Song, H., Kim, J., and Ryu, S. (2020). Understanding real-world concurrency bugs in go. Proceedings of the ACM on Programming Languages, 4(OOPSLA):1–30.

Matsakis, N. D. and Klock, F. S. (2014). The Rust language. In Proc. of the 2014 ACM SIGAda An. Conf. on High Integrity Language Technology, pages 103–104.

Pankratius, V., Adl-Tabatabai, A.-R., and Garzaran, M. J. (2009). Software engineering for multicore systems: An experience report. IEEE Software, 26(6):20–29.

Togashi, N. and Klyuev, V. (2014). Concurrency in go and java: Performance analysis. In 2014 4th IEEE Inter. Conf. on Information Science and Technology.

Trobec, R., Slivnik, B., Bulic, P., and Robić, B. (2018). Programming multi-core and shared memory multiprocessors using openmp. In Introduction to Parallel Computing, Undergraduate Topics in Computer Science, pages 75–108. Springer, Cham.
Publicado
23/04/2025
ARAUJO, Lucas Braatz; DU BOIS, André Rauber; CAVALHEIRO, Gerson Geraldo H.. Comparação das linguagens Rust, Go e OpenMP na Implementação de Algoritmos Concorrentes e Paralelos. In: ESCOLA REGIONAL DE ALTO DESEMPENHO DA REGIÃO SUL (ERAD-RS), 25. , 2025, Foz do Iguaçu/PR. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2025 . p. 117-120. ISSN 2595-4164. DOI: https://doi.org/10.5753/eradrs.2025.6798.