1. A computerized method comprising: receiving, from a host application executing on a host processor, a request to create a compute program corresponding to source code for a task in the host application; creating the compute program for execution on a compute device selected by the host application from one or more compute identifiers received in a request from the host application to identify compute devices that match a processing requirement for the task; receiving, from the host application, a request to create a compute kernel containing executable code for the task; and creating the compute kernel.