1. A parallel computing system comprising: a host processor executing a parallel computing program comprising a platform layer and a runtime layer; a plurality of parallel processors coupled to the host processor and comprising at least one graphics processing unit (GPU) and at least one central processing unit (CPU); and a memory coupled to the host processor, the parallel computing program being stored in the memory to provide a platform interface and a runtime interface for the parallel computing program to an application executing on the host processor, wherein the platform interface is called by the application to request the platform layer evaluate processing capabilities of the parallel processors to identify one or more parallel processors that match a processing requirement for a task in the application, and request creation by the platform layer of a context for either the CPU or the GPU corresponding to a compute identifier selected by the application from compute identifiers for the identified parallel processors, and wherein the runtime interface is called by the application to request creation by the runtime layer of a kernel to execute the task on the selected parallel processor, and request execution of the kernel on the selected parallel processor.