Patent ID: 7584342

Claim:
A computer-implemented method for processing data, the method comprising: defining, in a multithreaded processor having a plurality of processing engines configured to execute threads in single-instruction, multiple-data (SIMD) groups, a thread array having a plurality of threads, each thread configured to execute a same program on an input data set, wherein the SIMD groups each have a degree of parallelism P; launching the threads of the thread array in one or more SIMD groups, wherein launching each SIMD group includes: assigning a unique thread identifier value to each thread in the SIMD group, wherein each unique thread identifier value is unique within the SIMD group; and signaling the parallel processing engines to begin executing the SIMD group; and executing the one or more SIMD groups concurrently with each other, wherein during execution, each thread of the thread array uses the unique thread identifier value assigned thereto as an input to compute at least one function specified by the same program, and an intermediate result from a first one of the threads of the SIMD group is shared with a second one of the threads of the SIMD group based on the respective thread identifiers of the first and second threads.