Skip to content

Repository containing my final project for the course MATH-454 : Parallel and high-performance computing. This project was about implementing a parallel version of the Barnes-Hut approximation to solve the N-Body problem. The parallel code was implemented using the CUDA platform.

License

Notifications You must be signed in to change notification settings

AntoineWeber/Project_HPC

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

92 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Final Project, MATH-454, Parallel and high-performance computing

Author : Antoine Weber

The goal of this project was to solve the N-Body problem with the Barnes-Hut algorithm on the GPU using the CUDA platform.

Different milestones were performed before trying the actual resolution of the NBody problem using the Barnes-Hut approximation and the CUDA platform.

The parallelization of the Barnes-Hut on the CUDA platform was successfully implemented inducing a linear scaling w.r.t the number of spawned threads. However, the quadtree building was not implemented in a cuda kernel as it was observed that, with the used and designed data structure, the parallelization of the quadtree building would not be worth it in terms of time of work / reward in speedup ratio.

Compilation

For the brute force, a Makefile is furnished for both local compilation and remote using the EPFL DENEB cluster. You may have to fine tune the path to cuda and nvcc within the Makefile_local if compiling for local use.

make -f Makefile_local clean
make -f Makefile_local

For the sequential code for barnes-hut, a simple CmakeLists.txt is furnished.

cmake .
make

Finally for the Barnes-Hut in CUDA, the same procedure than with the brute force method can be applied.

About

Repository containing my final project for the course MATH-454 : Parallel and high-performance computing. This project was about implementing a parallel version of the Barnes-Hut approximation to solve the N-Body problem. The parallel code was implemented using the CUDA platform.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published