Question: Design a parallel algorithm that will process a graph of size n and calculates the closeness centrality and / or betweenness centrality for each node.

Design a parallel algorithm that will process a graph of size n and calculates the closeness centrality and/or betweenness centrality for each node. You will implement this algorithm using Message Passage Interface (MPI) libraries for Python1.
Output: The first processor (ID=0), will print out to a local file called output.txt, the centrality measures for all the vertices. The processor will also print five nodes with the top centrality values (if there are more than five nodes with the centrality values, then print any five) and also the average of the centrality values of all nodes on screen.
Program design: You may use any APSPs algorithm to calculate the shortest paths required in centrality calculation. The key aspect of the project is to come up with a good parallel design. Points will be given for efficient design.
Performance study: Tabulate the running times of your implementation with varying number of processors =2,4,8,16,...... perform your study using your chosen social networks. Prepare plots showing the trends in the run time. Answer questions, such as
o what is the parallel speedup for your implementation? Plot the speedup with P=2,4,8,16...
o What is the cost of the implementation? Plot the cost with various values of P.

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Programming Questions!