1. An OpenMP‐based breadth‐first search implementation using the bag data structure.
- Author
-
Gonzaga de Oliveira, S. L., Santana, M. I., Brandão, D. N., and Osthoff, C.
- Subjects
PARALLEL algorithms ,C++ ,DATA structures ,PROGRAMMING languages ,GRAPH connectivity - Abstract
Summary: 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 20× when using 28 processing cores and up to 25× when using 56 threads in tests performed on a machine with the first generation of Intel® Xeon® Scalable processors. Furthermore, the new parallel implementation yielded speedups of up to 45× when using 48 cores in experiments performed on a machine with the second generation of Intel® Xeon® Scalable processors. [ABSTRACT FROM AUTHOR]
- Published
- 2024
- Full Text
- View/download PDF