Optimal all-to-some personalized communication on hypercubes

In a hypercube multiprocessor with distributed memory, each data element has a street address and an apartment number (i.e. a hypercube node address and a local memory address). We describe an optimal algorithm for performing the all-to-some personalized communication (ASPC) on Boolean n-cubes, defined as (i|j)/spl rarr/(i/spl plusmn/2/sup j/|j), i/spl isin/[0,2/sup n/-1], j/spl isin/[0,n-1], where (i|j) denote the data element on node i and location j. The algorithm also gives an optimal schedule for emulating PM2I networks on hypercubes under the binary-reflected Gray code encoding. We also study an important class of parallel algorithms, called /spl plusmn/2/sup b/-descend, which perform log M iterations on an M-element input a[O:M-1]. For b=log M-1,...,0, iteration b computes new values of each a[i] as a function of a[i], a[i+2/sup b/], a[i-2/sup b/]. For large applications, the problem size M is typically much larger than the number of nodes N. We show that on hypercubes, the optimal ASPC algorithm devised in this paper can be used in combination with pipelining communication and computation in /spl plusmn/2/sup b/-descend computations to reduce the communication steps from 2.log N.M/N to 4(log M+M/N-1). At one communication step, a hypercube node can send n elements along its n links, one per link.