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