Prefix Computation and Sorting in Dual-Cube

Similar documents
The Recursive Dual-net and its Applications

Efficient Communication in Metacube: A New Interconnection Network

Recursive Dual-Net: A New Universal Network for Supercomputers of the Next Generation

CS256 Applied Theory of Computation

Node-Disjoint Paths in Hierarchical Hypercube Networks

Data Communication and Parallel Computing on Twisted Hypercubes

Hyper-Butterfly Network: A Scalable Optimally Fault Tolerant Architecture

Sorting Algorithms. - rearranging a list of numbers into increasing (or decreasing) order. Potential Speedup

Algorithms and Applications

The Hamiltonicity of Crossed Cubes in the Presence of Faults

CS 6143 COMPUTER ARCHITECTURE II SPRING 2014

A Localized Algorithm for Reducing the Size of Dominating Set in Mobile Ad Hoc Networks

Interconnection networks

Today. Types of graphs. Complete Graphs. Trees. Hypercubes.

Efficient Prefix Computation on Faulty Hypercubes

Parallel Sorting. Sathish Vadhiyar

Optimal Subcube Fault Tolerance in a Circuit-Switched Hypercube

Discrete Mathematics and Probability Theory Fall 2013 Vazirani Note 7

Efficient Bitonic Communication for the Parallel Data Exchange

Node-to-Set Vertex Disjoint Paths in Hypercube Networks

Topological and Structural Properties of Butterfly-de-Bruin: A Product Network of Wrap-Around Butterfly and de Bruin Networks

A limited-global information model for fault-tolerant routing in dual-cube

CSE Introduction to Parallel Processing. Chapter 7. Sorting and Selection Networks

Fault-Tolerant Routing Algorithm in Meshes with Solid Faults

GIAN Course on Distributed Network Algorithms. Network Topologies and Local Routing

Distributed Sorting. Chapter Array & Mesh

Maximal Monochromatic Geodesics in an Antipodal Coloring of Hypercube

John Mellor-Crummey Department of Computer Science Rice University

Constructions of hamiltonian graphs with bounded degree and diameter O(log n)

Lectures 8/9. 1 Overview. 2 Prelude:Routing on the Grid. 3 A couple of networks.

The Postal Network: A Versatile Interconnection Topology

On a Product Network of Enhanced Wrap-Around Butterfly and de Bruijn Networks

The Transformation of Optimal Independent Spanning Trees in Hypercubes

GIAN Course on Distributed Network Algorithms. Network Topologies and Interconnects

Network Algorithms. Distributed Sorting

A New Algorithm for Multiple Key Interpolation Search in Uniform List of Numbers

Architecture-Dependent Tuning of the Parameterized Communication Model for Optimal Multicasting

Lecture 9: Group Communication Operations. Shantanu Dutt ECE Dept. UIC

Parallel Systems Course: Chapter VIII. Sorting Algorithms. Kumar Chapter 9. Jan Lemeire ETRO Dept. Fall Parallel Sorting

Sorting Algorithms. Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar

Basic Communication Operations Ananth Grama, Anshul Gupta, George Karypis, and Vipin Kumar

COMP3121/3821/9101/ s1 Assignment 1

Keywords: Binary Sort, Sorting, Efficient Algorithm, Sorting Algorithm, Sort Data.

CS 614 COMPUTER ARCHITECTURE II FALL 2005

Discrete Mathematics and Probability Theory Fall 2009 Satish Rao,David Tse Note 8

Discrete Mathematics for CS Spring 2008 David Wagner Note 13. An Introduction to Graphs

Node-Independent Spanning Trees in Gaussian Networks

Optimal Parallel Randomized Renaming

LESSON 1: INTRODUCTION TO COUNTING

A COMPARISON OF MESHES WITH STATIC BUSES AND HALF-DUPLEX WRAP-AROUNDS. and. and

Note Improved fault-tolerant sorting algorithm in hypercubes

Embedding Large Complete Binary Trees in Hypercubes with Load Balancing

The super connectivity of augmented cubes

Two-Stage Fault-Tolerant k-ary Tree Multiprocessors

Department of Computer Science. a vertex can communicate with a particular neighbor. succeeds if it shares no edge with other calls during

Parallel Systems Course: Chapter VIII. Sorting Algorithms. Kumar Chapter 9. Jan Lemeire ETRO Dept. November Parallel Sorting

Computing intersections in a set of line segments: the Bentley-Ottmann algorithm

Tradeoff Analysis and Architecture Design of a Hybrid Hardware/Software Sorter

II (Sorting and) Order Statistics

Abstract. 1 Introduction

6.854J / J Advanced Algorithms Fall 2008

Mesh Models (Chapter 8)

Sorting (Chapter 9) Alexandre David B2-206

Network Dilation: A Strategy for Building Families of Parallel Processing Architectures Behrooz Parhami

Constant Queue Routing on a Mesh

Problem Set 5 Solutions

Lecture 3: Sorting 1

A New Architecture for Multihop Optical Networks

DAVID M. KOPPELMAN 2735 East 65th Street Brooklyn, NY 11234

Are Hopfield Networks Faster Than Conventional Computers?

A RADIO COLORING OF A HYPERCUBE

The Fibonacci hypercube

Embedding a family of 2D meshes into Möbius cubes

Deterministic Parallel Sorting Algorithm for 2-D Mesh of Connected Computers

The Spectral Relation between the Cube-Connected Cycles and the Shuffle-Exchange Network

Spider-Web Topology: A Novel Topology for Parallel and Distributed Computing

Design and Analysis of Algorithms Prof. Madhavan Mukund Chennai Mathematical Institute. Week 02 Module 06 Lecture - 14 Merge Sort: Analysis

Merge Sort Roberto Hibbler Dept. of Computer Science Florida Institute of Technology Melbourne, FL

Position Sort. Anuj Kumar Developer PINGA Solution Pvt. Ltd. Noida, India ABSTRACT. Keywords 1. INTRODUCTION 2. METHODS AND MATERIALS

Speed-up of Parallel Processing of Divisible Loads on k-dimensional Meshes and Tori

1 Leaffix Scan, Rootfix Scan, Tree Size, and Depth

Minimum Tree Spanner Problem for Butterfly and Benes Networks

MAT 145: PROBLEM SET 4

Parallel Algorithm for Multilevel Graph Partitioning and Sparse Matrix Ordering

Interconnection topologies (cont.) [ ] In meshes and hypercubes, the average distance increases with the dth root of N.

CS475 Parallel Programming

CS70 - Lecture 6. Graphs: Coloring; Special Graphs. 1. Review of L5 2. Planar Five Color Theorem 3. Special Graphs:

ADAPTIVE SORTING WITH AVL TREES

On the Max Coloring Problem

Exemples of LCP. (b,3) (c,3) (d,4) 38 d

Online algorithms for clustering problems

Network-on-chip (NOC) Topologies

PAPER Node-Disjoint Paths Algorithm in a Transposition Graph

O(n): printing a list of n items to the screen, looking at each item once.

Section 8.2 Graph Terminology. Undirected Graphs. Definition: Two vertices u, v in V are adjacent or neighbors if there is an edge e between u and v.

Algorithm Analysis. (Algorithm Analysis ) Data Structures and Programming Spring / 48

A DISCUSSION ON SSP STRUCTURE OF PAN, HELM AND CROWN GRAPHS

Information Processing Letters

Data Partitioning. Figure 1-31: Communication Topologies. Regular Partitions

CS 373: Combinatorial Algorithms, Spring 1999

Transcription:

Prefix Computation and Sorting in Dual-Cube Yamin Li and Shietung Peng Department of Computer Science Hosei University Tokyo - Japan {yamin, speng}@k.hosei.ac.jp Wanming Chu Department of Computer Hardware University of Aizu Aizu-Wakamatsu - Japan w-chu@u-aizu.ac.jp Abstract In this paper, we describe two algorithmic techniques for the design of efficient algorithms in dual-cube. The first uses cluster structure of dual-cube, and the second uses recursive structure of the dual-cube. We propose efficient algorithms for parallel prefix computation and sorting in dual-cube based on the two techniques, respectively. For a dual-cube D n with n nodes and n links per node, the communication and computation times of the algorithm for parallel prefix computation are at most n + and n, respectively; and those of the algorithm for sorting are at most n and n, respectively.. Introduction The hypercube is one of the most versatile and efficient networks for parallel computation [,, ]. It can efficiently simulate any other network of the same size. Hence, the hypercube is an excellent and popular choice for the architecture of a multi-purpose parallel computer. However, one drawback to the hypercube is that the number of connections to each processor grows logarithmically with the size of the network, This will be a problem for very large parallel computers that contain tens of thousands or more processors. In order to overcome this problem, several boundeddegree derivatives of hypercube have been proposed and analyzed. Among them are the butterfly, shuffleexchange graph, de Bruijn graph, Benes network, and cubeconnected-cycles (CCC) [, ]. However, these networks have their own drawbacks that prevent them to be used as a practical architecture for very large parallel computers. The dual-cube [, ] was proposed to overcome the problem mentioned above that keeps most of the interesting properties of the hypercube architecture. Dual-cube can be viewed as an improvement over CCC networks. Dual-cube holds more hypercube-like properties than others, such as recursive construction, binary presentation with two nodes connected by an edge only if they differ in exactly one bit, etc. The communications in dual-cube are very efficient, almost as efficient as in hypercube. The diameter of dual-cube is that of hypercube of the same size plus one. However, the number of edges per node in dual-cube is about half of that in the hypercube of the same size. Therefore, parallel computers with tens of thousands of processors can be constructed by dual-cube practically with up to eight connections each processor. A dual-cube uses binary hypercubes as basic components. Each such hypercube component is referred to as a cluster. In an n-dual-cube D n, the number of nodes in a cluster is n. In D n, there are two classes with each class consisting of n clusters. The total number of nodes is n. Therefore, the node address has n bits. The leftmost bit is used to indicate the type of the class (class and class ). For the class, the rightmost n bits are used as the node ID within the cluster and the middle n bits are used as the cluster ID. For the class, the rightmost m bits are used as the cluster ID and the middle m bits are used as the node ID within the cluster. Each node in a cluster of class has one and only one extra connection to a node in a cluster of class. These two node addresses differ only in the leftmost bit position. In an n-connected dual-cube, n edges are used within cluster to construct an (n )-cube and a single edge is used to connect a node in a cluster of another class. There is no edge between the clusters of the same class. If two nodes are in one cluster, or in two clusters of distinct classes, the distance between the two nodes is equal to its Hamming distance, the number of bits where the two nodes have distinct values. Otherwise, it is equal to the Hamming distance plus two: one for entering a cluster of another class and one for leaving. In this paper, we propose two algorithmic techniques for the design of efficient algorithms in dual-cube. The

first uses the cluster structure and the second uses recursive structure of the dual-cube. We develop algorithms for parallel prefix computation and sorting in dual-cube using the first and the second techniques, respectively. For a dualcube D n with n links per node, the algorithm for parallel prefix computation runs in n + time, and the algorithm for sorting runs in n time. The rest of this paper is organized as follows. Section describes the dual-cube structure in details. Section shows an optimal algorithm for parallel prefix computation in dual-cube. Section describes a recursive presentation of dual-cube. Section reviews sorting algorithms in hypercube. Section gives an efficient sorting algorithm in dual-cube based on bitonic sort. Section concludes the paper and presents some future research directions.. Dual-Cube Networks An n-connected dual-cube D n is a undirected graph on the node set {, } n such that there is an edge between two nodes u = (u n... u ) and v = (v n... v ) in D n if and only if the following conditions are satisfied: () u and v differ exactly in one bit position i. () if i n then u n = v n =. () if n i n then u n = v n =. Intuitively, the set of the nodes u of form (u n... u n... ), where means don t care, constitutes a (n )-dimensional hypercube. We call these hypercubes clusters of class. Similarly, the set of the nodes u of form (... u n... u ) constitutes a (n )-dimensional hypercube, and we call them clusters of class. The edge connects two nodes in two clusters of distinct class is called cross-edge. In other word, u, v is a cross-edge if and only if u and v differ at the leftmost bit position only. We divide the binary representation of a node into three parts: Part I is the rightmost r bits, part II is the next r bits, and part III is the leftmost bit. For the nodes in a cluster of class (class ), part I (part II) is called node ID and part II (part I) is called cluster ID. Part III is a class indicator. The cluster contains node u is denoted as C u. For any two nodes u and v in D n, C u = C v if and only if u and v are in the same cluster. Figure depicts a D network. The class indicator is shown at the top position in the node address. For the nodes of class (class ), the node ID (cluster ID) is shown at the bottom, and the cluster ID (node ID) is shown at the middle. Figure depicts a D network. Notice that only those edges connecting to cluster of class are shown in the figure. Dual-cube has very nice topological properties, similar to that of hypercube such that node and edge symmetricity, and recursive construction. The routing algorithm in dual- Class Class Class Figure. The dual-cube D cube is also very simple and the diameter of a D n (of size n ) is only n.. Parallel Prefix Computation in Dual-Cube Let be an associative binary operation. Given n numbers c, c,..., c n, parallel prefix computation [, ] is defined as simultaneously evaluating all of the prefixes of the expression c c... c n. The ith prefix is s i = c c... c i. The parallel prefix computation can be done optimally in hypercube: only involve n communication steps for computing prefixes in n-cube. Assume that each node u, u n, in an n-cube holds a number c[u]. The algorithm for parallel prefix (or diminished prefix which excludes c[u] in s[u]) computation in n-cube is an ascend algorithm in which each node successively communicates with its neighbors in dimension order from to q. Each node deals with two variables: a subcube total t in the current subcube and a subcube parallel prefix result s that gives the result of parallel prefix computation in the same subcube. Eventually, s becomes the required prefix (or diminished prefix) within the entire n-cube. The algorithm is shown in Algorithm. For parallel prefix computation in D n, we first assume that each node in D n hold a key value in c[.. n ]. However, different with that in hypercube, we arrange the input data in a way such that the indices of c kept in the nodes of a cluster of class will be in consecutive order. Notice that the IDs of nodes in a cluster of class is not consecutive. That is, node u holds value c[u] if ID s (u) = ; otherwise, value c[u ], where u obtained from u by swap[(u n... u n ), (u n... u )]. In order to get the values of the total in other clusters of the same class for prefix computation, we need additional

Class Class Class Figure. The dual-cube D Algorithm : Cube prefix(q n, c, tag) Input: n-cube Q n with each node u holds c[u] and a boolean tag Output: (t, s), sum t[u] and prefix s[u] = c[] c[]... c[u] if tag =, diminished prefix s[u] = c[] c[]... c[u ] otherwise, at node u begin for node u, u n parallel do t[u] c[u]; if (tag = ) s[u] c[u] else s[u] ; /* Initialize t and s */ for i to n do /* u and ū i differ at the ith bit only. */ send t[u] to ū i ; get temp[u] t[ū i ]; t[u] t[u] temp[u]; if u > ū i s[u] s[u] temp[u]; end two communication steps via cross-edges, and one more parallel prefix computation in each cluster on the values got through the cross-edges. Each node has four variables: Variables t and s are the same as that in hypercube. Additional two variables t and s are for the calculation of the prefixes of the sub-totals in the clusters of the same class. The details are specified in Algorithm. An example of prefix sum on D is shown in Figure. Figure (a) shows the input sequence c. Figure (b) to Figure (f) show the results of step - of the algorithm, respectively. Theorem Assume -port, bidirectional-channel communication model. Parallel prefix computation in n-dual-cube D n with N = n nodes can be done in n + communication steps and n computation steps. Proof: From the arrangement of the initial value that each node holds, the indices of c[u ] held in node u are consecutive inside every cluster. From the algorithms for parallel prefix computation in hypercube and dual-cube, it is easy to check that, after algorithm D prefix(d n ) is done, the resulting values held in the nodes of D n are prefixes of c[.. n ]. Next, we assume that the edges in D n are bidirectional channels, and at each clock cycle, each node in D n can send or get at most one message. In Algorithm, the first and the third steps that call Cube prefix for (n )-cube require n communication steps and at most (n ) computation steps. Therefore, the communication and computation times of Algorithm are T comm (n) = (n )+ = n+ and T comp (n) = (n )+ = n, respectively.. Recursive Presentation Of Dual-Cube In this section, we introduce an alternative presentation of a dual-cube. This representation of a dual-cube

Prefix sum([,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,]) = [,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,] (a) Original data distribution (b) Prefix inside cluster (c = c, generate t and s) (c) Exchange t via cross-edge (d) Prefix inside cluster (c =, generate t and s ) (e) Get s and prefix one time (f) Final result (Class + ) Figure. An example of prefix sum on dual-cube D n is motivated by the recursive construction of D n from D n. Since the number of nodes in D n is four times of the number of nodes in D n, we need four D n in order to construct a D n. In this presentation, each

Algorithm : D prefix(d n ) Input: n-dual-cube D n and an array of keys c[, n ] Assume node u holds c[u ], where u = u if ID s (u) =, = (, cluster ID(u), node ID(u)), otherwise. Output: prefix s[u ] = c[] c[]... c[u ] at node u begin. for cluster C i, i n, parallel do (t, s) Cube prefix(c i, c, );. for node u, u n, parallel do send t[u] to ū n ; get temp[u] t[ū n ];. for cluster C i, i n, parallel do (t, s ) Cube prefix(c i, temp, );. for node u, u n, parallel do send s [u] to ū n ; get temp[u] s [ū n ]; s[u] s[u] temp[u];. for node u, u n, parallel do if ID s (u) = send t [u] to ū n ; get temp[u] t [ū n ]; s[u] s[u] temp[u]; end () () () () Dimension () () Dimension Dimension () () () () (a) D (b) D Dimension Dimension () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () () node in D n is assigned an ID, (a n... a ), where a is class ID, (a n, a n... a is a cluster (node) ID and (a n... a ) is a node (cluster) ID for a = (a = ). From this new presentation, a D n can be viewed as a graph including four copies of D n (the leftmost two bits serve as ID of each copy of D n ). The D n can be constructed recursively as follows: Base: D = Q ; Recursive step: n >. The four subsets {(u) u {, } n }, {(u) u {, } n }, {(u) u {, } n }, and {(u) u {, } n }, form four D n ;. Create a link for each pair of nodes (xu) and (xu), and each pair of nodes (xu) and (xu), where (u) Dn, where x {, } and u {, } n. Figure shows the recursive construction of D and D from D and D, respectively. The recursive connections are marked with bold lines and curves. F in Figure (a) is a K that has only two nodes, one for each class. Figure (c) is the same as Figure (b), and Figure (d) is the same as Figure. The b b is written in the left side in Figure (b) and Figure (d). (c) D Figure. The construction of D and D from D. Sorting in Hypercube The problem of sorting on hypercube networks has been intensively studied. Batcher s O(n )-time bitonic and oddeven merge sorting algorithms [] for sorting N = n numbers on an n-cube are presently the fastest practical deterministic sorting algorithms available. The more complicated O(n log n)-time algorithms are not competitive for n <. Randomized algorithms can sort in O(n) time. However, they do not provide guaranteed speedup [, ]. Since the proposed sorting algorithm in dual-cube is based on bitonic sorting, we will show below the bitonic sorting in hypercube. A sequence {a,..., a n } is a bitonic sequence if it rises then falls (a a... a i a i+... a n }), falls then rises (a a... a i a i+... a n }), or is obtained from the above two types of sequences through cyclic shifts or rotations. When input sequence is a bitonic sequence, sorting an n-cube can be done by a descend algorithm: Each node successively communicates with its neighbors in dimension order from n to (left-to-right). In a single communication step, the

Algorithm : D sort(d n, tag) Input: Dual-cube D n with recursive presentation and a boolean variable tag /* each node u D n holds a key c[u]. */ Output: Sorted sequence of keys in ascending/descending order when the value of tag is / begin /* Let four disjoint D n in D n be D i n, i, where the leftmost two bits of node u D i n equal i. */ if n = then if tag = then if c[] < c[] then swap(c[], c[]) else if c[] > c[] then swap(c[], c[]) else /* n > :/ D sort(d n, ); D sort(d n, ); D sort(d n, ); D sort(d n, ); /* Sort keys in D i n in ascending/descending order for i is even/odd. */ for j n downto do /* For node u, let ū j be the node differs with u at the jth bit only. */ for each node u parallel do if (j = ) or (u = and j > is even) or (u = and j > is odd) then send c[u] to and receive d[u] = c[ū j ] from node ū j via (u, ū j ) E(D n ) else send c[u] to and receive d[u] = c[ū j ] from node ū j via (u, v = ū ), (v, w = v j ), and (w, w = ū j ); if (u n = and (u j = ) or (u n = and (u j = ) then c[u] min{c[u], d[u]} else c u max{c[u], d[u]}; for j n downto do for each node u parallel do if (j = ) or (u = and j > is even) or (u = and j > is odd) then send c[u] to and receive d[u] = c[ū j ] from node ū j via (u, ū j ) E(D n ) else send c[u] to and receive d[u] = c[ū j ] from node ū j via (u, v = ū ), (v, w = v j ), and (w, w = ū j ); if (tag = and (u j = ) or (tag = and (u j = ) then c[u] min{c[u], d[u]} else c u max{c[u], d[u]}; end pair of nodes compare and then exchange the two numbers if necessary. For sorting in increasing (decreasing) order, the smaller one stays at the lower-labeled (higher-labeled) node. The bitonic sorting on an n-cube is a recursive one: First, divide an n-cube Q n into two (n )-subcubes, Q n and Q n, where the leftmost bit of a node in Q n (Q n ) is (). Second, sort the numbers in Q n and Q n recursively in opposite direction such that the resulting sequence in Q n is bitonic. Third, call the descend algorithm described above to perform parallel compare-and-exchange operations n times. It is easy to see that the running time of the recursive algorithm is O(n ).. Sorting in Dual-Cube In this section, D n will be presented by the format described in Section. The proposed sorting algorithm in D n is similar to the bitonic sorting in hypercube. We first explain the compare-and-exchange operation in D n. Suppose that the compare-and-exchange operation should be performed by the pair of nodes, u and v in D n that differ only at the ith bit for i >. Let u = (u n... u i... u ) and v = (v n... v i... v ), where u j = v j for j i, u i =, v i =, and u = v =. Since u = v =, there is a link between u and v if and only if i is an even number. For an even i, the compare-and-exchange operation can be done by a single data transfer plus a comparison. However, for an odd i, the data transfer requires three hops (u (u n... u i... (u n... v i... (v n... v i... ). Therefore, in D n, a parallel compareand-exchange operation for all pairs of nodes at the ith dimension takes three time-units. The algorithm can be described as follows. First, we sort

D sort(d, ) D sort(d, ) D sort(d, ) D sort(d, ) Figure. Generate bitonic sequence in D Figure. Sort bitonic sequence in D

four D n sub-dual-cubes (D xy n, where x, y are or ) recursively such that the sequences in D n D D n D n and n form bitonic sequences. Second, we perform n steps of dimensional-order (left-to-right) compareand-exchange operations for the right n dimensions in D n to form a bitonic sequence in D n. Notice that the output sequences in Dn Dn and Dn Dn are arranged in ascendant and descendant orders, respectively. Third, we perform n steps of dimensional-order (left-to-right) compare-and-exchange operations for the n dimensions in D n to get the output sequence in sorted order. The algorithm is formally presented in Algorithm. An example that show how the algorithm works for D sort(d, ) is showed in Figures and. The thin lines between u and ū j are edges in D, while the thick lines between u and ū j are paths of length in D. In Figure, the input sequence in D is transformed into a bitonic sequence. In Figure, the bitonic sequence is sorted in ascending order. Theorem Assume bidirectional channel, -port communication model. Sorting in dual-cube D n with N = n nodes can be done in at most n communication steps and at most n comparison steps. Proof: The Algorithm emulates the bitonic sorting in dual-cube. Therefore, the correctness of Algorithm can be verified easily. Next, we assume that the edges in D n are bidirectional and each node in D n can send and receive at most one message in one clock cycle. In Algorithm, at each step, all pairs of nodes in D n, (u, ū j ) for a specific dimension j, perform compare-and-exchange operation. However, only half of the pairs have direct links for j >. The pairs without a direct link need three hops (use cross-edges twice) for a single compare-and-exchange operation. Therefore, the communication time T comm (n) and computation time T comp of Algorithm can be presented by the recurrences T comm (n) = T comm (n ) + ((n ) + (n )) < T (n ) + n and T comp (n) = T comp (n ) + ((n ) + (n )) < T (n ) + n, respectively. By solving the recurrences, we conclude that the communication and computation times for sorting in D n are at most n and n, respectively.. Concluding Remarks In this paper, we showed two algorithmic techniques for the design of efficient algorithms in dual-cube. The first one using cluster structure and then takes care the inter-cluster communication via cross-edge. If inter-cluster communication can be designed to satisfy the requirement of the algorithm then it is very likely to find an optimal or near optimal algorithm in dual-cube using this technique, such as the one for parallel prefix computation. The second one uses recursive structure. Since most of the algorithms in hypercube are recursive, the algorithms that emulate these hypercube algorithms can be developed using the second technique. However, the overhead for the emulation will be times of the corresponding hypercube algorithm in the worst-case due to the lack of edges. The future work include the following:. Generalize the proposed algorithms to include the cases that input sequences are larger than the size of the dual-cube.. Do some simulations and empirical analysis for the proposed algorithms.. Investigate and develop more application algorithms in dual-cube using the proposed techniques. References [] K. E. Batcher. Sorting networks and their applications. In Proceedings of AFIPS Spring Joint Computer Conference, pages, Apr.. [] A. Grama, A. Gupta, G. Karypis, and V. Kumar. Introduction to Parallel Computing. Addison-Wesley,. [] W. D. Hillis and G. L. Steele Jr. Data parallel algorithms. Communications of the ACM, ():, Dec.. [] T. C. Lee and J. P. Hayes. A fault-tolerant communication scheme for hypercube computers. IEEE Transactions on Computers, ():, October. [] F. T. Leighton. Introduction to Parallel Algorithms and Architectures. Morgan Kaufmann Publishers,. [] Y. Li and S. Peng. Dual-cubes: a new interconnection network for high-performance computer clusters. In Proceedings of the International Computer Symposium, Workshop on Computer Architecture, pages, ChiaYi, Taiwan, December. [] Y. Li, S. Peng, and W. Chu. Efficient collective communications in dual-cube. The Journal of Supercomputing, ():, April. [] Behrooz Parhami. Introduction to parallel processing: algorithm and architecture. Kluwer Academic Publishers, Norwell, MA, USA,. [] F. P. Preparata and J. Vuillemin. The cube-connected cycles: a versatile network for parallel computation. Commun. ACM, :, May.