1. A data processing apparatus for processing a received workload in order to generate result data, comprising: thread group generator circuitry configured to generate from the received workload a plurality of thread groups to be executed to process the received workload, each thread group comprising a plurality of threads, and at least one thread group having an inter-thread dependency existing between said plurality of threads; each thread is either an active thread having an output required to form the result data, or a dummy thread required to resolve said inter-thread dependency for an associated active thread but having an output not required to form the result data, the thread group generator identifying, for each thread group, any dummy thread within that thread group; thread execution unit circuitry configured to receive each thread group generated by the thread group generator, and to execute each thread within a received thread group by executing a predetermined program comprising a plurality of program instructions; and execution flow modification circuitry, responsive to the received thread group having at least one dummy thread, configured to cause the thread execution unit to selectively omit at least part of the execution of at least one, but not all, of said plurality of program instructions when executing said at least one dummy thread, in dependence on control information associated with the predetermined program.