Sreenihdi,

Maintenance of the "other" files is, at least, required for older compilers
(including several non-GNU ones) which have support for GCC inline ASM
constructs but do not include the __sync functions.

Additionally, the __sync functions always include a full memory fence while
there are places where Open MPI only needs Acquire or Release.  In that
sense the use of the GCC builtin atomics is not always an "optimization".

-Paul

On Wed, Mar 30, 2016 at 4:19 AM, Sreenidhi Bharathkar Ramesh <
sreenidhi-bharathkar.ram...@broadcom.com> wrote:

> Hello,
>
> I did few more experiments.  Built-in atomics are disabled by default and
> can be enabled by "--enable-builtin-atomics".  With this option, a
> different atomic file is include  (I mean, different from the other three
> mentioned in the earlier email).
>
> opal/include/opal/sys/sync_builtin/atomic.h
>
>  By enabling "--enable-builtin-atomics", the OpenMPI library will not only
> get the latest optimizations from GCC __sync functions, but also get all
> additional functions, such as <__sync_or_and_fetch>  <__sync_and_and_fetch>
> etc.  Also, this way, the arch/*.asm files need not be maintained.
>
> Seems there is more of an advantage to have "--enable-builtin-atomics".
> Am I missing something ?  Please let me know your thoughts.
>
> Thanks,
> - Sreenidhi.
>
> On Wed, Mar 30, 2016 at 10:33 AM, Sreenidhi Bharathkar Ramesh <
> sreenidhi-bharathkar.ram...@broadcom.com> wrote:
>
>> Hello,
>>
>> With respect to atomic operations in assembly, I can see three source
>> files, for the same AMD64 architecture.
>>
>> 1. opal/asm/base/AMD64.asm
>> 2. opal/include/opal/sys/amd64/atomic.h
>> 3. opal/include/opal/sys/atomic_impl.h
>>
>> What is the need for three files ?  How are they inter-related ?
>>
>> Please let me know.
>>
>> Thanks,
>> - Sreenidhi.
>>
>
>
> _______________________________________________
> devel mailing list
> de...@open-mpi.org
> Subscription: http://www.open-mpi.org/mailman/listinfo.cgi/devel
> Link to this post:
> http://www.open-mpi.org/community/lists/devel/2016/03/18733.php
>



-- 
Paul H. Hargrove                          phhargr...@lbl.gov
Computer Languages & Systems Software (CLaSS) Group
Computer Science Department               Tel: +1-510-495-2352
Lawrence Berkeley National Laboratory     Fax: +1-510-486-6900

Reply via email to