Particle Movement Simulator

Authors: Amrut Prabhu and Anubhav

This repository includes 3 parallel computing implementations to simulate the movement of circular particles within a 2D square surface for a certain number of time steps. Particles may change their velocities (speed and direction) upon collising with other particles or colliding with the walls of the square.

APIs used for parallel programming on different architectures:

  • OpenMP: Shared Memory Parallel Programming
  • CUDA: GPU Parallel Programming
  • MPI: Distributed Memory Programming

Problem Description and Results

Refer to the following files:

Reports are available for each Parallel program (OpenMP and CUDA) and Distributed Message Passing (OpenMPI) implementation:

Directory Structure

Each of the subdirectories have their own READMEs containing the instructions for compilation and execution. They also contain the same input and expected output files in input/ and output/.