This session will introduce a high-level directive-based parallel programming model, OpenACC, which can target multicore platforms and accelerators such as GPUs. You will take away the tools and techniques one can use to program using OpenACC. You will also learn about the opportunities and the challenges that the scientific developers face while migrating their legacy scientific code to complex heterogeneous computing systems. With a goal to do more science and less programming, we will discuss some of the best programming practices - the do’s and don’ts.