Patent ID: 8316360

Claim:
A method comprising: locating a first primitive in a software process; decomposing the first primitive into a first set of one or more sub-primitives; identifying first and second ones of the sub-primitives as local sub-primitives; identifying a third one of the sub-primitives as a global sub-primitive; when the first and second local sub-primitives have a characteristic in common, fusing the first and second local sub-primitives to share a first processing thread; replacing an execution barrier associated with the global sub-primitive by synchronizing the global sub-primitive with the first processing thread shared by the first and second local sub-primitives; and when the replacement of the execution barrier results in the first shared processing thread including a greater number of operations for a first parallel computing event than a second shared processing thread, scheduling the first shared processing thread to receive less operations than the second shared processing in a second data parallel computing event occurring after the first parallel computing event.