Computer Science Department Faculty of Graduate Studies Al-Quds University
[Link] RUNNING WIZARD
Coded and prepared by: Ahmad Z. Imair (emaznm@[Link])
Introduction to [Link]
[Link] is a high-performance, easy-to-use implementation of the Message Passing Interface (MPI) for Microsoft's .NET environment. MPI is the de facto standard for writing parallel programs running on a distributed memory system, such as a compute cluster, and is widely implemented. Most MPI implementations provide support for writing MPI programs in C, C++, and Fortran. [Link] provides support for all of the .NET languages (especially C#), and includes significant extensions (such as automatic serialization of objects) that make it far easier to build parallel programs that run on clusters.
MPI Programming Model
The MPI programming model is, as its name implies, is based on message passing. In a message-passing system, different concurrentlyexecuting processes communicate by sending messages from one to another over a network. Unlike multi-threading, where different threads share the same program state, each of the MPI processes has its own, local program state that cannot be observed or modified by any other process except in response to a message. Therefore, the MPI processes themselves can be as distributed as the network permits, with different processes running on different machines or even different architectures.
Most MPI programs are written with the Single Program, Multiple Data (SPMD) parallel model, where each of the processes is running the same program but working on a different part of the data. SPMD processes will typically perform a significant amount of computation on the data that is available locally (within that process's local memory),
communicating with the other processes in the parallel program at the boundaries of the data. For example, consider a simple program that computes the sum of all of the elements in an array. The sequential program would loop through the array summing all of the values to produce a result. In a SPMD parallel program, the array would be broken up into several different pieces (one per process), and each process would sum the values in its local array (using the same code that the sequential program would have used). Then, the processes in the parallel program would communicate to combine their local sums into a global sum for the array.
MPI supports the SPMD model by allowing the user to easily launch the same program across many different machines (nodes) with a single command. Initially, each of the processes is identical, with one distinguishing characteristic: each process is assigned a rank, which uniquely identifies that process. The ranks of MPI processes are integer values from 0 to P-1, where P is the number of processes launched as part of the MPI program. MPI processes can query their rank, allowing different processes in the MPI program to have different behavior, and exchange messages with other processes in the same job via their ranks.
[Link] RUNNING WIZARD
This is a simple application use to run any [Link] application easily by selecting your MPI application
After selecting your project you have to specify the number of copies of your project to run in this example we select 2 (tow copies)
To run the project press on Run button
To view the result of your project in full view screen, you can press on Full view button
I hope to be this simple application helpful for those student and developer who interest in developing MPI application using [Link] library ([Link] To download [Link] RUNNING WIZARD software for free click here:
[Link]