Patent ID: 7634637

Claim:
A method for processing data in a parallel processor, the method comprising: defining a single-instruction, multiple-data (SIMD) group comprising a plurality of threads to execute a same program in parallel, wherein the SIMD group includes a first subset of threads associated with a first instance of a state variable and a second subset of threads associated with a second instance of the state variable; launching the SIMD group on a same clock cycle so that the SIMD group begins in a synchronized state; receiving a series of instructions of the program to be executed for each thread of the SIMD group; and for each instruction of the series that is received: determining whether the state variable affects execution of the instruction; in the event that the state variable does not affect execution of the instruction, executing the instruction in parallel for all of the threads of the SIMD group; and in the event that the state variable affects execution of the instruction: executing the instruction in parallel for all of the threads of the first subset using the first instance of the state variable; and executing the instruction in parallel for all of the threads of the second subset using the second instance of the state variable, wherein execution of the instruction for the threads of the second subset is serial relative to execution of the instruction for the threads of the first subset.