25 jun 2025
15:00 Defesa de Mestrado sala 53 do IC2
Tema
Prevenindo Erros de Memória no Dask por meio do Particionamento Automático com Consciência de Memória
Aluno
Daniel De Lucca Fonseca
Orientador / Docente
Edson Borin
Breve resumo
Aplicações em Computação de Alto Desempenho (HPC) exigem precisão na alocação de memória devido ao risco iminente de falhas causadas por subestimativas dos requisitos. Frameworks paralelos em Python, como o Dask, utilizam estratégias automáticas de particionamento para dividir grandes volumes de dados em blocos menores. Contudo, as heurísticas padrão do Dask tipicamente ignoram os requisitos específicos de memória dos diferentes operadores, causando falhas por falta de memória (Out-of-Memory, OOM).
Esta dissertação apresenta uma metodologia automatizada de particionamento com consciência de memória, melhorando significativamente a confiabilidade em aplicações Dask ao prever o consumo de memória a partir das dimensões dos dados. Realizou-se inicialmente uma avaliação sistemática para identificar fatores que influenciam o uso de memória em tarefas intensivas, especialmente operadores sísmicos (Envelope, GST3D, Filtro Gaussiano 3D). Por meio do perfilamento com a biblioteca TraceQ, desenvolvida para este trabalho, o uso de memória foi precisamente capturado em ambientes controlados e conteinerizados. Esses experimentos exploraram a relação entre parâmetros de forma dos dados (inlines, xlines, amostras) e os requisitos máximos de memória, identificando padrões previsíveis.
Modelos de regressão foram empregados para prever o uso de memória exclusivamente com base nos parâmetros de forma, apresentando previsões precisas, com baixo erro quadrático médio (RMSE) e elevado poder explicativo (R² próximo a 1.0). Estudos de seleção de features e redução de dados demonstraram que o volume total dos dados fornece capacidade preditiva suficiente, simplificando o processo.
O algoritmo de particionamento com consciência de memória utiliza esses modelos diretamente na seleção de partições do Dask. Em vez de otimizar apenas por velocidade, o método prioriza robustez, ajustando as dimensões das partições para prevenir transbordamentos. Avaliações empíricas mostraram que a abordagem elimina completamente falhas OOM, oferecendo confiabilidade mesmo com grandes volumes de dados sísmicos. Embora ocasionalmente introduza leve aumento no tempo de execução devido ao particionamento conservador, a substancial melhora em estabilidade operacional justifica esse trade-off, especialmente em cenários críticos onde robustez supera ganhos marginais de desempenho.
Em suma, esta dissertação introduz um método prático e automatizado que garante robustez em fluxos de trabalho Dask por meio do dimensionamento inteligente de partições. Ao resolver a estimativa crítica de memória, esta pesquisa melhora a eficiência operacional em ambientes distribuídos, reduzindo riscos de falhas e otimizando a gestão de recursos em aplicações HPC baseadas em Python.
Banca examinadora
Titulares:
Edson Borin | IC/UNICAMP |
Antônio Tadeu Azevedo Gomes | LNCC |
Rodolfo Jardim de Azevedo | IC/UNICAMP |
Suplentes:
Sandro Rigo | IC/UNICAMP |
Edson Norberto Cáceres | FACOM/UFMS |