Multi-packet-routing on mesh connected arrays

In this paper we study the problem of routing packets on an r-dimensional mesh-connected array of processors. The focus of this paper lies on routing with each processor containing exactly k packets, k > 2, initially and finally (so-called k-k-routing). For two-dimensional n x n grids the number of transport steps is at most ~kn + O(kn/f(n)) with a buffersize of O(kf(n)). In the special case of a sequence of k permutation routing problems this step count can be reduced to kn + O(kn/f(n)). For an r-dimensional cube, r > 3, with side length n the same technique yields an algorithm with step count [~] ( 2 r 2)n + O(kn/f(n) 1/(r-1)) and a buffer size of O(kf(n)). Furthermore it is shown that splitting large packets into smaller ones has benefits for permutation routing problems. 1 I n t r o d u c t i o n The performance of parallel computation is heavily influenced by the existence of fast data movement algorithms [AJP86]. In this area especially mesh connected processor arrays have drawn attention because of their simple interconnection and their easy scalability. A nl x . x n~ mesh connected array is a set mesh(n1,., n~)of N = n l . n~ identical processors where each processor P = (pl,.,p~),O _< Pi _< ni 1, is directly connected to all its nearPermission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the ACM copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Association for Computing Machinery. To copy otherwise, or to republish, requires a fee and /o r specific permission. @ t989 A C M 0 8 9 7 9 1 3 2 3 X / 8 9 / 0 0 0 6 / 0 3 3 6 $1.50 est neighbours only. A processor Q = ( q l , . . . , q r ) is called nearest neighbour of P iff the manhattan distance between P and Q is 1 (d(P,Q) = Eir=l IPi -qi[)" The control structure of the grid of processors is assumed to be of the MIMD type (Multiple Instruction Multiple Data). That is, each processor has its own program memory, different processors can perform different instructions at the same clock period, there is a global clock, and each processor can send data only to its nearest neighbours during one clock period. Bidirectional communication can occur with all nearest neighbours in one clock cycle. Furthermore, each processor has only a limited number of registers for data (e.g. the buffer size is constant or log N). D e f i n i t i o n I (k -k p a c k e t r o u t i n g ) A k-k pakket routing problem is the problem of transporting k packets from each processor in the mesh to k destination processors. Each processor in the mesh sends and finally receives k packets. More formally a k-k routing problem is described by a (k+l) tuple (mesh, address],., addressk ) where each addressi is a map from mesh to mesh and for all processors P in the mesh we have k Ei=~ ]address~-l(P)l = k. All the packets in address~-l(mesh) are said to lie in layer i. In the case of k = 1 address1 is a bijective func tion by definition and the problem is then called a permutation routing problem. This basic problem has been extensively studied in the literature. For n × n meshes some algorithms based on sorting only need 3n+O(low order) steps and a buffer*This research was supported by SIEMENS AG, Mfinchen, and by the Deutsche Forschungsgemeinschaft, Grant No. Ku 658/1-1.