OpenACC: Directives for GPUs  NVIDIA has made a lot of progress
with CUDA over the past five years; we estimate that there are
over 150,000 CUDA developers, and important science is being
accomplished with the help of CUDA. But we have a long way to go
to help everyone benefit from GPU computing. There are many
programmers who can’t afford the time to learn and apply a
parallel programming language. Others, many of them scientists
and engineers working with huge existing code bases, can only
make changes to their code that are portable across hardware and
OS, and that benefit performance on multiple platforms.  This
class of developers needs a higher-level approach to GPU
acceleration. They need something that is easy, powerful,
portable, and open. This is the motivation behind OpenACC, an
open standard defining a collection of compiler directives that
specify loops and regions of code in standard C, C++, and
Fortran to be offloaded from a host CPU to an attached parallel
accelerator, such as an NVIDIA GPU. D