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; and further wherein: 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.