none
MSMPI - creating a cluster RRS feed

  • Question

  • Hello! I want to create a cluster on my local network. All machines in "home network". I created user "cluster" on both machines, installed HPC Pack 2012 MS-MPI Redistributable Package with Service Pack 1. I created a simple program. It works on localhost:

    mpiexec -n 2 \\BIGBROTHER\MPI\mpi_hello.exe

    But I don't know, how to join a node to my headnode?

    I exec on node LITTLESISTER:

    runas /user:LITTLESISTER\cluster "C:\Program Files\...\smpd.exe -d"

    It run smpd on child node.

    On headnode (BIGBROTHER) I exec:

    runas /user:BIGBROTHER\cluster "mpiexec -hosts 1 LITTLESISTER \\BIGBROTHER\MPI\mpi_hello.exe"

    So, in smpd window on LITTLESISTER it return error:

    "[01:2972] ERROR: unable to post a read on stdout context, error 109"

    Please, help me! Thank you!

    Friday, December 6, 2013 10:18 AM

Answers

  • Hi Ivanov,

    The issue you're seeing is that runas creates a window for mpiexec and when mpiexec finishes, the window is closed. You can keep the window around by running it within cmd.

    Try this:

    runas /user:BIGBROTHER\cluster "cmd /K mpiexec -hosts 2 BIGBROTHER 1 LITTLESISTER 1 \\BIGBROTHER\MPI\mpi_hello.exe"

    Let me know if that does not work

    Anh

    Friday, December 6, 2013 9:48 PM

All replies

  • Hi there,

    1) Do both littleuser\cluster and bigbrother\cluster have the same password? Since they're not sharing a domain, they should be users with same password.

    2) Have you enable firewall rules for smpd, mpiexec on both machines? If mpi_hello needs cross-box communication, firewall rules have to be enabled for it as well

    3) If you have done both the above and it still fails, can you post the full log of smpd?

    Thanks

    Anh

    Friday, December 6, 2013 4:44 PM
  • Hi, Anh! I use it on Windows 7, maybe, it is problem? I don't have Server version of Windows, and I can't use it, only Windows 7.

    1) Yes, user "cluster" have a password "cluster" on both machines.

    2) Yes, I enabled mpi_hello, mpiexec and smpd in firewall.

    So, there is a strange behavior:

    1) When I started smpd under "cluster" user on both machines and run mpi_hello on BIGBROTHER with:

    runas /user:BIGBROTHER\cluster "mpiexec -hosts 2 BIGBROTHER 1 LITTLESISTER 1 \\BIGBROTHER\MPI\mpi_hello.exe"

    Window of "mpiexec -hosts 2 BIGBROTHER 1 LITTLESISTER 1 \\BIGBROTHER\MPI\mpi_hello.exe" displayed, but there is no action. Just black screen with blinking "_". I may to writing something in the window, but there is no action.

    ----------------update----------------------

    When I recompilatied my program with "std::cin.get();" before "return 0" I see that it works! Both machines send message, that they are working. But I don't know, how to keep console before I press anykey? With "std::cin.get();" the window of mpi_hello don't close. I can write in window, press anykey but there is nothing.

    Friday, December 6, 2013 6:02 PM
  • Hi Ivanov,

    The issue you're seeing is that runas creates a window for mpiexec and when mpiexec finishes, the window is closed. You can keep the window around by running it within cmd.

    Try this:

    runas /user:BIGBROTHER\cluster "cmd /K mpiexec -hosts 2 BIGBROTHER 1 LITTLESISTER 1 \\BIGBROTHER\MPI\mpi_hello.exe"

    Let me know if that does not work

    Anh

    Friday, December 6, 2013 9:48 PM
  • That's work! Thank you!

    My program "printf" some message. BIGBROTHER post it on screen, but on the LITTLESISTER there is a message in smpd window:

     [02:3388] ERROR: unable to post a read on stdout context, error 109

    It is mean that I don't use printf or another print messages on the child nodes? There is a simple program "Hello world on MPI"

    Saturday, December 7, 2013 2:28 PM