An OpenMP-based Breadth-First Search Implementation Using the Bag Data Structure
Concurrency and computation(2024)
摘要
The breadth-first search procedure is an algorithm that traverses the vertices of a graph, determining the distance from each vertex to the initial vertex. The distance is infinite for a non-reachable vertex from the starting vertex. Despite having an efficient serial version, this important algorithm is irregular, making its effective parallel implementation a daunting task. This paper shows the results of an OpenMP-based implementation of the breadth-first search procedure using the bag data structure. Furthermore, the code relied on the C++ programming language. This paper reimplements an existing proposal coded using the Cilk++ programming language. The experiments relied on 32 strongly connected graphs and 31 disconnected graphs in executions performed on two machines. The first machine contained 28 cores and two threads per core. The second machine comprised 48 processing cores, with hyperthreading disabled. Regarding the serial version, the parallel implementation yielded a speedup of up to 20x when using 28 processing cores and up to 25x when using 56 threads in tests performed on a machine with the first generation of Intel (R) Xeon (R) Scalable processors. Furthermore, the new parallel implementation yielded speedups of up to 45x when using 48 cores in experiments performed on a machine with the second generation of Intel (R) Xeon (R) Scalable processors.
更多查看译文
关键词
graph algorithms,high-performance computing,OpenMP,parallel algorithms,Parallel breadth-first search,parallel computing
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要