Could someone please give me a simple overview of what MPI is?

Posted on 2011-09-06
Medium Priority
Last Modified: 2012-06-27
So I understand that MPI will allow a user to launch one program to run on 10 computers from a master computer.

Q. Is MPI something that one can integrate into an existing developed application?
Q. So how can I connect another computer? Does the extra computer need to be on a lan? or could it be over the internet?

Question by:AivsCoder
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions

Accepted Solution

ssnkumar earned 260 total points
ID: 36493454
I am assuming that, you are asking about "Message Passing Interface".

> Q. Is MPI something that one can integrate into an existing developed application?
You have to develop your application using MPI standard.
MPI is not a plugin kind of a thing - so, you cannot integrate it into an existing developed application.

> Q. So how can I connect another computer? Does the extra computer need to be on a lan? or could it be
> over the internet?
You will need to use socket library (or similar implementation) calls to connect 2 computers.
It doesn't matter whether the computers are on LAN, WAN or Internet.
Each of them should have a network Interface, an IP address which is reachable from the other computer.

You can see how MPI is used to parallelize matrix multiplication here: http://www.daniweb.com/software-development/c/code/334470/1428830#post1428830

Refer the "Practical MPI Programming" for more details at: http://www.redbooks.ibm.com/abstracts/sg245380.html

Read the MPI standard at: http://www.mcs.anl.gov/research/projects/mpi/mpi-standard/mpi-report-1.1/mpi-report.htm

Hope this will give you a good entry to the subject.

Assisted Solution

AJRDev earned 240 total points
ID: 36497261
Basically, you need:

1. A collection (cluster) of machines.
2. An MPI runtime environment on each one.
3. An API (provided by the runtime) to code against, and make use of its functionality.

Application code really needs to be architected from the ground up as parallel and distributed as you will need to decide which operations will be handed off as seperate processes, and how you will recieve the results.

Author Closing Comment

ID: 36814419
Thanks. Useful.

Featured Post

Get free NFR key for Veeam Availability Suite 9.5

Veeam is happy to provide a free NFR license (1 year, 2 sockets) to all certified IT Pros. The license allows for the non-production use of Veeam Availability Suite v9.5 in your home lab, without any feature limitations. It works for both VMware and Hyper-V environments

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Learn how the use of a bunch of disparate tools requiring a lot of manual attention led to a series of unfortunate backup events for one company.
There’s a movement in Information Technology (IT), and while it’s hard to define, it is gaining momentum. Some call it “stream-lined IT;” others call it “thin-model IT.”
The goal of this video is to provide viewers with basic examples to understand opening and writing to files in the C programming language.
Connecting to an Amazon Linux EC2 Instance from Windows Using PuTTY.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question