I'm stuck with some problem where I have to design a leader election algorithm for an oriented hypercube. This should be done by using a tournament with a number of rounds equal to the dimension D of the hypercube. In each stage d, with 1 <= d < D two candidate leaders of neighbouring d-dimensional hypercubes should compete to become the single candidate leader of the (d+1)-dimensional hypercube that is the union of their respective hypercubes.
-
1guess we need more information. A sample case could help matters a great extend.. – Guru May 15 '10 at 14:58
-
What more information would you need? – john May 15 '10 at 15:02
-
2Sample input, expected output, and what exactly you're stuck on. – Xavier Ho May 15 '10 at 15:05
-
@Paul Nathan: sounds very much so. – ax. May 15 '10 at 15:43
-
@mick.. Xavir is right, we need sample input, output. That's the best way you will get your problem answered. – Guru May 15 '10 at 17:00
1 Answers
It has been a long time since I studied distributed systems, but I hope this helps a little :)
The problem: Leader election in a network with a hypercube tolopogy. In this topology, every node has exactly D neighbors (where D is the hypercube's dimension). Since the hypercube is oriented, the nodes know which of their links corresponds to every dimension. Also, I assume that all nodes are labeled with some unique id, as typical with this kind of problems.
If I understand well your solution guidelines, the algorithm seems to be simple: a node has exactly D states. In every state 1<=d<=D it communicates with its neighbor along the d axis. This communication consists of sending it the id of the best candidate it is aware of (when d=1 this is simply its own id), and comparing it with the id received by the peer. Now the node knows the best id of the sub-cube of order d (defined by axes 1,2...,d) it belongs to. This way, at step D all nodes are aware of the global best, and the algorithm completes with a consensus.
For example, assume the following topology(D=2) and id values:
(1) (2)
1-----2
| |
| |
4-----3
(4) (3)
The ids in parentheses indicate the best ids known by each node so far.
The first iteration (d=1) works along the horizontal axis, and terminates as follows:
(2) (2)
1-----2
| |
| |
4-----3
(4) (4)
The second (and last) iteration (d=2) works along the vertical axis, and terminates as follows:
(4) (4)
1-----2
| |
| |
4-----3
(4) (4)
The node number 4 has been chosen, as required (highest id).
Message count complexity
For every edge in the hypercube we have exactly 2 messages (one on each direction). Since the formula for the number of edges in a hypercube of dimension D is E=D*2^(D-1), we have exactly M=D*2^D messages. In order to compute the complexity as a function of N (the number of nodes), recall that N = 2^D, so M=N*log N.

- 22,166
- 5
- 47
- 78
-
1Yes it was very helpful and it helped a lot to understand the key idea, but I also wanted to know how to create an algorithm for it since there are a few ways you can do this election (which I've figured out later). Through your help and a bit of my own thinking I have managed to develop an algorithm. I will post my solution in a few weeks. Thanks a lot for the trouble and your time! – john May 16 '10 at 16:21