The CMU 15-418/618 Parallelism Competition gives students the opportunity to win fame, glory, and excellent prizes! It also provides students the chance to perform extended investigations of a parallel programming program or a parallel system design problem of their choosing.
Watch the finalist presentations here!
Parallelism Competition Winners
- 1st place: Espresso: A minimal high performance parallel neural network framework running on iOS by Zhihao Li and Zhenrui Zhang
- 2nd place: Bitwise Neural Networks on FPGA: High-Speed and Low-Power by Yunfan Ye and Yayun Huang
- 3rd place: OmegaGo: Elastic, Highly Distributed Go AI Tournaments by Rachel Kositsky and Joe Doyle
- 4th place: Athelas: A Parallel Random Graph Generation Library by Eshan Verma and Karandeep Johar
- 5th place: Distributed GPU Ray Tracing by Ye Yuan and Ken Ling
- 6th place: ParaCuckooHash: Concurrent, In-Memory Key-Value Store by Benson Qiu and Tommy Hung
- 7th place: PiMD: Pi (Instruction) Multiple Data by Patrick Koenig and Nathaniel Horan
Full Project List
Systems and Frameworks
- Adaptive Lock by Nat Jeffries and Madhav Ieyngar
- Helmet: GPU Programming Framework for Swift by Yan Shen
- ParaPy by Ram Verma and Arulnithi Sundaramoorthy
- Raspberry Pi Hotpot by Chi Chen and Junhong Li
- Domain Specific Language for Scheduling of Task-Parallel Programs by Oliver Daids
- Multicore Real-Time Kernel by Robert Dioso
- Improving the Performance of Sequential Programs with Multithreaded Data Structure by Aaron Anderson and Justus Hibshman
- FastAndroid by Xiaoguang Zhu and Chaoya Li
- vecAndroid by Jiachen Song and Yongshan Ding
- PiMD: Pi (Instruction) Multiple Data by Patrick Koenig and Nathaniel Horan
- Parallel ROP Attack Generator and Non-Direct Assembler (PROPAGANDA) by Christine Lee and Benjamin Spinelli
- Make Parallelism Great Again! by Andrew Zadravec
- Gregor: A Worker-Pool based Multithreaded Programming Framework by Zhan Chen and Lehao Sun
- Elastic Webserver on AWS by Rajul Bhatnagar
Tools and Performance Analysis
- Cache Coherence Simulator using Contech by Rachel B. Yanovsky and Ashwin Raghavachari
- PolyCache: A Cache Simulator Based on Contech by Yicheng Fang and Shiyao Qu
- JCoz: Causal Java Profiler by Matthew Perron and David Vernet
- Hardware Performance Measurement of Several HashMap Implementations in Golang by Hechao Li and Ahmet Emre Unal
Transactional Memory
- Hardware Transactional Memory with Intel's TSX by Mario Dehesa-Azuara and Nick Stanley
- Software Transactional Memory implementation for Rust by Xue An Chuang and Vincent Jiahao Huang
Hashtables and Key-Value Stores
- HH Hash: A Distributed Hash Table by Norman Ponte Yiming Zong
- Parallel Hash Tables by Manu Garg and Andrew Butko
- ParaCuckooHash: Concurrent, In-Memory Key-Value Store by Benson Qiu and Tommy Hung
- Parallel Distributed Key-Value Store by Anish Jain and Subodh Asthana
- ParaStore: Parallel Key Value Store Using Lock-free Skip List by Christtia Zheng and Aryeh Alexander
- FreeTables by Mark Fernandez and Paul Chun
- Watermelon by Matthew Du
FPGA Implementations
- FPGA Implementation of Bitwise Neural Networks by Trace Russell
- FPGA-Trace: An FPGA-Accelerated Ray Tracer by Justin Gallagher
- FPGA-Based Feature Tracker Accelerator by Brandon Perez
- Bitwise Neural Networks on FPGA: High-Speed and Low-Power by Yunfan Ye and Yayun Huang
Deep Nets and Machine Learning
- ParaRec - a Parallel Recommendation System by Kai Kang and Jianfei Liu
- cuGP: GPU Accelerated Gaussian Process Regression by Abhishek Joshi and Siddharth Goyal
- Parallelizing Neural Network Training for Stock Prediction by Xiaotian Cao
- Performance Optimization of LSTM Training on the GPU by Haibin Lin and Yiming Wu
- Latte: Fully Convolutional Networks in Halide by Anbang Hu and Xingda Zhai
- Espresso: A minimal high performance parallel neural network framework running on iOS by Zhihao Li and Zhenrui Zhang
- Fast CNN Library on CPU by Yuxin Wu and Di Xiao
- H-Piper: A Deep Learning Framework in Halide by Lei Sun and Yang Wu
- Halstm: Halide LSTM by Longqi Cai and Xiaotong Sun
- Bromide -- A Deep Learning Framework In Halide by Xian Zhang and Ruizhou Ding
- ParallelRNN by Esha Uboweja and Bojian Han
Numerical Linear Algebra
- Parallel Linear Solver using PCG by Bo Feng and Han Li
Graphics and Simulation
- GPU Accelerated RayTracing for VR by Chris Kaffine and Zach Shearer
- Parallel Mesh downsampling by Aaron Perley and Siddhant Madhuk
- Parallel BVH Building for Raytracing by Teguh Hofstee
- Distributed GPU Ray Tracing by Ye Yuan and Ken Ling
- Packet Based Ray Tracer by Riya Savla
- DRacuda: A Cloud-Based CUDA Ray Tracer by Muhammad Hilman Beyri and Zixu Ding
- Distributed SPH Simulation and Rendering by Che-Yuan Liang and Yu Mao
- CUDA Accelerated Computational Fluid Simulation by Abhishek Yadav and Preetam Amancharla
- Parallelizing an N-Body-like simulation using CUDA by Wen Jay Tan and Frances Tso
- Parallel Cloud Simulation Based on Cellular Automata by Daniel Hua
- Parallelizing the Heat Method by Ahadu B Yeheyis and Francisco Wardcantori
- Parallel Implementation of Geodesics in Heat Algorithm for Point Clouds by Se Yeong Byeon
- Geodesics in Heat by Shuang Su
- SalsaSurface by Kim Lister and Alex Shoup
Computer Vision
- Kinect-free: Real-time Convolutional Pose Machines by Shih-En Wei
- Fast Multiview Geometry Map Reconstruction Using Parallel Techniques by Trevor Decker
- Parallel Computer Vision Library by Siddhant Wadhwa and Druhin Sagar Goel
Image Processing
- Parallel Image Quilting by Randy Zhao and JJ Zhang
- ParaBurst: Detecting and Creating Best Images from a Burst by Tanay Varma and Mohak Nahta
- Parallel Fractal Image Compression by Clayton Ritcher and Nora Shoemaker
- CUDA Seam Carving by Mopewa Ogundipe
- Parallel Seam Carving Approximation by Tim Brooks and Suhaas Reddy
Games
- ParaGo by Neha Repal and Sakshi Goel
- Parallelized Monte Carlo Tree Search for Go by Qiankun Zhuang and Yepeng Yin
- Parallel Shakashaka Solver by Vui Chee Siew and Takumi Fujimoto
- Parallel Othello Artificial Intellgence by Rohan Varma and Kiran Pandit
- Parallel Sudoku Solver by Natasha Vasthare
- OmegaGo: Elastic, Highly Distributed Go AI Tournaments by Rachel Kositsky and Joe Doyle
- SudokuMP by Benjamin Debebe and Ariel Tian
- M-Pathery by Patrick Xia
Binary Decision Diagrams (BDD's)
- Parallel BDDs by Evan Bergeron and Kevin Zheng
- Parallel BDDs for Efficient Model Checking by Chris Ying and Matthew Bryant
- Binary Decision Diagram Package with a Lock-free Hash Table by Andrew Feng and Justin Lee
More Fun Parallel Algorithms
- ParSAT: A Parallel SAT Solver by Eileen Jiang and Ashley Lai
- Distributed Suffix Array Construction on Heterogeneous Architectures by Sunny Nahar and Tom Tseng
- Parallelized Bitcoin Trading Algorithm by Thomas Mayo-Smith
- Kazam: Parallel Audio Recognition by Casey Fischer and Udaya Malik
- Palm Tree: Lock Free B+Tree by Ran Xian and Runshen Zhu
- Spectral Sparsification With Parallel Spanner Construction by Jack Montgomery
- Attitude Determination by Star-tracking by Anthony Ko and Omar El-Sadany
- Parallelizing Boruvka's Algorithm by Kathleen Fuh and Shreya Vemuri
- Real-time Spike Sorting for Multielectrode Arrays by William Croughan and Arumugam Arumugam
- GPU accelerated AES by Andrew Pratt
- Parallel DFA Minimization by Rahul Manne
- Optimal from an Electron's Reference Frame: Energy Minimizing Binding Configurations by Jocelyn Sunseri
- Parallel Bond Order Assignment by Kevin Shi and Patrick Nguyen
- Chemposer by Narain Krishnamurthy and Sharangdhar Chakraborty
- Athelas: A Parallel Random Graph Generation Library by Eshan Verma and Karandeep Johar
Support and Contributions
The 2015 15-418/618 parallelism competition was made more fun thanks to prizes donated by NVIDIA, Intel, Google, Hudson River Trading, Splice Machine, and Uber ATC.