NTU Parallel & Distributed Programming 2014 Spring Final Project