[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