<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7036.0">
<TITLE>RE: [mpich-discuss] child node can't contact parent?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Hi,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The description of error code 11004 in MS docs is,<BR>
<BR>
================================================================<BR>
The requested name is valid and was found in the database, but it does not have the correct associated data being resolved for. The usual example for this is a host name-to-address translation attempt (using gethostbyname or WSAAsyncGetHostByName) which uses the DNS (Domain Name Server). An MX record is returned but no A record&#8212;indicating the host itself exists, but is not directly reachable.<BR>
================================================================<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Looks like the DNS server for your machine does not have information about the computers/hosts in your setup.<BR>
<BR>
Regards,<BR>
Jayesh<BR>
<BR>
-----Original Message-----<BR>
From: owner-mpich-discuss@mcs.anl.gov [<A HREF="mailto:owner-mpich-discuss@mcs.anl.gov">mailto:owner-mpich-discuss@mcs.anl.gov</A>] On Behalf Of Tony Bathgate<BR>
Sent: Wednesday, August 27, 2008 6:28 PM<BR>
To: Jayesh Krishna<BR>
Cc: mpich-discuss@mcs.anl.gov<BR>
Subject: Re: [mpich-discuss] child node can't contact parent?<BR>
<BR>
Hi,<BR>
<BR>
Thanks for the reply.<BR>
I had actually already pinged Computer1 from Computer2 and vice versa.&nbsp;<BR>
The ping works fine.&nbsp; I tried using hostname with mpiexec like you suggested and it works fine too, from both computers.&nbsp; Now I'm baffled.&nbsp;<BR>
I also tried your Hello World program and it crashed.&nbsp; Here's the error messages I got:<BR>
<BR>
C:\helloworld\Debug\&gt; mpiexec -hosts 2 192.168.5.100 192.168.5.200 helloworld.exe Fatal error in MPI_Finalize: Other MPI error, error stack:<BR>
MPI_Finalize&lt;255&gt;............: MPI_Finalize failed<BR>
MPI_Finalize&lt;154&gt;............:<BR>
MPID_Finalize&lt;94&gt;............:<BR>
MPI_Barrier&lt;406&gt;.............: MPI_Barrier &lt;comm=0x44000002&gt;<BR>
MPIR_Barrier&lt;77&gt;.............:<BR>
MPIC_Sendrecv&lt;120&gt;...........:<BR>
MPID_Isend&lt;103&gt;..............: failure occured while attempting to send an eager message<BR>
MPIDI_CH3_iSend&lt;172&gt;.........:<BR>
MPIDI_CH3I_Sock_connect&lt;1191&gt;: unable to connect to rank 0 using business card &lt;port=8673 description=computer1.usask.ca ifname=192.168.5.100&gt;<BR>
MPIDU_Sock_post_connect&lt;1244&gt;: gethostbyname failed, The requested name is valid, but no data of the requested type was found. &lt;errno 11004&gt; job aborted:<BR>
rank: node: exit code[: error message]<BR>
0: 192.168.5.100: 1<BR>
1: 192.168.5.200: 1: Fatal error in MPI_Finalize: Other MPI error, error<BR>
stack:<BR>
MPI_Finalize&lt;255&gt;............: MPI_Finalize failed<BR>
MPI_Finalize&lt;154&gt;............:<BR>
MPID_Finalize&lt;94&gt;............:<BR>
MPI_Barrier&lt;406&gt;.............: MPI_Barrier &lt;comm=0x44000002&gt;<BR>
MPIR_Barrier&lt;77&gt;.............:<BR>
MPIC_Sendrecv&lt;120&gt;...........:<BR>
MPID_Isend&lt;103&gt;..............: failure occured while attempting to send an eager message<BR>
MPIDI_CH3_iSend&lt;172&gt;.........:<BR>
MPIDI_CH3I_Sock_connect&lt;1191&gt;: unable to connect to rank 1 using business card &lt;port=8673 description=computer1.usask.ca ifname=192.168.5.100&gt;<BR>
MPIDU_Sock_post_connect&lt;1244&gt;: gethostbyname failed, The requested name is valid, but no data of the requested type was found. &lt;errno 11004&gt;<BR>
<BR>
So it seems to me that it can execute programs remotely but not when the program relies on the MPICH2 c implementation libraries.&nbsp; Does that make sense, and how could it be remedied?<BR>
<BR>
Thanks again,<BR>
Tony<BR>
<BR>
Jayesh Krishna wrote:<BR>
&gt;<BR>
&gt;&nbsp; Hi,<BR>
&gt;&nbsp;&nbsp; Looks like something is wrong with the setup of your machines.<BR>
&gt;<BR>
&gt; # Can you ping from one machine to the other ?<BR>
&gt;<BR>
&gt;&nbsp;&nbsp; - From Computer1 try pinging Computer2<BR>
&gt;&nbsp;&nbsp; - From Computer2 try pinging Computer1<BR>
&gt;<BR>
&gt; # Start debugging by running a non-MPI program (like hostname)<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp; mpiexec -hosts 2 IPAddress_Of_Computer1 IPAddress_Of_Computer2<BR>
&gt; hostname<BR>
&gt;<BR>
&gt; # Then debug with a simple hello world program (don't debug your setup<BR>
&gt; with a complex program)<BR>
&gt;<BR>
&gt; ----------------- hello world --------------- #include &lt;stdio.h&gt;<BR>
&gt; #include &quot;mpi.h&quot;<BR>
&gt;<BR>
&gt; int main(int argc, char *argv[]){<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int rank=-1;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Init(&amp;argc, &amp;argv);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Comm_rank(MPI_COMM_WORLD, &amp;rank);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; printf(&quot;[%d] Hello world\n&quot;, rank);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Finalize();<BR>
&gt; }<BR>
&gt; ----------------- hello world ---------------<BR>
&gt;<BR>
&gt;&nbsp; Let us know the results.<BR>
&gt;<BR>
&gt; Regards,<BR>
&gt; Jayesh<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: owner-mpich-discuss@mcs.anl.gov<BR>
&gt; [<A HREF="mailto:owner-mpich-discuss@mcs.anl.gov">mailto:owner-mpich-discuss@mcs.anl.gov</A>] On Behalf Of Tony Bathgate<BR>
&gt; Sent: Wednesday, August 27, 2008 3:31 PM<BR>
&gt; To: mpich-discuss@mcs.anl.gov<BR>
&gt; Subject: [mpich-discuss] child node can't contact parent?<BR>
&gt;<BR>
&gt; Hi All,<BR>
&gt;<BR>
&gt; I apologize in advance for the length of this email; I'm new to the<BR>
&gt; world of MPI and I want to include everything that might be relevant.<BR>
&gt; I have the Win32 IA32 binary of MPICH2 installed on two machines.&nbsp;<BR>
&gt; They are running Windows XP Pro. x64 Edition with Service Pack 2 and<BR>
&gt; they each have an Intel Xeon processor.&nbsp; To simplify things I took<BR>
&gt; them off our network, gave them their own router, and dropped their<BR>
&gt; Windows firewalls.&nbsp; I have assigned the machines static IP's with the<BR>
&gt; router (192.168.5.100 for Computer1, and 192.168.5.200 for Computer2).&nbsp;<BR>
&gt; I've registered the local Administrator accounts (which have identical<BR>
&gt; passwords and credentials) with mpiexec on each machine.&nbsp; And<BR>
&gt; everything below was attempted from the Administrator account.<BR>
&gt;<BR>
&gt; I've tried running the cpi.exe example but it just hangs:<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; C:\Program Files (x86)\MPICH2\examples&gt; mpiexec -hosts 2 Computer1<BR>
&gt; Computer2 .\cpi.exe<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Enter the number of intervals: (0 quits) 1<BR>
&gt;<BR>
&gt; (here I waited about 20 minutes, then Ctrl+C)<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; mpiexec aborting job<BR>
&gt;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; job aborted:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; rank: node: exit code[: error message]<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; 0: Computer1: 123: mpiexec aborting job<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; 1: Computer2: 123<BR>
&gt;<BR>
&gt; It runs perfectly fine if I have it execute it with the -localonly tag.<BR>
&gt; To explore this issue I wrote a simple program that uses<BR>
&gt; MPI_Comm_spawn to spawn a worker program.&nbsp; The master then sends the<BR>
&gt; worker a message and they both exit.&nbsp; The manager node runs the code<BR>
&gt; that follows here:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;mpi.h&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;stdio.h&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; int main (int argc, char* argv[])<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; someVariable = 10;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Info&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; info;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Comm&nbsp;&nbsp;&nbsp;&nbsp; workercomm;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Request&nbsp;&nbsp; request;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status;<BR>
&gt;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Init( &amp;argc, &amp;argv );<BR>
&gt;&nbsp;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf( stdout, &quot;In Master - someVariable = %i&nbsp; \n&quot;,<BR>
&gt; someVariable );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fflush( stdout );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Info_create( &amp;info );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Info_set( info, &quot;host&quot;, &quot;Computer2&quot; );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Comm_spawn( &quot;C:\\MPIworker\\Debug\\MPIworker.exe&quot;,<BR>
&gt; MPI_ARGV_NULL,<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1, info, 0, MPI_COMM_SELF, &amp;workercomm,<BR>
&gt; MPI_ERRCODES_IGNORE );<BR>
&gt;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Info_free( &amp;info );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Isend( &amp;someVariable, 1, MPI_INT, 0, 0, workercomm,<BR>
&gt; &amp;(request) );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Waitall( 1, request, status );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stdout,&quot;Done sending\n&quot;);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fflush(stdout);<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Finalize();<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&gt; The worker code follows here:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;mpi.h&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; #include &lt;stdio.h&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; int main (int argc, char* argv[])<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; someVariable = 0;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Comm&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; parentcomm;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Request&nbsp;&nbsp;&nbsp; request;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Status&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; status;<BR>
&gt;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Init( &amp;argc, &amp;argv );<BR>
&gt;&nbsp;&nbsp;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf(stdout, &quot;In Worker: Before receive - someVariable = %i<BR>
&gt; \n&quot;,someVariable);<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fflush( stdout );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Comm_get_parent( &amp;parentcomm );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Irecv( &amp;someVariable, 1, MPI_INT, 0, 0, parentcomm,<BR>
&gt; &amp;request );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Wait( &amp;request, &amp;status );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fprintf( stdout, &quot;After receive - someVariable = %i\n&quot;,<BR>
&gt; someVariable );<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; fflush( stdout );<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; MPI_Finalize();<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>
&gt;<BR>
&gt; When I run this code I get the following results:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; C:\MPImanager\Debug\&gt; mpiexec -n 1 MPImanager.exe<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; In Master - someVariable = 10<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Fatal error in MPI_Init: Other MPI error, error stack:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIR_Init_thread&lt;294&gt;............................:Initialization<BR>
&gt; failed<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPID_Init&lt;242&gt;...................................:Spawned process<BR>
&gt; group was unable to connect back to parent on port &lt;tag=0 port=8673<BR>
&gt; description=computer1.usask.ca ifname=192.168.5.100&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPID_Comm_connect&lt;187&gt;...........................:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_Comm_connect&lt;369&gt;..........................:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_Create_inter_root_communicator_connect&lt;133&gt;:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_CH3I_Connect_to_root_sock&lt;289&gt;.............:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDU_Sock_post_connect&lt;1228&gt;....................: unable to<BR>
&gt; connect to computer1.usask.ca on port 8673, exhuasted all endpoints<BR>
&gt; &lt;errno -1&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDU_Sock_post_connect&lt;1244&gt;....................: gethostbyname<BR>
&gt; failed, The requested name is valid, but no data of the requested type<BR>
&gt; was found. &lt;errno 11004&gt;<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; Job aborted:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; rank: node: exit code[: error message]<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; 0: computer2: 1: fatal error in MPI_Init: other MPI error, error<BR>
&gt; stack:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIR_Init_thread&lt;294&gt;............................:Initialization<BR>
&gt; failed<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPID_Init&lt;242&gt;...................................:Spawned process<BR>
&gt; group was unable to connect back to parent on port &lt;tag=0 port=8673<BR>
&gt; description=computer1.usask.ca ifname=192.168.5.100&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPID_Comm_connect&lt;187&gt;...........................:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_Comm_connect&lt;369&gt;..........................:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_Create_inter_root_communicator_connect&lt;133&gt;:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDI_CH3I_Connect_to_root_sock&lt;289&gt;.............:<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDU_Sock_post_connect&lt;1228&gt;....................: unable to<BR>
&gt; connect to computer1.usask.ca on port 8673, exhuasted all endpoints<BR>
&gt; &lt;errno -1&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; MPIDU_Sock_post_connect&lt;1244&gt;....................: gethostbyname<BR>
&gt; failed, The requested name is valid, but no data of the requested type<BR>
&gt; was found. &lt;errno 11004&gt;<BR>
&gt;<BR>
&gt; (Here I waited several minutes before pressing ctrl+c)<BR>
&gt;<BR>
&gt;&nbsp;&nbsp;&nbsp;&nbsp; mpiexec aborting job ...<BR>
&gt;<BR>
&gt; (Here I waited several more minutes before pressing ctrl+c and<BR>
&gt; returning to the command prompt)<BR>
&gt;<BR>
&gt; So the program is able to spawn a process on the worker, but then when<BR>
&gt; the worker is unable to contact the manager node MPI_Init fails.&nbsp; The<BR>
&gt; error stack shows that it has the correct IP address and tries to use<BR>
&gt; port 8673.&nbsp; At first I thought the problem might be that it was<BR>
&gt; appending the domain name (usask.ca) from their old network, but the<BR>
&gt; IP address is still correct so now I'm not sure.<BR>
&gt;<BR>
&gt; If I change the code so Computer2 is the manager and Computer1 is the<BR>
&gt; worker the results are the same.&nbsp; But just like cpi.exe if I confine<BR>
&gt; both the worker and the manager to the local host it performs<BR>
&gt; perfectly.&nbsp; I assume this is an issue with either the way I've set up<BR>
&gt; my network, or the way I've set up MPICH2 on the computers.&nbsp; Does<BR>
&gt; anyone know what would cause an error like this?<BR>
&gt;<BR>
</FONT>
</P>

</BODY>
</HTML>