In the recent years, high performance computing (HPC) resources has grown up rapidly and diversely. The next generation of HPC platforms is assembled from resources of various types such as multi-core CPUs and GPUs. Thus, the development of a parallel program to fully utilize heterogeneously distributed resources in HPC environment is a challenge. A parallel program should be portable and able to run efficiently on all types of computing resources with the least effort. We combine the advantages of Global Arrays and OpenCL for such the parallel programs. We employ the OpenCL in implementing parallel applications at fine-grain level so that they can execute across heterogeneous platforms. At coarse grain level, we utilize the Global Arrays for efficient data communication between computing resources in terms of virtually shared memory. In addition, we also propose a load balancing technique based on the task pool model for hybrid OpenCL/Global Arrays applications on heterogeneous platforms to improve the performance of the applications.