1. A data processing apparatus comprising: a processing device for communicating with a computer system to offload a plurality of processing tasks from a processor within the computer system, wherein the processing device comprises a re-configurable logic device; wherein the re-configurable logic device is configured to receive and process streaming data through a multi-functional pipeline deployed on the re-configurable logic device; wherein the multi-functional pipeline comprises a plurality of pipelined data processing engines, each pipelined data processing engine being configured to (1) perform a processing operation on streaming data that it receives, and (2) be responsive to a control instruction that defines whether that pipelined data processing engine is an activated data processing engine or a deactivated data processing engine, wherein an activated data processing engine is configured to perform its processing operation on any received streaming data, and wherein a deactivated data processing engine remains in the pipeline but does not perform its processing operation on any received streaming data, the multi-functional pipeline thereby being configured to provide a plurality of different pipeline functions in response to control instructions that are configured to selectively activate and deactivate the pipelined data processing engines, each pipeline function being the combined functionality of each activated pipelined data processing engine in the pipeline at a given time; and wherein the pipelined data processing engines comprise a data reduction engine.