Introduction to Parallel Computing (CMSC 498X/818X)
Projects
The group project should be implemented in C/C++ (or Fortran), and use a
parallel programming model such as MPI, OpenMP, Charm++, CUDA etc. This
project will be done in teams of 3 or 4 people. The final deliverable will be a
report and the code (with a Makefile and clear instructions for running it).
Milestone |
Due on |
Form groups |
September 21 |
Project description |
September 28 |
Interim report |
November 16 |
Project presentations |
December 3-10 |
Final project and report |
December 14 |
Project Ideas
- Parallel Sorting
- Parallel Matrix Multiply
- Parallel Genetic Algorithms for Inverse Boggle Solving
- Parallel Implementation of Sequential Minimal Optimization (SMO) Algorithm and Model Selection for Support Vector Machines
- A Parallel Hybrid Framework for Graph Processing
- Parallel Patch Matching for Image Segmentation
- Parallel Graph-based Semi-supervised Learning
- Load Balancing in Distributed Computing
- Auto-tuning for scalable parallel 3-D FFT
- Parallel implementation of Machine Learning algorithms using Spark/Hadoop
- CPU-GPU Dynamic Approximation for Parallel Applications
- Algebraic Multigrid with OpenMP, OpenACC and MPI
- Developing Parallel Algorithms for Creating and Solving Sudoku Puzzle
- Distributed Learning for Deep Neural Networks
- A High Performance Concurrent Thread-Safe Hash Table
- A Visual Debugging Tool for MPI Programs
- Graph Partitioning using Parallel Clustering for Distributed Databases
- A Study on Memory and Compute Bound Kernels on CPU and GPU Hardware
- Online Auto-Tuning of Collective Communication Operations in MPI
- Parallel Simulation of Information Diffusion on Large Social Network Graphs
Other suggestions
- Application performance studies across one or more parallel machines - e.g. satellite data processing, parallel search, computer vision algorithms, bioinformatics
- Application performance studies on GPUs
- Reproduce results from a paper, extend to current systems - e.g., CPU vs. GPU paper (pick a small number of application kernels)
- Debunking a published paper