
Aumentando a Eficiência na Execução de Algoritmos de Grafos em HPC
Author(s) -
Marcelo K. Moori,
Hiago Mayk G. de A. Rocha,
Janaína Schwarzrock,
Arthur F. Lorenzon,
Antonio Carlos Schneider Beck
Publication year - 2021
Language(s) - Portuguese
Resource type - Conference proceedings
DOI - 10.5753/wscad.2021.18518
Subject(s) - computer science , physics , humanities , philosophy
A crescente necessidade de extrair informações de dados massivos - estruturados como grafos - tem impulsionado o desenvolvimento de algoritmos paralelos cada vez mais robustos para este processamento. No entanto, o comportamento voltado à comunicação e a estrutura altamente irregular dos grafos usados cotidianamente são obstáculos para alcançar os mesmos níveis de desempenho e eficiência como os observados em outras aplicações paralelas. Neste artigo, nós mostramos que a escalabilidade de diferentes aplicações de grafos variam de acordo com o algoritmo usado e a sua base de dados e que, em muitos casos, utilizar todos recursos disponíveis (i.e. todos os núcleos do processador para a execução) não é a melhor opção em termos de eficiência. Com base nisso, nós propomos o MultGraph, um framework que permite o processamento simultâneo de vários algoritmos/grafos, distribuindo-os de maneira não uniforme entre os núcleos, ao invés de executá-los serialmente (i.e. um após o outro) com o máximo paralelismo disponível. MultGraph funciona em dois passos: (i) caracterizando os algoritmos/grafos pelos seus níveis de eficiência; (ii) definindo as alocações (agrupamentos de algoritmos e entradas a serem executados concorrentemente), número de threads para cada um deles, e a ordem de execução destes grupos. Resultados experimentais em três processadores multicore (Intel e AMD) mostram que o MultGraph melhora em até 9, 21x e 4, 52x em média o tempo de execução das aplicações em relação à execução padrão de aplicações em sistemas HPC.