1. A heterogeneous processing system, comprising: a computer; and a compiler for producing source code that is executable by the computer, the compiler configured to implement a method, the method comprising: dividing a power budget for the heterogeneous processing system into a discrete number of power tokens, each of the power tokens having an equal value of units of power; determining a power requirement for executing a code segment on a processing element of the heterogeneous processing system, the determining based on characteristics of the processing element and the code segment; annotating the code segment to include the power requirement responsive to the determining, the annotating including indicating a priority of the code segment relative to other concurrently executing code segments; and allocating, to the processing element at runtime, at least one of the power tokens to satisfy the power requirement.