160 likes | 184 Views
Explore performance techniques for MPI on the Grid infrastructure using the Grid Communication Simulator. Implement collective communications and optimize communication patterns.
E N D
Grid Communication Simulator Boro Jakimovski Marjan Gusev Institute of Informatics Faculty of Natural Sciences and Mathematics University of Sts. Cyril and Metodius Skopje, Macedonia
Grid Programming Models • There has been significant development of parallel programming models • They cannot be applied directly to the Grid Infrastructure • MPI • Java RMI • Corba • …
MPI on the Grid • MPI – Message Passing Interface • MPICH – Well known MPI implementation • MPICH-G2 – Globus device implemented
Performance Consideration • Usage of TCP/IP as main transport protocol introduces lower performance • Wide Area Network performance compared to specialized Cluster Network performance • hence • Trying to increase the overall performance
Performance Techniques • MPICH-G2 over vendor MPI • Better communication patterns • Topology aware collective communications • Broadcast • Gather/Scatter • Barrier • Reduce • …
1 2 4 8 3 5 6 9 10 7 11 Example • Binomial Tree • Optimal broadcast algorithm 0
3 5 11 1 10 8 2 6 9 4 7 Example • Topology Unaware Solution 0
11 3 5 9 1 2 7 6 10 8 4 Example • Topology Aware Solution 0
Grid Communication Simulator • Implemented using Java 1.4 • Purpose • Visual representation of communication patterns • Has implemented collective communications • In development
Grid Communication Simulator • The programs executed on the virtual processors are Java programs • Example: • import java.util.*; • import edu.ii.grid.simulator.*; • public class FlatTreeBroadcast extends edu.ii.grid.simulator.Program { • public void run(){ • if (processor.getID() == 0){ • for (int i = 1; i < Processor.getCount(); i++){ • Integer[] data = {new Integer(1)}; • processor.send( new Packet( data, new GRIDAddress(i) ) ); • } • } • else { • Packet p = null; • p = processor.recieve(); • } • } • }
Grid Communication Simulator • Grid simulator main window
Grid Communication Simulator • Grid simulator usage
Grid Communication Simulator for (int i = 0; i < matriceA.length; i++) for (int j = 0; j < matriceA[i].length; j++) matriceA[i][j] = new Integer((int)(Math.random()*100)); row = CollectiveCommunication.flatTreeScatter(processor, matriceA);