[MPICH] Name Publishing
lunasole at interfree.it
lunasole at interfree.it
Fri Sep 16 09:37:02 CDT 2005
No, there isn't. the machine is connect with Ethernet.
i'd runned with "< /dev/null" the client.
>Is there a shared file system between the machines on which the client and
>server are running? The version of MPICH2 you are using, I believe, requires a
>common file system. It will not be needed in the next release.
>
>Also, you don't need to todo "< /dev/null" on the client, only on the server if
>you are running it in the background.
>
>Rajeev
>
>> -----Original Message----- > From: lunasole at interfree.it
>[mailto:lunasole at interfree.it] > Sent: Friday, September 16, 2005 4:24 AM
>> To: thakur at mcs.anl.gov; mpich-discuss at mcs.anl.gov
>> Subject: Re: RE: RE: [MPICH] Name Publishing
>>
>>
>> Hi Rajeev,
>>
>> i'd a problem by launching the client on another processor.
>> the MPI_Lookup_name returns a portname differents from server.
>> this portname is local port and it isn't the server port.
>> i launched the server with mpiexec -n 1 server < /dev/null
>> command; i launched the client with mpiexec -n 1 client <
>> /dev/null on another machine.
>> how can I resolve this?
>> thank's
>> Rosalia
>>
>> >You need to make sure that you run it as
>> > mpiexec -n 1 server < /dev/null &
>> >and not simply
>> > mpiexec -n 1 server &
>> >
>> >Does the program run after that?
>> >
>> >Rajeev
>> >
>> >> -----Original Message----- > From: lunasole at interfree.it
>> >[mailto:lunasole at interfree.it] > Sent: Monday, August 29,
>> 2005 3:02 AM
>> >> To: thakur at mcs.anl.gov; mpich-discuss at mcs.anl.gov
>> >> Subject: Re: RE: [MPICH] Name Publishing
>> >>
>> >>
>> >> i used MPICH2 version 1.0.2 on Linux (mpich2-1.0.2p1.tar.gz).
>> >> i runned the server in background with mpiexec command.
>> >> thank's
>> >>
>> >>
>> >> >I can run these programs with our latest source in CVS
>> >> without any problem.
>> >> >Which version of MPICH2 are you using? Try version 1.0.2 if
>> >> you are using an
>> >> >older version. (I didn't check whether this works with 1.0.2).
>> >> >
>> >> >Are you running the server in the background? If so, you
>> >> need to do mpiexec -n 1
>> >> >server < /dev/null &
>> >> >
>> >> >Rajeev
>> >> >
>> >> >> -----Original Message----- > From:
>> owner-mpich-discuss at mcs.anl.gov
>> >> >> [mailto:owner-mpich-discuss at mcs.anl.gov] On Behalf Of
>> >> >> lunasole at interfree.it
>> >> >> Sent: Tuesday, August 02, 2005 2:20 AM
>> >> >> To: mpich-discuss at mcs.anl.gov
>> >> >> Subject: [MPICH] Name Publishing
>> >> >>
>> >> >>
>> >> >> Hi
>> >> >> I impemented a simple application Client/Server using Name
>> >> Publishing.
>> >> >>
>> >> >> I launched Server with mpiexec command. The Server associated
>> >> >> a port name with a private name "SERVER". After I
>> >> >>
>> >> >> launched client on another machine. It looked the port name
>> >> >> up by passing name "SERVER" to MPI_Lookup_name.
>> >> >>
>> >> >> with LAM I have no problem for this implementation.
>> >> >> with MPICH2 i have the following error message on client side:
>> >> >>
>> >> >> ercole Name_Server]$ mpiexec -n 1 -path
>> >> >> sample_MPICH2_MPI/MPI-2/Name_Server/ client
>> >> >>
>> >> >> Port_name= port#32867$description#ercole$rank 0 in
>> >> >> job 1 ercole_32771 causedcollective abort of all ranks
>> >> >> exit status of rank 0: killed by signal 9
>> >> >>
>> >> >> What is the problem?
>> >> >>
>> >> >> Thank's.
>> >> >> Rosalia Salvatore
>> >> >>
>> >> >>
>> >> >> Client and Server implementation:
>> >> >>
>> >> >> //SERVER
>> >> >> #include <stdio.h>
>> >> >> #include <mpi.h>
>> >> >>
>> >> >> #define NUM_LOOP 200
>> >> >> #define MAX_DATA 200
>> >> >> #define TIMER_ELAPSED \
>> >> >> ( ( tv2.tv_usec - tv1.tv_usec ) \
>> >> >> + ( ( tv2.tv_sec - tv1.tv_sec) * 1.E6 ) )
>> >> >>
>> >> >> int main (int argc, char* argv[])
>> >> >> {
>> >> >> int rank, size,again,i;
>> >> >> static int count=0;
>> >> >> MPI_Comm client;
>> >> >> MPI_Status status;
>> >> >> char port_name[MPI_MAX_PORT_NAME];
>> >> >> double buf[MAX_DATA];
>> >> >> int time[NUM_LOOP];
>> >> >>
>> >> >> MPI_Init(&argc,&argv); /* Initialize MPI */
>> >> >> MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* Get rank */
>> >> >> MPI_Comm_size(MPI_COMM_WORLD,&size); /* Get size of the LAM
>> >> >> universe */
>> >> >> if (size != 1)
>> >> >> {
>> >> >> printf("Error");
>> >> >> return -1;
>> >> >> }
>> >> >> //printf("CIAO\n");
>> >> >> MPI_Open_port (MPI_INFO_NULL,port_name);
>> >> >> printf("port_name= %s\n", port_name);
>> >> >> MPI_Publish_name("SERVER",MPI_INFO_NULL,port_name);
>> >> >> printf("waiting...\n");
>> >> >> while(1)
>> >> >> {
>> >> >> MPI_Comm_accept (port_name, MPI_INFO_NULL, 0,
>> >> >> MPI_COMM_WORLD, &client);
>> >> >> again=1;
>> >> >>
>> >> >> while (again == 1)
>> >> >> {
>> >> >> printf("\nReceive\n");
>> >> >>
>> >> >> MPI_Recv(buf,MAX_DATA,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,
>> >> >> client, &status);
>> >> >> MPI_Send(buf, MAX_DATA, MPI_DOUBLE, 0, 2, client);
>> >> >> printf("MPI_TAG =%d\n ", status.MPI_TAG);
>> >> >>
>> >> >> 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:
>> >> >> //for
>> (i=0;i<MAX_DATA;i++)
>> >> >> //{
>> >> >>
>> printf("buf[%d]= %f",1,buf[1]);
>> >> >> //}//end for
>> >> >>
>> >> >> break;
>> >> >>
>> >> >> default:
>> >> >> MPI_Abort (MPI_COMM_WORLD,1);
>> >> >> break;
>> >> >>
>> >> >> } //end of switch
>> >> >> } //end while again
>> >> >> } //infinity
>> >> >>
>> >> >> }
>> >> >>
>> >> >>
>> >> >>
>> >> >>
>> >> >> // CLIENT
>> >> >> #include <stdio.h>
>> >> >> #include <mpi.h>
>> >> >> #include <sys/time.h>
>> >> >>
>> >> >>
>> >> >> #define LOOP 10000
>> >> >> #define MAX_DATA 200
>> >> >> #define TIMER_ELAPSED \
>> >> >> ( ( tv2.tv_usec - tv1.tv_usec ) \
>> >> >> + ( ( tv2.tv_sec - tv1.tv_sec) * 1.E6 ) )
>> >> >>
>> >> >>
>> >> >> int main (int argc, char* argv[])
>> >> >> {
>> >> >> int rank, size,i, tag=0, done=1;
>> >> >> MPI_Comm server;
>> >> >> MPI_Status status;
>> >> >> char port_name[MPI_MAX_PORT_NAME];
>> >> >> double buf[MAX_DATA];
>> >> >> double var=0.0;
>> >> >> int time[LOOP];
>> >> >> struct timeval tv1, tv2;
>> >> >> FILE *fp;
>> >> >> long max=0, min=20000000;
>> >> >>
>> >> >>
>> >> >> MPI_Init(&argc,&argv); /* Initialize MPI */
>> >> >>
>> >> >> MPI_Comm_rank(MPI_COMM_WORLD, &rank); /* Get rank */
>> >> >> //MPI_Comm_size(MPI_COMM_WORLD,&size); /* Get size of the
>> >> >> LAM universe */
>> >> >>
>> >> >> MPI_Lookup_name("SERVER", MPI_INFO_NULL, port_name);
>> >> >> printf("\nMPI_Lookup_name Port_name= %s", port_name);
>> >> >> MPI_Comm_connect (port_name, MPI_INFO_NULL,0,
>> >> >> MPI_COMM_WORLD, &server);
>> >> >>
>> >> >> for (i=0;i<MAX_DATA;i++)
>> >> >> {
>> >> >> buf[i]= i*2.0;
>> >> >> //printf("buf[%d]= %f\t",i,buf[i]);
>> >> >> }
>> >> >>
>> >> >> tag=2;
>> >> >> for(i=0;i<LOOP;i++)
>> >> >> {
>> >> >> gettimeofday(&tv1, NULL);
>> >> >> MPI_Send(buf, MAX_DATA, MPI_DOUBLE, 0, tag, server);
>> >> >>
>> >> >> MPI_Recv(buf,MAX_DATA,MPI_DOUBLE,MPI_ANY_SOURCE,MPI_ANY_TAG,
>> >> >> server, &status);
>> >> >> gettimeofday(&tv2, NULL);
>> >> >> time[i]=(int)TIMER_ELAPSED;
>> >> >> printf("\nsend and receive con buf[%d]= %f\n",1,buf[1]);
>> >> >> printf("Client Tempo[%d]= %d\n",i, time[i]);
>> >> >>
>> >> >> } //end for
>> >> >> tag=1;
>> >> >> MPI_Send(buf, MAX_DATA, MPI_DOUBLE, 0, tag, server);
>> >> >> printf("\nSend con tag 1\n");
>> >> >>
>> >> >> MPI_Comm_disconnect(&server);
>> >> >> MPI_Finalize();
>> >> >>
>> >> >> /* *************** TIME RESULTS ***************** */
>> >> >> fp= fopen("Results.txt","w");
>> >> >> for(i=0;i<LOOP;i++)
>> >> >> {
>> >> >> fprintf(fp,"%d %ld \n", i+1 ,time[i]);
>> >> >> var=var+time[i];
>> >> >> if(time[i]<min) min=time[i];
>> >> >> if(time[i]>max) max=time[i];
>> >> >> }
>> >> >>
>> >> >> var=var/LOOP-1;
>> >> >> printf("Tempo del client %d = %f usec\n",rank,var);
>> >> >>
>> >> >> fprintf(fp,"LATENCY TIME MIN = %ld microsec\n", min);
>> >> >> fprintf(fp,"LATENCY TIME MAX = %ld microsec\n", max);
>> >> >> fprintf(fp,"LATENCY TIME AVERAGE = %f microsec\n", var);
>> >> >>
>> >> >> fclose (fp);
>> >> >> return 0;
>> >> >>
>> >> >> }
>> >> >>
>> >> >>
>> >> >>
>> >> >> --------------------------------------------------------------
>> >> >> -----------
>> >> >> Visita http://domini.interfree.it, il sito di Interfree
>> >> dove trovare
>> >> >> soluzioni semplici e complete che soddisfano le tue esigenze
>> >> >> in Internet,
>> >> >> ecco due esempi di offerte:
>> >> >>
>> >> >> - Registrazione Dominio: un dominio con 1 MB di spazio disco
>> >> >> + 2 caselle
>> >> >> email a soli 18,59 euro
>> >> >> - MioDominio: un dominio con 20 MB di spazio disco + 5
>> >> caselle email
>> >> >> a soli 51,13 euro
>> >> >>
>> >> >> Vieni a trovarci!
>> >> >>
>> >> >> Lo Staff di Interfree
>> >> >> --------------------------------------------------------------
>> >> >> -----------
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> >
>> >>
>> >> --------------------------------------------------------------
>> >> -----------
>> >> Visita http://domini.interfree.it, il sito di Interfree
>> dove trovare
>> >> soluzioni semplici e complete che soddisfano le tue esigenze
>> >> in Internet,
>> >> ecco due esempi di offerte:
>> >>
>> >> - Registrazione Dominio: un dominio con 1 MB di spazio disco
>> >> + 2 caselle
>> >> email a soli 18,59 euro
>> >> - MioDominio: un dominio con 20 MB di spazio disco + 5
>> caselle email
>> >> a soli 51,13 euro
>> >>
>> >> Vieni a trovarci!
>> >>
>> >> Lo Staff di Interfree
>> >> --------------------------------------------------------------
>> >> -----------
>> >>
>> >>
>> >
>> >
>> >
>>
>> --------------------------------------------------------------
>> -----------
>> Visita http://domini.interfree.it, il sito di Interfree dove trovare
>> soluzioni semplici e complete che soddisfano le tue esigenze
>> in Internet,
>> ecco due esempi di offerte:
>>
>> - Registrazione Dominio: un dominio con 1 MB di spazio disco
>> + 2 caselle
>> email a soli 18,59 euro
>> - MioDominio: un dominio con 20 MB di spazio disco + 5 caselle email
>> a soli 51,13 euro
>>
>> Vieni a trovarci!
>>
>> Lo Staff di Interfree
>> --------------------------------------------------------------
>> -----------
>>
>>
>
>
>
-------------------------------------------------------------------------
Visita http://domini.interfree.it, il sito di Interfree dove trovare
soluzioni semplici e complete che soddisfano le tue esigenze in Internet,
ecco due esempi di offerte:
- Registrazione Dominio: un dominio con 1 MB di spazio disco + 2 caselle
email a soli 18,59 euro
- MioDominio: un dominio con 20 MB di spazio disco + 5 caselle email
a soli 51,13 euro
Vieni a trovarci!
Lo Staff di Interfree
-------------------------------------------------------------------------
More information about the mpich-discuss
mailing list