Not sure I understand the problem. Your server will have the ability to recv messages from multiple sources on the port it picks. Is there some reason why you want to specify the port for each process?

Note that you can still do so - you just have to do it -before- calling MPI_Init. MPI jobs exchange contact info during MPI_Init so that the connections can be setup. Since you can only send messages via communicator anyway, the port is completely hidden from your code (as it should be).

However, if you -really- need to set the port of each individual rank, you can do so by simply putting the MCA param into the environment prior to calling MPI_Init. Something like this:

foo = "1234";

asprintf(&my_port, "OMPI_MCA_btl_tcp_port_min_v4=%s, foo);
putenv(my_port);

putenv("OMPI_MCA_btl_tcp_port_range_v4=1");

This will set a minimum port number of 1234, and tells the TCP MPI interconnect it can only use that port.

HTH
Ralph

On Jun 26, 2009, at 10:48 AM, Nulik Nol wrote:

On Fri, Jun 26, 2009 at 9:57 AM, Ralph Castain<r...@open-mpi.org> wrote:
How are you trying to use this port? Are you expecting that to be the port
used for MPI communications?

i am thinking to use MPI_Send and MPI_Recv on this connection. One node will run in server mode to server data to others, only one process, multiple
incoming connections. Just a simple (really really simple)
client/server model so i would avoid writing my own socket library for
messaging between nodes over TCP, never thought i am asking too much.

--
==================================
The power of zero is infinite
_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to