[mpich-discuss] MPI_Comm_Spawn and MPI_Open_port/MPI_Comm_accept/MPI_Comm_connect without using mpiexec and smpd

Eric Hui Eric.Hui at ggy.com
Tue Jun 28 14:13:53 CDT 2011


Hi Jayesh,

We are currently using WinSock, so there is no PMI protocol code.  That's why I am starting this investigation.

Suppose that we can add support for the wire protocol in our Windows Service application, then do we still need to use mpiexec / smpd?

What I am trying to figure out is what the mpiexec does when I call MPI_Comm_Spawn or a combination of MPI_Open_port/MPI_Comm_accept/MPI_Comm_connect?

Finally, is PMI specific to the MPICH2 implementation?  I was reading the MPI 2.2 spec and doesn't seem to find any reference to it.

Eric

-----Original Message-----
From: Jayesh Krishna [mailto:jayesh at mcs.anl.gov] 
Sent: Tuesday, June 28, 2011 3:05 PM
To: mpich-discuss at mcs.anl.gov
Cc: Eric Hui
Subject: Re: [mpich-discuss] MPI_Comm_Spawn and MPI_Open_port/MPI_Comm_accept/MPI_Comm_connect without using mpiexec and smpd

 Does your custom process manager (Windows Service) support the PMI wire protocol (protocol used by the PMI library to interact with the process manager)? PMI2 (The newer version of PMI) defines/standardizes the wire protocol and is implemented in the new process manager Hydra. Unfortunately I don't have enough resources to port Hydra to Windows (SMPD only supports PMI-1 and has its own custom wire protocol that you will have to figure out by looking into the code and the debug logs).

Regards,
Jayesh

----- Original Message -----
From: "Eric Hui" <Eric.Hui at ggy.com>
To: mpich-discuss at mcs.anl.gov
Sent: Thursday, June 23, 2011 10:19:26 AM
Subject: [mpich-discuss] MPI_Comm_Spawn and MPI_Open_port/MPI_Comm_accept/MPI_Comm_connect without using mpiexec and smpd




I just started to investigate the possibility of using MPI in our application on the Windows platform. 

Here is what I am trying to accomplish: 

I am trying to use both of the following techniques: 
1. MPI_Comm_Spawn 
2. Client/server model using MPI_Open_port/MPI_Comm_accept/MPI_Comm_connect 

I followed the example code here: 
http://www.mcs.anl.gov/research/projects/mpi/mpi-standard/mpi-report-2.0/node98.htm#Node98 
http://www.mcs.anl.gov/research/projects/mpi/mpi-standard/mpi-report-2.0/node106.htm 
and was able to get them working if I use mpiexec / smpd. However, I want to start the executable without using mpiexec / smpd since we already have our own windows service application to deal with compute node resource allocation. 

I already read through a lot of documentations, but couldn't find my answers to some of the basic problems that I am trying to solve: 

1. Base on the MPI 2.2 document section 8.8 here: 
http://www.mpi-forum.org/docs/mpi-2.2/mpi22-report.pdf 
It's not a requirement to use mpiexec / mpirun to start an MPI program. 
Is there any example available for starting the MPI program without using mpiexec / mpirun? 

2. I found an example that allows debugging without the use of a process manager by setting environment variable in section 9.8 of this doc: 
http://www.mcs.anl.gov/research/projects/mpich2/documentation/files/mpich2-1.3.2-windevguide.pdf 
It noted that this cannot support MPI_Comm_Spawn. Is that a technical limitation or there is a workaround? 

Thanks in advance for your help! 
Eric _______________________________________________ 
mpich-discuss mailing list 
mpich-discuss at mcs.anl.gov 
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss 


More information about the mpich-discuss mailing list