Code Monkey home page Code Monkey logo

parallel-and-distributed-computing's Introduction

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

parallel-and-distributed-computing's People

Contributors

siddhantnadkarni avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

arslan-z

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.