Heterogeneous architectures have become mainstream today and are found in a range of systems from mobile devices to supercomputers. However, these architectures with their diverse architectural features pose several programmability challenges including handling data-coherence, managing computation and data communication, and mapping of tasks and data distributions. Consequently, application programmers have to deal with new low-level programming languages that involves non-trivial learning and training. In our poster, we will present two programming models that tackle some of the aforementioned challenges. The first model is the “Concord” programming model which provides a widely used Intel Thread Building Blocks like interface and targets integrated CPU+GPU architectures with non-shared virtual memory. This model also supports a wide set of C++ language features. Concord is now an open source project from Intel. The second model is “Heterogeneous Habanero C (H2C)”, which is an implementation of the Habanero execution model for modern heterogeneous architectures. The novel features of H2C include high-level language constructs that support automatic data layout, task mapping, data distribution and a unified event framework. We will include evaluation for productivity, portability and performance of Concord and H2C on applications including popular oil&gas applications like Lattice Boltzmann Method simulation.