Patent ID: 7694290

Claim:
A computer-implemented method to optimize throughput of executable program code, the method comprising; receiving a plurality of functions; creating a plurality of aggregates, the plurality, of aggregates to include an aggregate for each of the plurality of functions; determining a slowest aggregate from the plurality of aggregates; calculating an average throughput of the slowest aggregate from the plurality of aggregates, wherein calculating the average throughput of the slowest aggregate includes multiplying a duplication factor for a current aggregate from the plurality of aggregates by a number of threads running on a current processing element, and dividing the result of the multiplying by a maximal execution cost of all aggregates from the plurality of aggregates; choosing an optimization action between a grouping action and a duplication action based on the number of aggregates in the plurality of aggregates, the number of available processing elements (PEs), execution time of each aggregate, and the average throughput of the slowest aggregate; performing the chosen optimization action; and mapping the plurality of aggregates to a plurality of processors.