An investigation of possible ways of improving the performance of an O(n^2) n-body simulation. Techniques implemented:
- GPGPU parallelisation with CUDA
- Distributed parallelisation with MPI
- Multithreaded parallelisation with OpenMP
- SFML (included as a submodule)
- OpenMP (supported by most c++ compilers)
- MPI (Windows, on Linux use OpenMPI/mpich)
- Cuda (v.10)
- Clone this repo.
- In a terminal run
git submodule update --init --recursive - Use CMake to generate a solution or makefiles, e.g.
cmake -G "Visual Studio 15/Unix Makefiles/etc." - Compile from within your IDE of choice or via a terminal using
make