Answered by:
How to run program on multiple machines by mpiexec

Question
-
Hi all,
I am using MPI.NET to build a parallel program.
I use "mpiexec -n 2 PI.exe" to run it, this command started two processes in my local machine which is XP Pro desktop os.
However, I just wondering whether can I use this command to run the program on different machines?
I refer to the document, I only said there is a hosts option in mpiexec, which I don't know whether I need to copy the program into the machine I want to run the program? where can I specify the location of the app in that host?
Can two XP desktop be put into a computer cluster by mpiexec cmd?
Thanks.
- Changed type Stephen Toub - MSFTMicrosoft employee Tuesday, June 15, 2010 1:56 PM
- Moved by Stephen Toub - MSFTMicrosoft employee Tuesday, June 15, 2010 1:57 PM There's a better forum for this question. (From:Parallel Extensions to the .NET Framework)
Tuesday, June 15, 2010 12:10 PM
Answers
-
It looks like the SMPD process not running on MYCOMNPUTER. Have you started the smpd.exe on each computer?
By the way, you can run mpi applications using job scheduler. For example, you have PI.exe on c:\tests:
job submit /numnodes:2 /workdir:\\%computername%\tests /stdout:pi.txt /stderr:pi.err mpiexec -c 2 PI.exe
It will run PI.exe on 2 comnpute nodes, each with 2 cores. The output is in c:\tests\pi.txt or error c:\tests\pi.err.
Thanks,
James
- Proposed as answer by Don Pattee Wednesday, October 6, 2010 11:44 PM
- Marked as answer by Don Pattee Wednesday, January 12, 2011 2:47 AM
Wednesday, August 4, 2010 9:20 PM
All replies
-
MPI implementations specify how to startup programs using MPI. If they follow the standard, the mpiexec executable should follow the rules defined here. This includes using -host to startup the process remotely on another host.
Different implementations of MPI provide differing levels of support for this - from being able to copy the executable and start it automatically down to having to manually start it on each system, or even having a service of some sort which can launch the executable. Often, it's required that all systems share a single mounted drive for access to the executable.
Unfortunately, I am not 100% familiar with the MPI.NET implementation. I would recommend posting your question to their mailing list, since that implementation is free to handle remote host startup any way it wishes.
Reed Copsey, Jr. - http://reedcopsey.comTuesday, June 15, 2010 5:58 PM -
Hi, the following is a way to run 2 MPI.NET PI.exe on 2 machines (could be XP) as a cluster
1) on each machine, start smpd.exe as: smpd -d
2) copy PI.exe to each machine's c:\tests directory
3) go to one of the machines, run: mpiexec -hosts 2 machine1 1 machine2 1 c:\tests\PI.exe
this will run PI.exe on 2 machines, with each machine running 1 process. The -hosts option's syntax is: -hosts 2 machine1 N machine2 M: where to run N processes on machine1 and M processes on machine2.
If you don't want to copy PI.exe to each machine, it is a little bit complex. the basic process is
a) create a share on some machine. e.g. \\machine1\testshare, copy PI.exe there.
b) use .Net caspol.exe to set up the security policy on the above share.
c) go to one of the machines, run: mpiexec -hosts 2 machine1 1 machine2 1 \\machine1\testshare\PI.exe
hope this helps
Liwei
Thursday, June 17, 2010 2:29 PM -
Hi, the following is a way to run 2 MPI.NET PI.exe on 2 machines (could be XP) as a cluster
1) on each machine, start smpd.exe as: smpd -d
2) copy PI.exe to each machine's c:\tests directory
3) go to one of the machines, run: mpiexec -hosts 2 machine1 1 machine2 1 c:\tests\PI.exe
this will run PI.exe on 2 machines, with each machine running 1 process. The -hosts option's syntax is: -hosts 2 machine1 N machine2 M: where to run N processes on machine1 and M processes on machine2.
If you don't want to copy PI.exe to each machine, it is a little bit complex. the basic process is
a) create a share on some machine. e.g. \\machine1\testshare , copy PI.exe there.
b) use .Net caspol.exe to set up the security policy on the above share.
c) go to one of the machines, run: mpiexec -hosts 2 machine1 1 machine2 1 \\machine1\testshare\PI.exe
hope this helps
Liwei
Hi,I'm appliyng second way and the machine give that error :
Aborting : mpiexec on MYCOMPUTER is unable to connect o msmpi service on MYCOMPUTER : 8677
Other MPI error , error : stack
Connect Failed (986) : unable to connect to 192.. (my ip) on port 8677, exhausted all enpoints
Connect Failed (977) : unable to connec to 192.... (my ip) on port 8677, hedef makine etkin olarak reddetti (target machine actually refused)why it do like this?
Thanks for your helps
Thursday, July 22, 2010 11:58 AM -
It looks like the SMPD process not running on MYCOMNPUTER. Have you started the smpd.exe on each computer?
By the way, you can run mpi applications using job scheduler. For example, you have PI.exe on c:\tests:
job submit /numnodes:2 /workdir:\\%computername%\tests /stdout:pi.txt /stderr:pi.err mpiexec -c 2 PI.exe
It will run PI.exe on 2 comnpute nodes, each with 2 cores. The output is in c:\tests\pi.txt or error c:\tests\pi.err.
Thanks,
James
- Proposed as answer by Don Pattee Wednesday, October 6, 2010 11:44 PM
- Marked as answer by Don Pattee Wednesday, January 12, 2011 2:47 AM
Wednesday, August 4, 2010 9:20 PM -
Hi, i hope you be fine
I'm appliyng first way and the machine give that error :
C:\>mpiexec -hosts 2 10.1.60.5 1 10.1.60.3 1 C:\Hello\bin\Debug\hello.exe
Aborting: Access denied by node '10.1.60.3'.
A common cause: this node is a resource managed by the Compute Cluster scheduler
and mpiexec was attempting to use it without a scheduled job.why it do like this?
Thanks for your helps
Tuesday, April 23, 2013 7:19 AM -
Hi, i hope you be fine
I'm appliyng first way and the machine give that error :
C:\>mpiexec -hosts 2 10.1.60.5 1 10.1.60.3 1 C:\Hello\bin\Debug\hello.exe
Aborting: Access denied by node '10.1.60.3'.
A common cause: this node is a resource managed by the Compute Cluster scheduler
and mpiexec was attempting to use it without a scheduled job.why it do like this?
Thanks for your helps
Tuesday, April 23, 2013 7:21 AM -
Hi, i hope you be fine
I'm appliyng first way and the machine give that error :
C:\>mpiexec -hosts 2 10.1.60.5 1 10.1.60.3 1 C:\Hello\bin\Debug\hello.exe
Aborting: Access denied by node '10.1.60.3'.
A common cause: this node is a resource managed by the Compute Cluster scheduler
and mpiexec was attempting to use it without a scheduled job.why it do like this?
Thanks for your helps
Tuesday, April 23, 2013 7:23 AM -
Hi Jnifer,
If you get this error, it's due to your having installed HPC Pack. HPC Pack manages the compute nodes resources and MPI jobs should be submitted through the job scheduler. If you do want to run MPI manually, you need to stop the msmpi service on the compute nodes.
You can RDP into the compute nodes and execute "net stop msmpi" to stop the msmpi service.
Monday, April 29, 2013 7:37 PM