[mpich-discuss] mpi error

Jayesh Krishna jayesh at mcs.anl.gov
Tue Apr 3 10:21:26 CDT 2012


Hi,
 Which version of MPICH2 are you using? How are you running your client/server programs (Copy-paste the command and its output)?

Regards,
Jayesh

----- Original Message -----
From: "moussa boutouil" <b.moussa1989 at live.fr>
To: "mpi" <mpich-discuss at mcs.anl.gov>
Sent: Tuesday, April 3, 2012 9:36:59 AM
Subject: [mpich-discuss] mpi error




Hello, 
I have a client/server program, and I run it in the same machine (I have already installed MPICH2 on my machine which have OS Windows 7 64-bits). 
When I run the server program in commend line, this error appears: 
Fatal error in MPI_Open_port: Other MPI error, error stack: 
MPI_Open_port(124): MPI_Open_port(MPI_INFO_NULL, port=0x003CF6B4) failed 
MPID_Open_port(69): Function not implemented 
****here we have the server code : 
#include "mpi.h" 
#include <cstdio> 
#include "string.h" 
#define MAX_DATA 100 
using namespace std; 
int main( int argc, char **argv ) 
{ 
MPI_Comm server; 
double buf[MAX_DATA]; 
char port_name[MPI_MAX_PORT_NAME]; 

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 ); 

bool done = false; int tag, n = 0; 
while (!done) { 
tag = 2; 
MPI_Send( buf, n++, MPI_DOUBLE, 0, tag, server ); 
} 
MPI_Send( buf, 0, MPI_DOUBLE, 0, 1, server ); 
MPI_Comm_disconnect( &server ); 
MPI_Finalize(); 
return 0; 
} 
****here we have the client code : 
#include "mpi.h" 
#include <cstdio> 
#include "string.h" 
#define MAX_DATA 100 
using namespace std; 


int main( int argc, char **argv ) 
{ 
MPI_Comm client; 
MPI_Status status; 
char por t_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, "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 */ 
break; 
default: 
/* Unexpected message type */ 
MPI_Abort( MPI_COMM_WORLD, 1 ); 
} 
} 
} 
} 




if you have any solution, please help me. 
_______________________________________________
mpich-discuss mailing list     mpich-discuss at mcs.anl.gov
To manage subscription options or unsubscribe:
https://lists.mcs.anl.gov/mailman/listinfo/mpich-discuss


More information about the mpich-discuss mailing list