A data processing architecture comprising:an input device for receiving an incoming stream of data packets; anda plurality of processing elements which are operable to process data received thereby;wherein the input device is operable to distribute data packets in whole or in part to the processing elements in dependence upon the data processing bandwidth of the processing elements.