GithubHelp home page GithubHelp logo

generalized_heaps_parallel's Introduction

Generalized Heap Implementation on GPUs

This code is based on the concepts presented in the paper "Accelerating Concurrent Heap on GPUs" by Yanhao Chen et al. Our project aims to optimize heap operations on GPU architectures. The implementation is divided into four distinct strategies, identified as kernels: 0 - Base parallel implementation 1 - Shared memory implementation 2 - Bitonic sort implementation 3 - Early breaking and other optimizations

How to Use

Compilation

Navigate to the directory of the desired kernel and run make.

Execution

Execute the program by running ./main. For Google Colab, execute directly. For HPC environments, refer to the specific documentation to allocate resources.

Validation and Verification

To verify the correctness of our parallel heap implementations, we use a sequential Binary Heap running on the CPU as a reference model. Kernels 2 and 3 have been validated against large input sizes and show correct results. However, some discrepancies are noted for kernels 0 and 1 with large inputs, attributed to the focus on the optimized kernels.

Limitations

The input size for the heap must be a power of 2, necessitated by the Bitonic Sort implementation, which requires the data within each node to align with this constraint.

Thanks and Acknowledgements

Special thanks to Dr. Izzat for his insights on software parallelization techniques and to Dr. Mouawad for his guidance on optimizing data structures for research purposes. Appreciation is also extended to the authors of the referenced paper and to the community whose shared contributions have inspired this project.

generalized_heaps_parallel's People

Contributors

raphaelfakhri avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.