1. A processor for graphics rendering, comprising: a plurality of processing units, each processing unit capable of executing at least one program instance independently of the other processing units of the plurality; a plurality of local memories used by the plurality of processing units; an allocator shared among the plurality of processing units, the allocator operable to allocate space in the local memories for data associated with program instances and create a mapping between the program instances and the allocated space in the local memories; a collector comprising packet storage configured to store a plurality of packets of program instances, wherein the collector is configured to collect program instances into packets in the packet storage by, for each of a plurality of program instances, selecting a packet and adding the program instance to the selected packet, the selected packet being stored in the packet storage; and a distributor configured to distribute program instances, obtained from the packets, to be executed on the plurality of processing units according to the mapping.