1. A processing unit comprising: a programmable execution unit operable to execute programs to perform processing operations; and a plurality of accelerators each operable to perform respective processing operations; wherein: the programmable execution unit is operable to communicate with the accelerators to cause the accelerators to perform processing operations, and to receive responses from the accelerators; two or more of the accelerators are operable to communicate directly with each other, in order to trigger processing operations by at least one of the accelerators; and further wherein: the processing unit is configured to determine for a processing entity or group of processing entities to be processed by the processing unit, whether that entity or group of entities should be processed solely by executing a program using the programmable execution unit for that entity or group of entities, or whether that entity or group of entities should be processed solely by means of direct communication between the accelerators, or whether that entity or group of entities should be processed both by executing a program using the programmable execution unit for that entity or group of entities and by means of direct communication between the accelerators; and the processing unit comprises processing circuitry configured to: when it is determined that a processing entity or entities is to be processed by executing a program using the programmable execution unit, issue an execution thread or threads for execution by the programmable execution unit in order to trigger processing operations for the entity or entities; when it is determined that a processing entity or entities is to be processed by means of direct communication between the accelerators, issue a message directly to one or more of the accelerators, in order to trigger processing operations for the entity or entities; and when it is determined that a processing entity or entities is to be processed both by executing a program using the programmable execution unit for the entity or group of entities and by means of direct communication between the accelerators, issue an execution thread or threads for execution by the programmable execution unit in order to trigger processing operations for the entity or entities, and issue a message directly to one or more of the accelerators, in order to trigger processing operations for the entity or entities.