ScheDIS.jl: Interface Julia para Escalonamento Dinâmico em Sistemas de Memória Distribuída

João Augusto Câmara Neto

UFERSA

Ítalo Augusto Souza de Assis

João Batista Fernandes

Palavras-chave: Escalabilidade, Computação Paralela, Eficiência


Resumo

A Computação de Alto Desempenho (HPC) é um pilar essencial para a solução de problemas científicos complexos, e a linguagem de programação Julia tem ganhado crescente destaque nesse cenário, por unificar alta produtividade e desempenho. Em sistemas de memória distribuída, o uso de Julia é frequentemente combinado com a Message Passing Interface (MPI), um dos padrões frequentemente usados na indústria para comunicação paralela. Contudo, a eficiência desses sistemas é profundamente desafiada pelo balanceamento de carga, mesmo em ambientes homogêneos. A natureza variável de muitas simulações científicas pode levar a desequilíbrios, onde uma distribuição estática de tarefas pode resultar em elevado tempo ocioso e subutilização de recursos. Este trabalho tem como objetivo principal o desenvolvimento e a validação de um wrapper em Julia para o escalonador de sistemas distribuídos unificado (ScheDIS), uma biblioteca de escalonamento dinâmico originalmente desenvolvida em C++ com MPI, visando otimizar a execução de aplicações paralelas em ambientes de HPC. Na metodologia, o wrapper será implementado com o uso do pacote CxxWrap.jl, a fim de criar uma interface de alto nível que possibilite a integração e o acesso às funções do ScheDIS. A validação será realizada através de um estudo de caso prático e computacionalmente intensivo, utilizando o framework JUDI.jl. O JUDI (Julia Devito Inversion) é uma biblioteca de alto nível para imageamento e inversão sísmica, abstraindo operações de modelagem cuja paralelização é comumente aplicada na distribuição de fontes sísmicas (shots). Esta aplicação é um caso de uso ideal, pois o custo computacional de cada shot pode variar, justificando uma abordagem de escalonamento dinâmico. O método de análise consistirá na comparação de desempenho entre duas abordagens: a execução de problemas de modelagem no JUDI utilizando a arquitetura proposta (ScheDIS + MPI.jl) contra a implementação paralela padrão da linguagem, baseada na biblioteca nativa Distributed.jl. Os experimentos serão conduzidos em um ambiente de computação de alto desempenho, e as métricas de avaliação indicadas para a análise comparativa incluirão o tempo total de execução (makespan) e o tempo ocioso (idle time) dos nós. A análise de resultados se concentrará em quantificar o impacto das diferentes estratégias de escalonamento, onde se espera que a abordagem ScheDIS, com seu escalonamento dinâmico, apresente uma redução significativa no tempo ocioso e no tempo total de execução, em comparação com a distribuição da biblioteca Distributed. Espera-se concluir que a integração do ScheDIS ao ecossistema Julia é uma solução viável e eficiente, oferecendo um modelo de paralelismo adaptativo que supera as limitações das ferramentas padrão em cenários de carga computacional variável, otimizando a utilização dos recursos de HPC.