Open MPI logo

Open MPI User's Mailing List Archives

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

Subject: Re: [OMPI users] funnel-threaded application blocks from time to time
From: Aurélien Bouteiller (bouteill_at_[hidden])
Date: 2008-02-18 12:38:26


Hi Alex,

We are currently on the process of improving thread safety in Open
MPI. First we need to know which release you have been using to get
into the problem.

the --enable-progress-threads enables an internal feature of Open MPI
to progress
non blocking communications during computations on devices that do not
support dma transfer (mostly tcp and sm). It has known issues and
should not work correctly before the 1.3 release (though hopefully we
plan to fix it in trunk during the next month or so).

The good news are that you do not need this flag to play with funneled
threads. Just use the -enable-mpi-threads should be enough and should
(as far as our tests go) work fine.

Let us know of any problem you encounter, as we are working on it we
are really greedy of bug reports.

Thanks,
Aurelien

Le 18 févr. 08 à 10:30, Alexandru-Adrian TANTAR a écrit :

> Hi everyone,
>
> I have a problem regarding funnel-threaded OpenMPI-based applications.
> The application I try to launch (nothing complicated) blocks during
> the execution from time to time. And I have to say this is quite a
> fun-breaker :D.
>
> I will try to put this in a very simple way: I have the following
> code which does nothing more than a "request" for a funneled
> "environment" which, once initialized, is right away shut down:
>
> #include <mpi.h>
> #include <iostream>
> #include <cassert>
>
> using namespace std;
>
> int main(int argc, char** argv) {
>
> int provided = MPI_THREAD_FUNNELED;
> MPI_Init_thread ( &argc, &argv, MPI_THREAD_FUNNELED,
> &provided );
>
> assert (provided == MPI_THREAD_FUNNELED);
>
> MPI_Finalize();
>
> return 0;
> }
>
>
> For the compilation, I did not specify anything special: mpicxx
> example.cpp -o example
> When launching, in order to test, I used a loop like the following:
>
> for ((i=0;i<100;i++)); do echo $i "<--------- "; mpiexec -n 2 ./
> example; done
>
> Now, the thing is that this usually does not go further than at most
> the 30th iteration. And, of course, I get this also by launching
> manually, just that it takes more time to get there ;).
>
> I would extremely appreciate if someone can give a hint on this. Is
> there anything special that I should look for, is there a
> compilation switch I should turn on, etc.? I get the same behavior
> on bi-cores, 4x-cores, different environments... I don't know if
> this helps but the line I used for configuring the OpenMPI package
> is the following:
>
> ./configure --prefix=/opt/globus/openmpi/ --enable-mpi-cxx
> --enable-shared --enable-smp-locks --enable-cxx-exceptions
> --enable-mpi-threads --enable-progress-threads --enable-io-romio
>
> Thanks in advance for your time and looking forward to your answer(s)!
> Alex
>
>
> _______________________________________________
> users mailing list
> users_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/users

Dr. Aurélien Bouteiller
Sr. Research Associate - Innovative Computing Laboratory
Suite 350, 1122 Volunteer Boulevard
Knoxville, TN 37996
865 974 6321