Evaluating OpenCL, OpenMP, MPI and CUDA for Embedded Systems
摘要
This paper provides an evaluation of OpenCL, OpenMP, MPI and CUDA for boosting productivity of Embedded Systems. OpenCL, OpenMP and MPI have been developed for taking advantage of CPUs while CUDA is dedicated to GPUs. MPI has been developed for the distributed memory model enabling inter process communication where every processor has its private memory, while OpenCL, CUDA and OpenMP are dedicated for the shared memory model where the data is accessible to all the processors available. However, OpenCL enables cross-platform parallel computing, making it adaptable for heterogeneous platforms including both CPUs and GPUs as well as other classes of processors, for instance DSPs and FPGAs. This paper analyzes the features, advantages, and disadvantages of OpenCL, OpenMP, MPI, and CUDA, especially their usage in embedded systems. Taking this approach to these parallelization techniques will help developers how they can enhance embedded system computational tasks with regard to the performance to complete tasks in shorter time.