You can have OMPI wireup -all- available connections at startup of he processes with

-mca mpi_preconnect_all 1

Be aware of Brock's caution. Also, note that this occurs at MPI_Init so you can adjust your timing marks accordingly.


On Nov 11, 2009, at 10:04 PM, RightCFD wrote:

Date: Thu, 29 Oct 2009 15:45:06 -0400
From: Brock Palen <brockp@umich.edu>
Subject: Re: [OMPI users] mpi functions are slow when first called and
       become normal afterwards
To: Open MPI Users <users@open-mpi.org>
Message-ID: <890CC430-68B0-4307-8260-24A6FADAE319@umich.edu>
Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes

> When MPI_Bcast and MPI_Reduce are called for the first time, they
> are very slow. But after that, they run at normal and stable speed.
> Is there anybody out there who have encountered such problem? If you
> need any other information, please let me know and I'll provide.
> Thanks in advance.

This is expected, and I think you can dig though the message archive
to find the answer.  OMPI does not wireup all the communication at
startup, thus the first time you communicate with a host the
connection is made, but after that it is fast because it is already
open.  This behavior is expected, and is needed for very large systems
where you could run out of sockets for some types of communication
with so many hosts.

Brock Palen
www.umich.edu/~brockp
Center for Advanced Computing
brockp@umich.edu
(734)936-1985

Thanks for your reply. I am surprised to know this is an expected behavior of OMPI. I searched the archival but did not find many relevant messages. I am wondering why other users of OMPI do not complain this. Is there a way to avoid this when timing an MPI program?
_______________________________________________
users mailing list
users@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users