MPI para ambientes com múltiplos domínios e elasticidade. - Aguni, Carlos Alexandre Tomigawa (2024)
Atualmente há uma crescente demanda de recursos computacionais para execução dos mais variados tipos de aplicações. Na busca pelo mais alto poder de processamento alinhada à busca por resultados cada vez mais rapidos e eficientes, instituições e organizações acabaram partindo de computadores pessoais e mainframes para workstations, cluster , grid de clusters, supercomputadores e à recente cloud. O advento da cloud foi um marco que democratizou o acesso às tecnologias de última geração a um preço muito acessível devido ao seu modelo de negócio de utilização sob demanda. No início do desenvolvimento de aplicações de alto desempenho, popularizou-se o padrão de troca de mensagens Message Passing Interface (MPI), tornando-se o modo de programação paralela mais utilizado desde a década de 90. A execução de uma aplicação MPI se adaptou à estrutura de computadores existente na época caracterizada por vários computadores, todos interconectados entre si. A vinda da cloud trouxe à tona outro conceito chave na área de sistemas distribuídos: a elasticidade. Diante das limitações conhecidas pela biblioteca MPI em se trabalhar com mais de um domínio e complexidades de implementação de uma aplicação elástica aliada às recentes funcionalidades oferecidas pela cloud, este trabalho propõe uma biblioteca que estende a interface MPI denominada Multi Cluster/Cloud MPI (MCMPI), capaz de integrar plataformas de execução de servidores, clusters onpremises e instâncias da cloud sem a necessidade de edição e compilação do código-fonte original. São oferecidas, também, funções de provisionamento, adição e remoção de nós e processos dinamicamente durante a execução da aplicação, facilitando a implementação de aplicações elásticas. Através de benchmarks, comparou-se seu desempenho com a execução MPI nativa e foi, também, desenvolvido um protótipo de aplicação elástica com resultados otimistas que comprovam a viabilidade da solução proposta.