Open MPI logo

Open MPI Development Mailing List Archives

  |   Home   |   Support   |   FAQ   |  

This web mail archive is frozen.

This page is part of a frozen web archive of this mailing list.

You can still navigate around this archive, but know that no new mails have been added to it since July of 2016.

Click here to be taken to the new web archives of this list; it includes all the mails that are in this frozen archive plus all new mails that have been sent to the list since it was migrated to the new archives.

From: George Bosilca (bosilca_at_[hidden])
Date: 2007-02-13 19:10:44


It's already in the 1.2 !!! I don't know much you care about
performance, but I do. This patch increase by 10% the latency. It
might be correct for the pathscale compiler, but it didn't look as a
huge requirement for all others compilers. A memory barrier for an
initialization and an unlock definitively looks like killing an ant
with a nuclear strike.

How many memory barrier we have now on the critical path ? Are they
all really necessary ? In fact I try to figure out what the problem
is ? Why this doesn't happens with any other compiler ? Is this our
bug or a PathScale compiler bug ? And the last one: What is the
correct way to fix it in a generic way without affecting the
performances by 10%. As a matter of fact, we're already slower than
MPICH2 for shared memory operations, so something is flawed in our
design ...

   Thanks,
     george.

On Feb 13, 2007, at 4:20 PM, gshipman_at_[hidden] wrote:

> Author: gshipman
> Date: 2007-02-13 16:20:59 EST (Tue, 13 Feb 2007)
> New Revision: 13644
>
> Modified:
> trunk/opal/include/opal/sys/atomic_impl.h
>
> Log:
> use memory barriers for lock init and unlock
>
>
> Modified: trunk/opal/include/opal/sys/atomic_impl.h
> ======================================================================
> ========
> --- trunk/opal/include/opal/sys/atomic_impl.h (original)
> +++ trunk/opal/include/opal/sys/atomic_impl.h 2007-02-13 16:20:59
> EST (Tue, 13 Feb 2007)
> @@ -337,6 +337,7 @@
> opal_atomic_init( opal_atomic_lock_t* lock, int value )
> {
> lock->u.lock = value;
> + opal_atomic_mb();
> }
>
>
> @@ -368,6 +369,7 @@
> OPAL_ATOMIC_LOCKED, OPAL_ATOMIC_UNLOCKED);
> */
> lock->u.lock=OPAL_ATOMIC_UNLOCKED;
> + opal_atomic_mb();
> }
>
> #endif /* OPAL_HAVE_ATOMIC_SPINLOCKS */
> _______________________________________________
> svn mailing list
> svn_at_[hidden]
> http://www.open-mpi.org/mailman/listinfo.cgi/svn

"Half of what I say is meaningless; but I say it so that the other
half may reach you"
                                   Kahlil Gibran