John Kloosterman's OpenCL senior project