Hi Paul, Thanks for the response, I understand.
I have another question: why is any given operation implemented twice for the same architecture? Ref: opal/asm/base/ARM.asm and opal/include/opal/sys/amd64/atomic.h Please let me know. Thanks, - Sreenidhi. On Thu, Mar 31, 2016 at 2:28 AM, Paul Hargrove <phhargr...@lbl.gov> wrote: > 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 > > _______________________________________________ > 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/18734.php >