Tratamento Flexível e Eficiente da Migração de Objetos Java em Aplicações Bulk Synchronous Parallel
Arquivos
Data de defesa
Autor(a)
Orientador(a)
Título do periódico
ISSN
Título do volume
Nome da instituição
Departamento
Programa
Agência de fomento
Migração de processos é um pertinente mecanismo para oferecer balanceamento dinâmico de carga, principalmente em ambientes dinâmicos e heterogêneos. Em especial, esse tópico é importante para aplicações BSP (Bulk Synchronous Parallel) uma vez que elas compreendem execuções em fases, onde o tempo de cada superetapa é determinado pelo processo mais lento. Nesse contexto, esse trabalho apresenta o sistema jMigBSP. Ele permite a escrita de aplicações BSP em Java e seu diferencial diz respeito às facilidades de reescalonamento de objetos em duas maneiras: (i) usando diretivas de migração no código da aplicação e; (ii) através do balanceamento de carga automático em nível de middleware. Além das abordagens de reescalonamento, jMigBSP facilita a interação entre os objetos através de métodos para comunicação assíncrona e one-sided. O desenvolvimento de jMigBSP foi guiado pelas ideias de eficiência e flexibilidade. Em primeiro lugar, a eficiência é marcada pela preocupação com o seu desempenho se comparado com linguagens compiladas, bem como no próprio algoritmo de reescalonamento. Além disso, a flexibilidade está presente no tratamento do reescalonamento automático de objetos. A avaliação de jMigBSP compreendeu o desenvolvimento e a execução de duas aplicações BSP em um ambiente multicluster: (i) transformada rápida de Fourier e; (ii) compressão de imagens. Duas heurísticas para a seleção dos objetos candidatos à migração foram aplicadas na avaliação. A primeira seleciona um objeto BSP com o maior valor de PM (Potencial de Migração). A segunda escolhe uma percentagem de objetos baseado no maior PM. Os resultados mostram que jMigBSP oferece a oportunidade de ganhos de desempenho sem alterações no código da aplicação. jMigBSP torna possível ganhos de desempenho na casa de 29%, bem como produz uma baixa sobrecarga quando comparado com uma biblioteca de código nativo. Além disso, uma sobrecarga média de 5,52% foi observada no algoritmo de reescalonamento. Em geral, os resultados obtidos mostram na prática a teoria da migração de processos, onde aplicações computacionalmente intensivas (CPU-bound) são mais beneficiadas com a transferência de entidades (processos, tarefas, objetos etc.) para processadores mais rápidos. Considerando que a seleção de uma percentagem de objetos para migração se mostrou uma heurística eficiente, trabalhos futuros compreendem o desenvolvimento de outras que selecionam uma coleção de objetos sem a necessidade de parâmetros particulares para o reescalonador.
