none
How to run program on multiple machines by mpiexec RRS feed

  • 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.

    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

    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.com
    Tuesday, 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

    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