I'm using mixed MPI/pthreads with MPI_THREAD_MULTIPLE support. At some
point, only one of the threads on each process communicate, while the
others keep waiting in a MPI_Barrier. The traces I took from execution
suggest that the linux scheduler is waking up the threads blocked in the
barrier from time to time, delaying the threads that are actually doing
the hard work.
Is that the correct behaviour or just that it's not optimized yet? I
expected the barriers to use some kind of interrupt mechanism so that
the blocked threads wouldn't get in the way of others. Any thoughts
about how to prevent only some threads stealing cycles?
Dpt. Electrical Engineering - Technical University of Madrid
Avda. Complutense s/n, 28040 Madrid
Tel. (+34) 915495700 ext. 4234