Optimal algorithms for stable dimension permutations on Boolean cubes

In this paper we present algorithms optimal within a small constant factor for <italic>stable dimension permutations</italic> on Boolean cubes. A <italic>stable dimension permutation</italic> is a permutation such that element (<italic>w<subscrpt>m</subscrpt></italic>-1<italic>w<subscrpt>m</subscrpt></italic>-2 … <italic>w</italic><subscrpt>0</subscrpt>) is relocated to the location of element (<italic>w</italic><subscrpt>δ(<italic>m</italic>-1)</subscrpt><italic>w</italic><subscrpt>δ(<italic>m</italic>-2)</subscrpt>…<italic>w</italic><subscrpt>δ(0)</subscrpt> after the permutation, or <italic>i</italic> → δ(<italic>i</italic>), where δ(·) is a permutation function on {0,1,…, <italic>m</italic> - 1}. Depending on communication capability, message size, cube size, data transfer rate, and communication start-up time, different algorithms must be chosen for a communication time optimal within a small constant factor. The bandwidth of the Boolean cube is fully explored by dividing the data set to be communicated between a pair of processors into subsets, one for each path between the pair of processors. The <italic>k-shuffle</italic> permutation, the <italic>bit-reversal</italic> permutation, and matrix transposition, are special cases of <italic>stable dimension permutations</italic>. Experimental results on the Intel iPSC are also provided.