Workload scheduling analysis in geophysical numerical methods - Santana, Carla dos Santos (2020)
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 antes do início da execução delas. O DD utilizado implementa o método work-stealing proposto por Assis et al. (2019), 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 o 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 and Cocher (2017). O código do LSM e DS utilizado neste problema foram implementados em Fortran e o workstealing 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.