7 research outputs found
Graph Algorithms on GPUs
This chapter introduces the topic of graph algorithms on GPUs. It starts by presenting and comparing the main important data structures and techniques applied for representing and analysing graphs on GPUs at the state of the art.It then presents the theory and an updated review of the most efficient implementations of graph algorithms for GPUs. In particular, the chapter focuses on graph traversal algorithms (breadth-first search), single-source shortest path(Djikstra, Bellman-Ford, delta stepping, hybrids), and all-pair shortest path (Floyd-Warshall). By the end of the chapter, load balancing and memory access techniques are discussed through an overview of their main issues and management techniques
On Comparative Algorithmic Pathfinding in Complex Networks for Resource-Constrained Software Agents
Software engineering projects that utilize inappropriate pathfinding algorithms carry a
significant risk of poor runtime performance for customers. Using social network theory,
this experimental study examined the impact of algorithms, frameworks, and map
complexity on elapsed time and computer memory consumption. The 1,800 2D map
samples utilized were computer random generated and data were collected and processed
using Python language scripts. Memory consumption and elapsed time results for each of
the 12 experimental treatment groups were compared using factorial MANOVA to
determine the impact of the 3 independent variables on elapsed time and computer
memory consumption. The MANOVA indicated a significant factor interaction between
algorithms, frameworks, and map complexity upon elapsed time and memory
consumption, F(4, 3576) = 94.09, p \u3c .001, h2 = .095. The main effects of algorithms,
F(4, 3576) = 885.68, p \u3c .001, h2 = .498; and frameworks, F(2, 1787) = 720,360.01, p
.001, h2 = .999; and map complexity, F(2, 1787) = 112,736.40, p \u3c .001, h2 = .992, were
also all significant. This study may contribute to positive social change by providing
software engineers writing software for complex networks, such as analyzing terrorist
social networks, with empirical pathfinding algorithm results. This is crucial to enabling
selection of appropriately fast, memory-efficient algorithms that help analysts identify
and apprehend criminal and terrorist suspects in complex networks before the next attack
High-Performance and Power-Aware Graph Processing on GPUs
Graphs are a common representation in many problem domains, including engineering, finance, medicine, and scientific applications. Different problems map to very large graphs, often involving millions of vertices. Even though very efficient sequential implementations of graph algorithms exist, they become impractical when applied on such actual very large graphs. On the other hand, graphics processing units (GPUs) have become widespread architectures as they provide massive parallelism at low cost. Parallel execution on GPUs may achieve speedup up to three orders of magnitude with respect to the sequential counterparts. Nevertheless, accelerating efficient and optimized sequential algorithms and porting (i.e., parallelizing) their implementation to such many-core architectures is a very challenging task. The task is made even harder since energy and power consumption are becoming constraints in addition, or in same case as an alternative, to performance. This work aims at developing a platform that provides (I) a library of parallel, efficient, and tunable implementations of the most important graph algorithms for GPUs, and (II) an advanced profiling model to analyze both performance and power consumption of the algorithm implementations. The platform goal is twofold. Through the library, it aims at saving developing effort in the parallelization task through a primitive-based approach. Through the profiling framework, it aims at customizing such primitives by considering both the architectural details and the target efficiency metrics (i.e., performance or power)