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

Reply via email to