State an algorithm for 2^20 computers, faster than an algorithm for 1
computer, that computes the distance from each vertex to vertex 0 in a
directed acyclic graph with 2^40 vertices and 2^45 edges.
The graph is given as an array of 2^25 edges on each computer. Each edge
is a pair of vertices. Each vertex is an integer between 0 and 2^40-1.
Analyze the cost of your algorithm in two ways: the time per computer,
measured as the number of simple operations, and the communication per
computer, measured as the number of bits transmitted.
Note that, if a message is sent by one computer to all computers, that
message has been transmitted 2^20-1 times.