1. A method for executing a group of thread programs on a thread processor, the method comprising: receiving a thread program group that includes a plurality of thread programs; initializing a plurality of predicate tables, wherein each predicate table is associated with a different one of the thread programs; transmitting a request to spawn a thread grid to execute a first thread program in the thread program group, wherein the thread grid includes a plurality of thread blocks, and a first predicate table in the plurality of predicate tables is associated with the first thread program and indicates which thread blocks in the thread grid execute the first thread program; and launching the thread grid to execute the first thread program.