1. A method for selectively spawning thread blocks in a multiprocessing system, the method comprising: receiving a request to execute a thread program, wherein the request includes a reference to the thread program to be executed and a reference to a predicate table that includes a plurality of entries corresponding to a plurality of thread indices, the plurality of entries indicating which thread blocks of a thread grid should execute the thread program, and each thread block including one or more threads, each thread to execute the thread program on a parallel processing engine; initializing one or more loop variables, wherein each loop variable is associated with a different dimension of the predicate table, and a value of each loop variable indicates an index into the predicate table in the associated dimension; computing a thread index based on the one or more loop variables; and reading, by a processor, the predicate table at the entry corresponding to the computed thread index to determine whether a thread block associated with the computed thread index should be spawned.