1. A method of executing compute kernels, comprising: comparing a kernel profile of a compute kernel to respective processor profiles of a plurality of processors in a heterogeneous computer system; determining a quantity of workgroups to schedule for execution at a time, wherein the determining is based upon current monitored workloads in the plurality of processors compared to a workload threshold and historical information, the historical information including at least one of execution times and processor utilization for each of the workgroups on processors of a first type and of a second type in the plurality of processors, and wherein each of the workgroups comprises multiple instances of an associated compute kernel configured to execute in parallel; and scheduling the workgroups for execution on one or more of the plurality of processors based on the comparing and determining.