Question: Modify the given one-to-all broadcast algorithm so that it works for any number of processes, not just for powers of 2. 1. procedure GENERAL_ONE_TO_ALL_BC( d
"Modify the given one-to-all broadcast algorithm so that it works for any number of processes, not just for powers of 2." 1. procedure GENERAL_ONE_TO_ALL_BC(d, my_id, source, X) 2. begin 3. my_virtual id := my_id XOR source; 4. mask := 2d - 1; 5. for i := d - 1 downto 0 do /* Outer loop */ 6. mask := mask XOR 2i; /* Set bit i of mask to 0 */ 7. if (my_virtual_id AND mask) = 0 then 8. if (my_virtual_id AND 2i) = 0 then 9. virtual_dest := my_virtual_id XOR 2i; 10. send X to (virtual_dest XOR source); /* Convert virtual_dest to the label of the physical destination */ 11. else 12. virtual_source := my_virtual_id XOR 2i; 13. receive X from (virtual_source XOR source); /* Convert virtual_source to the label of the physical source */ 14. endelse; 15. endfor; 16. end GENERAL_ONE_TO_ALL_BC
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
