1. A method for control flow on a heterogeneous computer system, the method comprising: requesting, by a first processor of a first type, a first kernel be executed on a second processor of a second and different type to process first work items, wherein the second processor includes an integral command processor; executing, by the second processor, the first kernel to process the first work items, wherein new data is generated as a result of the processing of the first work items, wherein the processing of the first kernel generates new second work items, wherein the new second work items comprise the new data generated as a result of the processing of the first work items; determining, by the second processor, to execute the new second work items on the second processor based on the new data; and executing, by the second processor, a second kernel to process the new data of the new second work items.