Hello Nathan, Mike and all Thank you for your responses. Let me rephrase them to make sure I understood them correctly, and please correct me if I didn't:
1. Atomics are (have been) used in OSHMEM in the current (v1) release 2. They are (will be) used in the MPI RMA in v2 release, which has not happened yet I am sorry if I sound like I am nitpicking, but the reason I ask is that I am trying to implement a new BTL that I am supposed to demo on a customer's existing OMPI code base (which is obviously v1) but I am doing the development out of the master branch (to avoid porting later), so I am in a bit of spaghetti situation. Thank you Durga Life is complex. It has real and imaginary parts. On Fri, Mar 4, 2016 at 11:06 AM, Nathan Hjelm <hje...@lanl.gov> wrote: > > On Thu, Mar 03, 2016 at 05:26:45PM -0500, dpchoudh . wrote: > > Hello all > > > > Here is a 101 level question: > > > > OpenMPI supports many transports, out of the box, and can be extended > to > > support those which it does not. Some of these transports, such as > > infiniband, provide hardware atomic operations on remote memory, > whereas > > others, such as iWARP, do not. > > > > My question is: how (and where in the code base) does openMPI use this > > feature, on those hardware that support it? What is the penalty, in > terms > > of additional code, runtime performance and all other considerations, > on a > > hardware that does not support it? > > Network atomics are used for oshmem (see Mike's email) and MPI RMA. For > RMA they are exposed through the BTL 3.0 interface on the v2.x branch > and master. So far we have only really implemented compare-and-swap, > atomic add, and atomic fetch-and-add. Compare-and-swap and fetch-and-add > are required by our optimized RMA component (ompi/mca/osc/rdma). > > -Nathan > > > _______________________________________________ > 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/18688.php >