MPI para ambientes com múltiplos domínios e elasticidade.

Detalhes bibliográficos
Ano de defesa: 2024
Autor(a) principal: Aguni, Carlos Alexandre Tomigawa
Orientador(a): Não Informado pela instituição
Banca de defesa: Não Informado pela instituição
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Biblioteca Digitais de Teses e Dissertações da USP
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://www.teses.usp.br/teses/disponiveis/3/3141/tde-23052024-075105/
Resumo: 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.