Parallel intersection counting on shared-memory multiprocessors and GPUs

Computing intersections among sets of one-dimensional intervals is an ubiquitous problem in computational geometry with important applications in bioinformatics, where the size of typical inputs is large and it is therefore important to use efficient algorithms. In this paper we propose a parallel a...

Celý popis

Uloženo v:
Podrobná bibliografie
Vydáno v:Future generation computer systems Ročník 159; s. 423 - 431
Hlavní autoři: Marzolla, Moreno, Birolo, Giovanni, D’Angelo, Gabriele, Fariselli, Piero
Médium: Journal Article
Jazyk:angličtina
Vydáno: Elsevier B.V 01.10.2024
Témata:
ISSN:0167-739X, 1872-7115
On-line přístup:Získat plný text
Tagy: Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
Popis
Shrnutí:Computing intersections among sets of one-dimensional intervals is an ubiquitous problem in computational geometry with important applications in bioinformatics, where the size of typical inputs is large and it is therefore important to use efficient algorithms. In this paper we propose a parallel algorithm for the 1D intersection-counting problem, that is, the problem of counting the number of intersections between each interval in a given set A and every interval in a set B. Our algorithm is suitable for shared-memory architectures (e.g., multicore CPUs) and GPUs. The algorithm is work-efficient because it performs the same amount of work as the best serial algorithm for this kind of problem. Our algorithm has been implemented in C++ using the Thrust parallel algorithms library, enabling the generation of optimized programs for multicore CPUs and GPUs from the same source code. The performance of our algorithm is evaluated on synthetic and real datasets, showing good scalability on different generations of hardware. •Computing intersections among sets of one-dimensional intervals is required in many applications.•We describe a parallel algorithm for counting intersections among sets of one-dimensional intervals.•Our algorithm is suitable for multicore CPUs and GPUs.•Performance evaluation with real and synthetic datasets shows very good scalability.
ISSN:0167-739X
1872-7115
DOI:10.1016/j.future.2024.05.039