Skip to content

Latest commit

 

History

History
83 lines (58 loc) · 2.8 KB

README.md

File metadata and controls

83 lines (58 loc) · 2.8 KB

N-Body Simulation Project

Table of Contents

Overview

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.

Features

  • 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.

Installation

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

Results

Overall Complexity

Overall

GPU Complexity

Overall

Simulation Examples

Stable 2 Body System

Overall

3 Body System

Overall

Lagrange Points

Overall

Contributing

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.

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Contact

For any queries, please reach out to my LinkedIn.