1. A system for processing data streams, the system comprising: a partitioning module configured to divide a multi-dimensional input data stream along at least a first dimension into a plurality of primitive data streams; a primitive bus carrying the plurality of primitive data streams; connected to the primitive bus, one or more primitive compute modules, each primitive compute module being configured to process one of the primitive data streams independently of any other primitive data stream; a router configured to create one or more complex data streams by combining, for each of the one or more complex data streams, at least portions of two or more primitive data streams into that complex data stream; a complex bus carrying the complex data streams; and connected to the complex bus, one or more complex compute modules, each complex compute module being configured to process one of the one or more complex data streams.