Thanks! Works as advertised ... now. I tried it without the quotes but with two \; and this works as well. Not sure to whom to communicate it to but http://www.mpi-forum.org should update their web site.
Thanks again, John On Sun, Apr 14, 2013 at 12:15 PM, Ralph Castain <r...@open-mpi.org> wrote: > Well, first thing is that the example is garbage - cannot work as written. > I've attached corrected versions. > > Even with those errors, though, it got thru comm_connect just fine for me IF > you put quotes around the entire port. With the corrected versions, I get > this: > > $ mpirun -n 1 ./server > server available at > 2795175936.0;tcp://192.168.1.6:61075+2795175937.0;tcp://192.168.1.6:61076:300 > Server loop 1 > Do something ... > Server loop 2 > Do something ... > Server loop 3 > Do something ... > Server loop 4 > Do something ... > Server loop 5 > Do something ... > Server loop 6 > Server recvd terminate cmd > $ > > > $ mpirun -n 1 ./client > "2795175936.0;tcp://192.168.1.6:61075+2795175937.0;tcp://192.168.1.6:61076:300" > Client sending message 0 > Client sending message 1 > Client sending message 2 > Client sending message 3 > Client sending message 4 > Client sending message 5 > $ > > > > > On Apr 13, 2013, at 7:24 PM, John Chludzinski <john.chludzin...@gmail.com> > wrote: > >> Yep, I saw both semi-colons but the client process hangs at: >> >> MPI_Comm_connect( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &server ); >> >> ---John >> >> On Sat, Apr 13, 2013 at 10:05 PM, Ralph Castain <r...@open-mpi.org> wrote: >>> Did you see that there are two semi-colon's in that line? They both need to >>> be protected from the shell. I would just put quotes around the whole thing. >>> >>> Other than that, it looks okay to me...I assume you are using a 1.6 series >>> release? >>> >>> On Apr 13, 2013, at 4:54 PM, John Chludzinski <john.chludzin...@gmail.com> >>> wrote: >>> >>>> After I replaced ";" with "\;" in the server name I got passed the >>>> ABORT problem. Now the client and server deadlock until I finally get >>>> (on the client side): >>>> >>>> mpirun noticed that the job aborted, but has no info as to the process >>>> that caused that situation. >>>> -------------------------------------------------------------------------- >>>> [jski:02429] [[59675,0],0] -> [[59187,0],0] (node: jski) oob-tcp: >>>> Number of attempts to create TCP connection has been exceeded. Cannot >>>> communicate with peer. >>>> >>>> On Sat, Apr 13, 2013 at 7:24 PM, John Chludzinski >>>> <john.chludzin...@gmail.com> wrote: >>>>> Sorry: The previous post was intended for another group, ignore it. >>>>> >>>>> With regards to the client-server problem: >>>>> >>>>> $ mpirun -n 1 client >>>>> 3878879232.0;tcp://192.168.1.4:37625+3878879233.0;tcp://192.168.1.4:38945:300 >>>>> >>>>> [jski:01882] [[59199,1],0] ORTE_ERROR_LOG: Not found in file >>>>> dpm_orte.c at line 158 >>>>> [jski:1882] *** An error occurred in MPI_Comm_connect >>>>> [jski:1882] *** on communicator MPI_COMM_WORLD >>>>> [jski:1882] *** MPI_ERR_INTERN: internal error >>>>> [jski:1882] *** MPI_ERRORS_ARE_FATAL: your MPI job will now abort >>>>> -------------------------------------------------------------------------- >>>>> mpirun has exited due to process rank 0 with PID 1882 on >>>>> node jski exiting improperly. There are two reasons this could occur: >>>>> >>>>> 1. this process did not call "init" before exiting, but others in >>>>> the job did. This can cause a job to hang indefinitely while it waits >>>>> for all processes to call "init". By rule, if one process calls "init", >>>>> then ALL processes must call "init" prior to termination. >>>>> >>>>> 2. this process called "init", but exited without calling "finalize". >>>>> By rule, all processes that call "init" MUST call "finalize" prior to >>>>> exiting or it will be considered an "abnormal termination" >>>>> >>>>> On Sat, Apr 13, 2013 at 7:16 PM, John Chludzinski >>>>> <john.chludzin...@gmail.com> wrote: >>>>>> After I "source mpi.ksk", PATH is unchanged but LD_LIBRARY_PATH is there: >>>>>> >>>>>> $ print $LD_LIBRARY_PATH >>>>>> /usr/lib64/openmpi/lib/ >>>>>> >>>>>> Why does PATH loose its change? >>>>>> >>>>>> ---John >>>>>> >>>>>> >>>>>> On Sat, Apr 13, 2013 at 12:55 PM, Ralph Castain <r...@open-mpi.org> >>>>>> wrote: >>>>>>> You need to pass in the port info that the server printed - just >>>>>>> copy/paste the line below "server available at". >>>>>>> >>>>>>> On Apr 12, 2013, at 10:58 PM, John Chludzinski >>>>>>> <john.chludzin...@gmail.com> wrote: >>>>>>> >>>>>>>> Found the following client-server example (code) on >>>>>>>> http://www.mpi-forum.org and I'm trying to get it to work. Not sure >>>>>>>> what argv[1] should be for the client? The output from the server >>>>>>>> side is: >>>>>>>> >>>>>>>> server available at >>>>>>>> 4094230528.0;tcp://192.168.1.4:55803+4094230529.0;tcp://192.168.1.4:51618:300 >>>>>>>> >>>>>>>> >>>>>>>> // SERVER >>>>>>>> #include <stdio.h> >>>>>>>> #include <error.h> >>>>>>>> #include <errno.h> >>>>>>>> #include "mpi.h" >>>>>>>> >>>>>>>> #define MAX_DATA 100 >>>>>>>> #define FATAL 1 >>>>>>>> >>>>>>>> int main( int argc, char **argv ) >>>>>>>> { >>>>>>>> MPI_Comm client; >>>>>>>> MPI_Status status; >>>>>>>> char port_name[MPI_MAX_PORT_NAME]; >>>>>>>> double buf[MAX_DATA]; >>>>>>>> int size, again; >>>>>>>> >>>>>>>> MPI_Init( &argc, &argv ); >>>>>>>> MPI_Comm_size(MPI_COMM_WORLD, &size); >>>>>>>> if (size != 1) error(FATAL, errno, "Server too big"); >>>>>>>> MPI_Open_port(MPI_INFO_NULL, port_name); >>>>>>>> printf("server available at %s\n",port_name); >>>>>>>> >>>>>>>> while (1) >>>>>>>> { >>>>>>>> MPI_Comm_accept( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, >>>>>>>> &client ); >>>>>>>> again = 1; >>>>>>>> >>>>>>>> while (again) >>>>>>>> { >>>>>>>> MPI_Recv( buf, MAX_DATA, MPI_DOUBLE, MPI_ANY_SOURCE, >>>>>>>> MPI_ANY_TAG, client, &status ); >>>>>>>> >>>>>>>> switch (status.MPI_TAG) >>>>>>>> { >>>>>>>> case 0: MPI_Comm_free( &client ); >>>>>>>> MPI_Close_port(port_name); >>>>>>>> MPI_Finalize(); >>>>>>>> return 0; >>>>>>>> case 1: MPI_Comm_disconnect( &client ); >>>>>>>> again = 0; >>>>>>>> break; >>>>>>>> case 2: /* do something */ >>>>>>>> fprintf( stderr, "Do something ...\n" ); >>>>>>>> default: >>>>>>>> /* Unexpected message type */ >>>>>>>> MPI_Abort( MPI_COMM_WORLD, 1 ); >>>>>>>> } >>>>>>>> } >>>>>>>> } >>>>>>>> } >>>>>>>> >>>>>>>> //CLIENT >>>>>>>> #include <string.h> >>>>>>>> #include "mpi.h" >>>>>>>> >>>>>>>> #define MAX_DATA 100 >>>>>>>> >>>>>>>> int main( int argc, char **argv ) >>>>>>>> { >>>>>>>> MPI_Comm server; >>>>>>>> double buf[MAX_DATA]; >>>>>>>> char port_name[MPI_MAX_PORT_NAME]; >>>>>>>> int done = 0, tag, n, CNT=0; >>>>>>>> >>>>>>>> MPI_Init( &argc, &argv ); >>>>>>>> strcpy(port_name, argv[1] ); /* assume server's name is cmd-line arg >>>>>>>> */ >>>>>>>> >>>>>>>> MPI_Comm_connect( port_name, MPI_INFO_NULL, 0, MPI_COMM_WORLD, &server >>>>>>>> ); >>>>>>>> >>>>>>>> n = MAX_DATA; >>>>>>>> >>>>>>>> while (!done) >>>>>>>> { >>>>>>>> tag = 2; /* Action to perform */ >>>>>>>> if ( CNT == 5 ) { tag = 0; done = 1; } >>>>>>>> MPI_Send( buf, n, MPI_DOUBLE, 0, tag, server ); >>>>>>>> CNT++; >>>>>>>> /* etc */ >>>>>>>> } >>>>>>>> >>>>>>>> MPI_Send( buf, 0, MPI_DOUBLE, 0, 1, server ); >>>>>>>> MPI_Comm_disconnect( &server ); >>>>>>>> MPI_Finalize(); >>>>>>>> >>>>>>>> return 0; >>>>>>>> } >>>>>>>> _______________________________________________ >>>>>>>> users mailing list >>>>>>>> us...@open-mpi.org >>>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> users mailing list >>>>>>> us...@open-mpi.org >>>>>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>>> _______________________________________________ >>>> users mailing list >>>> us...@open-mpi.org >>>> http://www.open-mpi.org/mailman/listinfo.cgi/users >>> >>> >>> _______________________________________________ >>> users mailing list >>> us...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/users >> _______________________________________________ >> users mailing list >> us...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/users > > > _______________________________________________ > users mailing list > us...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/users