Introduction

  1. What is an Accelerator in OpenMP?
  2. OpenMP Accelerator is introduced in OpenMP 4.0 that makes a user able to offload execution of a code in a target device. The host device is the device on which the OpenMP programs begin execution, and the target device is the device that some regions of code can be offloaded to. The accelerator could be either a NVIDIA GPU or Intel Xeon Phi processor.

  3. what are the goals of having Accelerator in OpenMP?
  4. There are other ways to execute codes on accelerators, which mostly demand users to rewrite the code in low-level programming languages like CUDA. These ways are more challenging to develop and extend. Having accelerator in OpenMP helps users to change the original source code easily in OpenMP and make it executable in the target devices. Accelerator in OpenMP is not specifically for GPU, users can run the same code on Many core CPU or GPU devices with small changes. It is worth using OpenMP Accelerator for portability and sustainability. However, depend on the applications performance might be sacrificed.