Project 1: N Body Simulation
Overview
This project focuses on developing an efficient and accurate N-body simulation system using high-performance computing techniques. The N-body problem is crucial in fields like astrophysics, cosmology, and aerodynamics, involving the simulation of the motion of a system of particles under the influence of gravitational forces.
Key Objectives
- Algorithm Development: Create an N-body simulation algorithm that can be parallelized efficiently.
- Optimization: Reduce communication overhead and load balancing issues in the parallelization process.
- High-Performance Implementation: Implement the simulation on a high-performance computing architecture to handle large-scale systems.
- Scalability: Investigate and ensure the scalability of the developed algorithm.
Methodology
- Cell Lists Algorithm: Utilizes a grid of cells to reduce computational complexity by focusing on local interactions.
- Leapfrog Time Integration: Ensures accurate propagation of particle positions and velocities.
- Parallelization Techniques: Combines OpenMP for parallel processing within nodes and MPI for communication between nodes.
- Performance Analysis: Conducts roofline and scaling analyses to evaluate the efficiency and scalability of the algorithm.
Findings
- Efficiency Gains: The parallelized algorithm demonstrates significant improvements in computation time.
- Scalability: The algorithm scales well with the number of processors, though efficiency decreases with increased communication overhead.
Conclusion
The project successfully develops a highly scalable and efficient N-body simulation system, advancing the computational techniques available for simulating large-scale particle interactions.
Repository and Resources
To read the full analysis, you can download the PDF file.