Skip to content

Latest commit

 

History

History
129 lines (79 loc) · 4.13 KB

File metadata and controls

129 lines (79 loc) · 4.13 KB

Parallel and Distributed Computing

Course Website

This repositary contains programming assignments completed as a part of the course EE 451 - Parallel and Distributed computing under Prof. Viktor Prasanna in Fall 2019, USC.

Getting Started

Implementation of different programming models - PRAM, Shared memory, Message Passing for different algorithms

  • PHW1 - Basic Naive Matrix, BlocK Matrix and KMeans Clustering Implementation

Brief Overview: This homework contains non-parallelized implementations of Naive Matrix Multiplication, Block Matrix Multiplication and K-Means clustering of grayscale intensities in an Image.

Problem Statement: Programming Homework #1
Report: Report on Programming Homework #1

  • Q1 a,b - Comparision of Matrix Multiplications type (Naive vs Block) in terms of time taken (s) and performance (MFLOPs)
    Fig1
    Fig2

  • Q2 - K Means Clustering of grayscale Intensities in an Image
    Screen Shot 2019-09-13 at 10 30 41 PM


  • PHW2 - Parallelized Naive Matrix and Parallelized K-Means Clustering Implementation [PThread Shared Programming Models]

Brief Overview: This homework contains parallelized implementation of Naive Matrix Multiplication and parallelized K-Means Clustering implemented in PHW1. Model used: Shared programming model. Library: Posix Threads.

Problem Statement: Programming Homework #2
Report: Report on Programming Homework #2

  • Q1 Naive Matrix Parallelization
    Fig1

  • Q1 Parallelized K-Means Clustering of grayscale Intensities in an Image
    Screen Shot 2019-10-14 at 12 12 54 PM

Details will be added.

  • PHW3 - [OpenMP]

  • PHW4 - [Message Passing Interface (MPI)]

Prerequisites

All Homeworks are written in C++11, compiler used: g++ (latest version)
Boost C++ library version 1.70.0

Directory Layout

├── Homework_PDFs
│   ├── EE 451 F 2019 PHW 1.pdf
│   └── EE_451_F_2019_HW_2.pdf
├── Input
│   └── input.raw
├── Plots
│   ├── Figure_1.png
│   ├── Figure_2.png   
│   └── plotGraph.py
├── Reports
│   ├── report.pdf  
│   └── report.docx
├── src
│   ├── HW_1  
│   └── HW_2
├── License
├── Makefile
└── README.md

Building

Git clone the repositary and run the makefile.

git clone https://github.com/SiddhantNadkarni/Parallel-and-Distributed-Computing.git
cd src/PHW_<homework number>
make

Running the tests

For PHW1: 
./p1a
./p1b <block_Size>
./p2 <path to input image>

For PHW2:

Authors

  • Siddhant Nadkarni

License

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

Acknowledgments