  Emerging processor architectures such as GPUs and Intel MICs provide a huge
performance potential for high performance computing. However developing
software using these hardware accelerators introduces additional challenges for
the developer such as exposing additional parallelism, dealing with different
hardware designs and using multiple development frameworks in order to use
devices from different vendors. The Dynamic Kernel Scheduler (DKS) is being
developed in order to provide a software layer between host application and
different hardware accelerators. DKS handles the communication between the host
and device, schedules task execution, and provides a library of built-in
algorithms. Algorithms available in the DKS library will be written in CUDA,
OpenCL and OpenMP. Depending on the available hardware, the DKS can select the
appropriate implementation of the algorithm. The first DKS version was created
using CUDA for the Nvidia GPUs and OpenMP for Intel MIC. DKS was further
integrated in OPAL (Object-oriented Parallel Accelerator Library) to speed up a
parallel FFT based Poisson solver and Monte Carlo simulations for particle
matter interaction used for proton therapy degrader modeling. DKS was also used
together with Minuit2 for parameter fitting, where $\chi^2$ and
$max-log-likelihood$ functions were offloaded to the hardwareaccelerator. The
concepts of the DKS, first results together with plans for the future will be
shown in this paper.
