Install ISP.NET
  • Double-click Installer,msi (located in isp/VS/Installer/Debug) or right-click on the Installer project in the Solution Explorer
  • Select install location (default is probably best)
  • Select components to install (recommend installing all)
  • Go!
NOTE: The installer for the examples sometimes hides behind the main installer window -- watch for this.
Analyze an MPI program with ISP
ISP will analyze almost any MPI program written in C, C++ or C# (using MPI.NET) that you can build in Visual Studio.

There are many examples included in the examples suitable for testing ISP.NET with.

To run an ISP analysis of an MPI project, perform the following:
  • Open an MPI solution/project in Visual Studio
  • Set the project to be analyzed as the Startup Project (by right-click, Set As StartUp Project)
  • From the ISP toolbar, select the number of processes to run your program with
  • On the ISP toolbar, click Run ISP
When you click Run ISP, ISP will rebuild your project so that it uses ISP's MPI calls in place of the standard MPI calls. The ISP scheduler will manage the processes of your program, collect information about them and execute your program once for each relevant interleaving. The output of your program, along with information from ISP, will be displayed in the Visual Studio output window. After finishing its analysis, ISP restores all build settings for your project.

Once you have completed a full analysis of your program with ISP, a log file of the results is made available to the visualization tools that are part of ISP. You can see that the button for both on the ISP toolbar are enabled.

sourceAnalyzerII.png
  • Source Analyzer
This tool allows you to step through your program (with one or more of the interleavings generated by ISP) and see how point to point (such as MPISend and the corresponding MPIReceive) and collective (like Barrier, Reduce, etc) calls match up. It displays the source of two processes per transition step, and provides buttons for browsing all transitions (with respect to MPI calls), locking in a particular process (rank) and stepping through interleavings.
  • Java GUI
This provides you with graph style visualization all the transitions (MPI calls) made within your program. It displays a column of transitions per process, and uses edges to illustrate matching point to point calls. You can step through various interleavings, choose whether or not to show matches, and view the source code relevant to the example.
Another important feature of the Java GUI is the ability to view Completes Before edges, both Inter process and Intra process. (This concept is synonymous with the Happened-before relation, explained here: http://en.wikipedia.org/wiki/Happened-before.) To view these edges, select the verteces (MPI Calls) in the Java GUI that you're interested in, and use the context menu (right-click) to view either type of edge.
javaGUI_II.png

Last edited Feb 26, 2011 at 12:43 AM by geof23, version 5

Comments

No comments yet.