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.
A leader election algorithm for an oriented hypercube
1k Views Asked by john At
1
There are 1 best solutions below
Related Questions in ALGORITHM
- Two different numbers in an array which their sum equals to a given value
- Given two arrays of positive numbers, re-arrange them to form a resulting array, resulting array contains the elements in the same given sequence
- Time complexity of the algorithm?
- Find a MST in O(V+E) Time in a Graph
- Why k and l for LSH used for approximate nearest neighbours?
- How to count the number of ways of choosing of k equal substrings from a List L(the list of All Substrings)
- Issues with reversing the linkedlist
- Finding first non-repeating number in integer array
- Finding average of an array
- How to check for duplicates with less time in a list over 9000 elements by python
- How to pick a number based on probability?
- Insertion Sort help in javascript -- Khan Academy
- Developing a Checkers (Draughts) engine, how to begin?
- Can Bellman-Ford algorithm be used to find shorthest path on a graph with only positive edges?
- What is the function for the KMP Failure Algorithm?
Related Questions in DISTRIBUTED
- Fill an array with spmd in Matlab
- Hazelcast Distributed Lock with iMap
- is sharding same as distributed database in mongoDB?
- How to start distributed Erlang app without starting dependencies at every node?
- Spark tasks doesn't seem to be well distributed
- OrientDB to automatically create databases on startup
- Unequal distribution of packets in distributed system
- Logical Clocks: Lamport Timestamps
- MPI Random Broadcasting
- Hazelcast (Java) and ETCD (golang) differences/similarities?
- IP addresses in distributed systems
- Usage of RemoteCache with DeltaAware and Delta interface infinispan
- How to achieve similar color distribution with fewer pixels?
- How can I ensure a periodic task will run forever on a linux machine?
- Warning that "unknown addresses are found in partition table"
Related Questions in DISTRIBUTED-COMPUTING
- Is curator's persistent ephemeral nodes just regular ephemeral with retries?
- IPython MPI with a Machinefile
- Prevent RabbitMQ erl_crash.dump files?
- Hazelcast 3.3 - EntryProcessor is accessing "non-local" keys
- Java RMI Compute Engine
- Data division on Addition of node to distributed System
- Shuffled vs non-shuffled coalesce in Apache Spark
- Accessing data on distributed database on OrientDB
- Leverage Round Robin DNS for image transfer
- MPI Allreduce error on MPICH 3.1.5 on ARMv7
- Why can't CP systems also be CAP?
- In a distributed Java web application, how to share a value between all servlets on all machines?
- How is service discovery not a subset of centralized configuration?
- Warning that "unknown addresses are found in partition table"
- How to compute the average(or sum) of node values in a network?
Related Questions in HYPERCUBE
- filling seeds in latin hypercube - lhs for r
- Hadoop Hypercube
- Latin hypercube sample from a single random variable
- How many partitions should be used for a latin hypercube sample, versus computational time
- Unable to use view_cube command due to issue with wx
- Sort a nested JSON array in place
- Python - corner coordinates of n-dimensional cube
- Building a directed multigraph (Python)
- How-to map process to an Hypercube using MPI_CART
- 4D to 3D perspective projection
- How to extract the spectra range within a roi mask?
- Points enclosed by a custom defined Hypercube
- Hypercube with multidimensional vectors
- Constructor functions, arrays and objects
- Get all perfect matchings of Hybercubes In Python
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
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:
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:
The second (and last) iteration (d=2) works along the vertical axis, and terminates as follows:
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.