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.
The growing need for extracting information from large graphs has been pushing the development of parallel graph algorithms. However, the highly irregular structure of the real-world graphs limits the performance and energy improvements of graph applications. In this paper, we show that, in most cases, using all the available cores of the multiprocessor is not the best option in terms of the aforementioned non-functional requirements. Based on that, we propose GraphKat, a framework that enables the simultaneous processing of several algorithms/graphs instead of executing them serially (i.e., one after another), increasing efficiency in terms of performance and energy.GraphKat works in two steps: (i) it characterizes the graph applications with a specific number of threads based on their efficiency levels; and (ii) it defines the execution order of all graph applications in the target system. Experimental results on three multicore processors (Intel and AMD) show that GraphKat improves the overall system's efficiency related to performance (up to 434.26×) and energy-saving (up to 245.21×), and reduces the graph applications' execution time (up to 17.70×) and energy consumption (up to 6.64×) compared to the default execution of parallel applications on HPC systems.
Apesar dos avanços nas GPUs modernas ter acelerado a execução de aplicações que processam grandes quantidades de dados, acelerar o processamento de grafos nesses sistemas não é uma tarefa trivial: aplicações de grafos são caracterizadas por alto volume de acesso irregular à memória e que varia com a estrutura dos grafos, fazendo com que muitas vezes elas não alcancem seus picos de performance quando executadas em GPUs. Nesses casos, a execução em CPU é mais adequada. Felizmente, as estruturas dos grafos podem ser identificadas por meio de métricas de alto nível (e.g., diâmetro e coeficiente médio de clusterização), e elas podem auxiliar o projetista na tomada de decisão de onde executar a aplicação, se em GPU ou em CPU. Neste trabalho, nós propomos uma metodologia que usa essas características de alto nível em uma Regressão Linear para auxiliar na tomada de decisão de onde processar os grafos, em GPU ou CPU. Assim, sempre que um novo grafo precisar ser processado, a decisão de onde processá-lo será tomada com base nessas métricas, evitando qualquer execução adicional dos algoritmos de grafos. Nosso resultados experimentais, considerando 1 GPU e 2 CPUs, mostram que as métricas mais relevantes dos grafos variam conforme os algoritmo e as máquinas onde esses grafos serão executados. Nossa proposta apresentou uma acurácia média de 85% quando aplicado uma Regressão Linear com as características mais relevantes.
scite is a Brooklyn-based organization that helps researchers better discover and understand research articles through Smart Citations–citations that display the context of the citation and describe whether the article provides supporting or contrasting evidence. scite is used by students and researchers from around the world and is funded in part by the National Science Foundation and the National Institute on Drug Abuse of the National Institutes of Health.
customersupport@researchsolutions.com
10624 S. Eastern Ave., Ste. A-614
Henderson, NV 89052, USA
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
Copyright © 2025 scite LLC. All rights reserved.
Made with 💙 for researchers
Part of the Research Solutions Family.