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