A system for grouping instruction entities, the system comprising: a processing cluster to execute software, the processing cluster comprising a plurality of processing units; wherein the processing cluster is configured to execute the software as a plurality of instruction entities in a time partitioned execution environment, wherein processing budgets are allotted to specify execution time available during each time period in which an instruction entity in the plurality of instruction entities can execute, wherein an instruction entity is a group of program instructions that can be executed by a processing unit in the plurality of processing units; wherein the processing cluster is further configured to execute the plurality of instruction entities in a plurality of execution groups, each execution group comprising one or more instruction entities; wherein the processing cluster executes a group of instruction entities in the one or more instruction entities as an execution group, wherein instruction entities that execute concurrently on the processing cluster are constrained to belong to a same execution group, wherein a particular group of instruction entities within a particular execution group execute within a processing budget allotted to at least one instruction entity in the particular execution group; and wherein each execution group in the plurality of execution groups is configured so that a plurality of schedule-before relationships are established, each schedule-before relationship being established among a set of instruction entities by ordering the execution of instruction entities within the plurality of execution groups and ordering the execution of instruction entities in different execution groups in the plurality of execution groups, wherein a schedule-before relationship exists between different instruction entities when the correct execution of the instruction entity depends on the successful completion of execution of another instruction entity. a processing cluster to execute software, the processing cluster comprising a plurality of processing units; wherein the processing cluster is configured to execute the software as a plurality of instruction entities in a time partitioned execution environment, wherein processing budgets are allotted to specify execution time available during each time period in which an instruction entity in the plurality of instruction entities can execute, wherein an instruction entity is a group of program instructions that can be executed by a processing unit in the plurality of processing units; wherein the processing cluster is further configured to execute the plurality of instruction entities in a plurality of execution groups, each execution group comprising one or more instruction entities; wherein the processing cluster executes a group of instruction entities in the one or more instruction entities as an execution group, wherein instruction entities that execute concurrently on the processing cluster are constrained to belong to a same execution group, wherein a particular group of instruction entities within a particular execution group execute within a processing budget allotted to at least one instruction entity in the particular execution group; and wherein each execution group in the plurality of execution groups is configured so that a plurality of schedule-before relationships are established, each schedule-before relationship being established among a set of instruction entities by ordering the execution of instruction entities within the plurality of execution groups and ordering the execution of instruction entities in different execution groups in the plurality of execution groups, wherein a schedule-before relationship exists between different instruction entities when the correct execution of the instruction entity depends on the successful completion of execution of another instruction entity.