This project explores the N-Body problem, a classic issue in various scientific and engineering disciplines, including physics, proteomics, and machine learning. Due to the lack of an analytical solution, the N-Body problem is approached through numerical methods and simulations to estimate the movements of bodies influenced by gravitational forces.
The main objective of this project is to implement and compare different strategies for N-Body simulations using Euler's method. This includes sequential and concurrent calculations on CPU, and parallel computations on GPU.
- Sequential CPU Implementation: Utilizes a straightforward approach to simulate body interactions.
- Concurrent CPU Implementation: Attempts to leverage multiple CPU cores despite Python’s GIL limitations.
- GPU Parallel Implementation: Employs CUDA to harness the computational power of modern GPUs for efficient simulations.
Clone the repository to your local machine:
git clone https://github.com/MarioPasc/N-Body-Simulation-Python.git
cd n-body-simulation-python
Install the required Python packages:
pip install -r requirements.txt
Contributions to this project are welcome. Here are some ways you can contribute:
- Reporting bugs
- Suggesting enhancements
- Adding new features
- Improving documentation
Please fork the repository and use a feature branch. Pull requests are warmly welcome.
This project is licensed under the MIT License - see the LICENSE.md file for details.
For any queries, please reach out to my LinkedIn.