[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
research-article

Parallel intersection counting on shared-memory multiprocessors and GPUs

Published: 08 August 2024 Publication History

Abstract

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.

Highlights

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.

References

[1]
Goodman J.E., O’Rourke J., Tóth C.D. (Eds.), Handbook of Discrete and Computational Geometry, third ed., CRC Press, 2018.
[2]
Marzolla M., D’Angelo G., Parallel data distribution management on shared-memory multiprocessors, ACM Trans. Model. Comput. Simul. 30 (1) (2020),.
[3]
Layer R.M., Skadron K., Robins G., Hall I.M., Quinlan A.R., Binary Interval Search: a scalable algorithm for counting interval intersections, Bioinformatics 29 (2013) 1–7,.
[4]
Allen J.F., Maintaining knowledge about temporal intervals, Commun. ACM 26 (11) (1983) 832–843,.
[5]
Six H., Wood D., The rectangle intersection problem revisited, BIT 20 (1980) 426–433,.
[6]
Shamos M.I., Hoey D., Geometric intersection problems, in: 17th Annual Symposium on Foundations of Computer Science, SFCS 1976, 1976, pp. 208–215,.
[7]
Neph S., Kuehn M.S., Reynolds A.P., Haugen E., Thurman R.E., Johnson A.K., Rynes E., Maurano M.T., Vierstra J., Thomas S., Sandstrom R., Humbert R., Stamatoyannopoulos J.A., BEDOPS: high-performance genomic feature operations, Bioinformatics 28 (14) (2012) 1919–1920,.
[8]
Li H., Rong J., Bedtk: finding interval overlap with implicit interval tree, Bioinformatics 37 (9) (2020) 1315–1316,.
[9]
Otlu B., Can T., JOA: Joint overlap analysis of multiple genomic interval sets, BMC Bioinformatics 20 (121) (2019),.
[10]
Mao C., Eran A., Luo Y., Efficient genomic interval queries using augmented range trees, Sci. Rep. 9 (2019),.
[11]
Allen J.F., Maintaining knowledge about temporal intervals, Commun. ACM 26 (11) (1983) 832–843,.
[12]
Blelloch G., Scans as primitive parallel operations, IEEE Trans. Comput. 38 (11) (1989) 1526–1538,.
[13]
Cole R., Parallel merge sort, SIAM J. Comput. 17 (4) (1988) 770–785,.
[14]
Wheat M., Evans D.J., An efficient parallel sorting algorithm for shared memory multiprocessors, Parallel Comput. 18 (1) (1992) 91–102,.
[15]
Tsigas P., Zhang Y., A simple, fast parallel implementation of quicksort and its performance evaluation on SUN enterprise 10000, in: 11th Euromicro Workshop on Parallel, Distributed and Network-Based Processing (PDP 2003), 5-7 February 2003, Genova, Italy, IEEE Computer Society, 2003, p. 372,.
[16]
Wyllie J.C., The Complexity of Parallel Computations, (Ph.D. thesis) Cornell University, USA, 1979, URL https://hdl.handle.net/1813/7502. AAI8004008.
[17]
Bell N., Hoberock J., Chapter 26 - Thrust: A productivity-oriented library for CUDA, in: mei W. Hwu W. (Ed.), GPU Computing Gems Jade Edition, in: Applications of GPU Computing Series, Morgan Kaufmann, Boston, 2012, pp. 359–371,.
[18]
Dagum L., Menon R., OpenMP: An industry-standard API for shared-memory programming, IEEE Comput. Sci. Eng. 5 (1998) 46–55,.
[19]
NVidia CUDA home page, 2022, URL https://developer.nvidia.com/cuda-zone. (Accessed 02 October 2022).
[20]
Marr D.T., Binns F., Hill D.L., Hinton G., Koufaty D.A., Miller A.J., Upton M., Hyper-threading technology architecture and microarchitecture, Intel Technol. J. 6 (1) (2002).
[21]
Amdahl G.M., Validity of the single processor approach to achieving large scale computing capabilities, in: Proceedings of the April 18-20, 1967, Spring Joint Computer Conference, in: AFIPS ’67 (Spring), Association for Computing Machinery, New York, NY, USA, 1967, pp. 483–485,.
[22]
Williams S., Waterman A., Patterson D., Roofline: an insightful visual performance model for multicore architectures, Commun. ACM 52 (4) (2009) 65–76,.
[23]
Programming languages – technical specification for C++ extensions for parallelism, 2015, ISO/IEC TS 19570:2015.
[24]
The 1000 Genomes Project Consortium S., A global reference for human genetic variation, Nature 526 (7571) (2015) 68–74,.

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image Future Generation Computer Systems
Future Generation Computer Systems  Volume 159, Issue C
Oct 2024
580 pages

Publisher

Elsevier Science Publishers B. V.

Netherlands

Publication History

Published: 08 August 2024

Author Tags

  1. Intersection counting
  2. Parallel algorithms
  3. GPU programming
  4. Shared-memory algorithm
  5. Bioinformatics

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • 0
    Total Citations
  • 0
    Total Downloads
  • Downloads (Last 12 months)0
  • Downloads (Last 6 weeks)0
Reflects downloads up to 05 Jan 2025

Other Metrics

Citations

View Options

View options

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media