A processor comprising:a plurality of processing elements arranged in an array of D dimensions, where D is a positive integer greater than one, for parallel processing, each of said processing elements of the array having at least one and no more than two outputs per dimension and a plurality of inputs per dimension, separate from said outputs, said processing elements being divided into a plurali