Caracterização da Execução de Chamadas Coletivas em OpenMPI - Sell, Leonardo Vinicius Salas (2024)
O padrão Message Passing Interface (MPI) foi criado em 1991 para padronizar a comunicação entre dispositivos e aplicações em computação de alto desempenho, utilizando bibliotecas para gerenciar a comunicação de processos em máquinas paralelas. Entre as várias implementações do MPI, o presente trabalho foca seus esforços no OpenMPI, uma versão de código aberto. Abordando as chamadas coletivas, cujos algoritmos internos podem ser otimizados dependendo de fatores como topologia de rede e carga da aplicação. O objetivo do presente trabalho é caracterizar a comunicação e o processamento de um subconjunto de chamadas coletivas no OpenMPI, identificando o melhor algoritmo de comunicação para dado cenário. Para tal, foram realizados experimentos variando o tamanho das mensagens e utilizando o maior número de processos por nodo permitido pela infraestrutura, utilizando benchmarks do OSU da Universidade de Ohio. Foi desenvolvido um método para identificar o algoritmo mais eficiente para diferentes configurações, aplicável em ambientes semelhantes, como clusters de pequeno porte. Os resultados corroboram estudos anteriores, demonstrando que não existe um algoritmo único superior, mas sim o mais adequado para cada cenário. Como limitações, o estudo usou uma topologia de rede fixa e focou em algumas chamadas coletivas. Para trabalhos futuros, recomenda-se buscar novos dados como uso de CPU e de memória RAM, assim como novos mapeamentos como por núcleo e ampliar a análise para outras chamadas coletivas e clusters maiores.