Undergraduate Honour's Project (Winter 2019) Title: A Comparison of OpenCL, OpenMP, and CUDA on Heterogenous Systems