Open MPI logo

Open MPI User's Mailing List Archives

  |   Home   |   Support   |   FAQ   |   all Open MPI User's mailing list

From: George Bosilca (bosilca_at_[hidden])
Date: 2007-05-18 17:53:21


On May 18, 2007, at 5:25 PM, Adrian Knoth wrote:

> If you don't want to parse dynamic ports or you don't want to lower
> your
> MPI performance due to --enable-debug, you can easily change the
> code to
> use a static port:

As the linux kernel need some time before completely cleaning up the
socket, this approach can lead to many problems. The most common is
that a subsequent run will be unable to bind the port as it will be
still considered in use by the kernel (even if the previous run
closed the attached socket). There are solutions around these
problems but they are not simple to implement. Another common problem
is that you will be unable to have 2 processes of the same type (here
I'm referring to MPI processes) on the same node.

   george.

>
> For the BTL, see btl_tcp_component.c:
>
> Line 522, in function mca_btl_tcp_component_create_listen:
>
> if ((error = getaddrinfo(NULL, "0", &hints, &res))) {
>
> change the "0" to your desired port, or if you compile without IPv6,
> change line 546:
>
> inaddr.sin_port = 0;
>
> For the OOB (wire-up connection), change oob_tcp.c:445 and/or
> oob_tcp.c:469, the code is absolutely the same.
>
>
> You can optionally create two parameters (one for oob_tcp and one
> for btl_tcp)
> to set the ports from your mca-params.conf. Creating parameters isn't
> that hard, you'll find examples inside the code (i.e.
> btl_tcp_disable_family).