[MPICH] a question about MPI - Pblm in Publish/Lookup with SMPD
Jayesh Krishna
jayesh at mcs.anl.gov
Wed Nov 7 16:44:36 CST 2007
Hi,
MPI_Publish_name() and MPI_Lookup_name() work as defined in MPI standard
with the MPD process manager. However MPD is only available on unix. You
could try using MPD on unix or cygwin (Install cygwin on windows. Compile
MPICH2 and run using the MPD process manager. See the user's guide for
details.).
We are also in the process of development of a new process manager which
will replace SMPD. This process manager will be available on windows as well
as unix and will support Publish/lookup (It should be available sometime
early next year.).
(Note: Part of the problem why publish/lookup does not work as defined in
the standard has to do with the design of SMPD. SMPD, unlike MPD, does not
have any prior connection with other SMPDs before launching an MPI job and
hence it is difficult to publish names across multiple MPI jobs.)
Regards,
Jayesh
_____
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of Jayesh Krishna
Sent: Wednesday, November 07, 2007 2:37 PM
To: 'menglige'
Cc: 'mpich-discuss'; mpich2-maint at mcs.anl.gov
Subject: RE: [MPICH] a question about MPI - Pblm in Publish/Lookup with SMPD
Hi,
We are looking into the problem (The problem is not in your code. It is a
bug in the SMPD process manager.). Meanwhile, as a workaround, try putting a
barrier after publish and before lookup and run the programs as below,
mpiexec -n 1 LookupClient.exe : -n 1 PublishServer.exe
The excerpt from the modified files are given below for your reference,
############# LookupClient.c #######################
int main(..){
...
MPI_Get_processor_name(processor_name,&namelen);
MPI_Barrier(MPI_COMM_WORLD);
MPI_Lookup_name(serv_name, MPI_INFO_NULL, port_name_out );
...
}
############# PublishServer.c #######################
int main(...){
...
MPI_Open_port(MPI_INFO_NULL, port);
printf("opened port...<%s>\n", port);
fflush(stdout);
merr = MPI_Publish_name( serv_name, MPI_INFO_NULL, port );
MPI_Barrier(MPI_COMM_WORLD);
...
}
###############################################
Let us know if it works for you.
Regards,
Jayesh
_____
From: owner-mpich-discuss at mcs.anl.gov
[mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of menglige
Sent: Tuesday, November 06, 2007 7:12 PM
To: mpich-discuss
Subject: [MPICH] a question about MPI
HELLO!
i hava two '.exe' ,and i want to send message from one to the other.
i use 'mpiexec' to run send.exe
and then use 'mpiexec' to run receive.exe,
but there is an erro ,receive.exe can find the published port .what 's wrong
with me ??? (i hava attached my code).
THANK YOU VERY MUCH
_____
menglige
2007-11-06
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20071107/aaca8057/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 1662 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/mpich-discuss/attachments/20071107/aaca8057/attachment.gif>
More information about the mpich-discuss
mailing list