ABSTRACT:Modern computers are heterogeneous parallel computing systems with many CPU and GPU cores. While application developers for these systems are reporting 10X-100X speedup over sequential code on traditional microprocessors, the current practice of many-core programming based on OpenCL CUDA and OpenMP puts a strain on software development, testing, and support teams. According to the semiconductor industry roadmap, these processors could scale up to over 1,000X speedup over single cores by 2016, which will motivate an increasing number of developers to parallelize their applications. Today, application programmers have to understand the desirable parallel programming idioms, manually work around potential hardware performance pitfalls, and restructure their application design in order to achieve their performance objectives on many-core processors. In this presentation, I will discuss why advanced compiler functionalities have not found traction with the developer communities, what the industry is doing today to try to address the challenges, and how the academic community can contribute to this exciting revolution.