Análise de escalonamento de carga computacional em problemas geofísicos.
escalonamento de tarefas, FWI, LSM, work-stealing, centralizado dinâmico, descentralizado estático, descentralizado dinâmico, computação de alto desempenho, MPI.
A organização das tarefas entre os nós computacionais impacta diretamente no desempenho da aplicação. Considerando aplicações computacionalmente caras como os problemas geofísicos o impacto é mais significante. O desbalancemanto causado por um escalonamento ineficiente das tarefas pode tornar a aplicação não escalavel. Sendo assim esse trabalho investiga o escalonamento de tarefas em métodos geofísicos.
Esse trabalho compara três tipos de escalonadores: centralizado dinâmico (CD), descentralizado estático (DS, do inglês Decentralized Static), descentralizado dinâmico (DD). O CD foi implementado através da técnica mestre-escravo o qual possui um nó mestre responsável pela distribuição das tarefas entre os outros nós chamados de escravos. O DS é a divisão igualitária da quantidade de tarefas entre os nós. O DD utilizado implementa o método work-stealing proposto por Assis et al. 2019, o qual o nó ocioso rouba a tarefa de um nó sobrecarregado.
O principal método geofísico utilizado foi a inversão completa da forma de onda (FWI, do inglês Full Waveform Inversion) 2D com a onda acústica. Para analisar a desempenho dos escalonadores de tarefas foram gerados gráficos de speedup, eficiência e distribuição das tarefas entre os nós. O tamanho do problema foi definido a partir de modelos de velocidades sintéticos de diferentes tamanhos executados para diferentes quantidades de nós. O código do FWI e do escalonadores foram implementados em C em memória distribuída usando a biblioteca MPI.
A partir dos resultados do FWI, foi aplicado o work-stealing (por ter apresentado comportamento mais eficiente) em outro problema geofisico: a migração por mínimos quadrados (LSM, do inglês Least Square Migration). Para comparar a implemetação LSM com work-stealing usamos o LSM com DS proposto por Chauris et al. 2017. O código do LSM e DS utilizado neste problema foram implementados em Fortran e o work-stealing em C. A comunicação entre os nós foi implementado usando MPI. Para analisar a desempenho do escalonador em LSM, usamos modelo de velocidades marmousi.