1 Introduction  
2 Overview of Parallel Programming Models  
3 Compiling Techniques for Improved Programmability and Portability  
4 Optimization Techniques for Minimizing the Host-Accelerator Communication  
5 A Vision for the Next Decade  
6 Conclusions