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

</BODY>
</HTML>