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
- MCNP 6 - Doubts about cells
- Given partially sorted array of type x<y => first apperance of x comes before first of y, sort in average O(n)
- What is the algorithm behind math.gcd and why it is faster Euclidean algorithm?
- Purpose of last 2 while loops in the merge algorithm of merge sort sorting technique
- Dots and Boxes with apha-beta pruning
- What is the average and worst-case time complexity of my string searching algorithm?
- Building a School Schedule Generator
- TC problem 5-2:how to calculate the probability of the indicator random variable?
- LCA of a binary tree implemented in Python
- Identify the checksum algorithm
- Algorithm for finding a subset of nodes in a weighted connected graph such that the distance between any pair nodes are under a postive number?
- Creating an efficent and time-saving algorithm to find difference between greater than and lesser than combination
- Algorithm to find neighbours of point by distance with no repeats
- Asking code suggestions about data structure and algorithm
- Heap sort with multithreading
Related Questions in DISTRIBUTED
- How to do a simple large matrix multiplication on multiple GPUs in PyTorch? I have wrote some simple codes, but works not well
- Problems encountered when using _shard_num when querying clickhouse shard sets
- Which web3 decentralized wallet is suitable to store my crypto assets and lock some of the tokens for certain time?
- How to use consistent hashing across publishers, queues, and consumers
- pytorch all_gather gives wrong output order
- How to save the JavaScript runtime state
- akka PubSub not working across distributed system
- About the parallel execution issue in Ray
- How to make models that contains `log_prob` and needs to create local tensors in `forward` parallelly trainable?
- Clickhouse Distributed Query take huge amount of network usage when using group by
- The two data nodes return different results
- Guidance on multi instance application with distributed redis
- Distributed memory table in Clickhouse
- Issue with Flink Job Failure when Using Custom Class as DataStreamSource Type
- Qdrant: Which shard is at which node? It seems like all shards are on the same node
Related Questions in DISTRIBUTED-COMPUTING
- Micrometer & Prometheus with Java subprocesses that can't expose HTTP
- Least Connection Load balancing using Grpc
- How to debug ValueError: `FlatParameter` requires uniform dtype but got torch.float32 and torch.bfloat16?
- Load pre-training parameters trained on a single GPU on multi GPUS on a single machine
- How to access spark context or pandas inside a worker node to create a dataframe?
- Not Able To Connect Storj Node with Quic connection
- Is it better to store CUDA or CPU tensors that are loaded by torch DataLoader?
- FSDP with size_based_auto_wrap_policy freezes training
- Scalable Architecture for an Uptime Bot Tool in Node.js Handling Thousands of Cron Jobs Per Minute
- Contiguos graph partitioning
- How can we redirect system calls between OSes?
- spark sql - Have disabled Broadcast Hash Join ,but "NOT IN" query still do the mechanism
- How does model.to(rank) work if rank is an integer? (DistributedDataParallel)
- scanf function with MPI
- Accessing multiple GPUs on different hosts using LSF
Related Questions in HYPERCUBE
- Implementing Latin Hypercube sampling from skewed distributions in Java
- How many partitions should be used for a latin hypercube sample, versus computational time
- Connection String in VBA for Hypercube Data Source
- Obtain coordinates of 4D-hypercubes using meshgrid - Python
- How to extract the spectra range within a roi mask?
- Scipy Latin Hypercube sampling with constraints
- How to rotate a hypercube in javascript in X axis?
- Algorithm to dynamically generate m-face list for n-dimensional hypercube
- Generating GreyCode Recursively
- Get all perfect matchings of Hybercubes In Python
- What is a way to create all vectors from the hypercube in dimension n?
- qlik sense capability api 10000 limit
- How to show loading message in mashup Qlik Sense
- Unable to use view_cube command due to issue with wx
- Selections on Dimensions from Hypercube Qlik Sense Mashups
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 # Hahtags
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.