Thanks! Sebastian On 03 Apr 2017, at 23:23, Nathan Hjelm <hje...@me.com> wrote:
> No, support is enabled by default. You can check whether it is working by > running with --mca osc ^pt2pt . This will disable the two-sided > implementation. > > -Nathan > > On Apr 03, 2017, at 03:02 PM, Sebastian Rinke <ri...@cs.tu-darmstadt.de> > wrote: > >> Thank you very much for the quick response! >> >> Do I need to configure with certain flags to enable the >> hardware put/get support? >> >> Sebastian >> >> On 03 Apr 2017, at 18:02, Nathan Hjelm <hje...@me.com> wrote: >> >>> >>> >>> On Apr 03, 2017, at 08:36 AM, Sebastian Rinke <ri...@cs.tu-darmstadt.de> >>> wrote: >>> >>>> Dear all, >>>> >>>> I’m using passive target sync. in my code and would like to >>>> know how well it is supported in Open MPI. >>>> >>>> In particular, the code is some sort of particle tree code that uses a >>>> distributed tree and every rank >>>> gets non-local tree nodes that are needed for its own computation from >>>> other ranks >>>> on demand, i.e.: >>>> >>>> Win_lock(target) >>>> >>>> Get() >>>> Get() >>>> … >>>> Get() >>>> >>>> (up to 8 Gets) >>>> >>>> Win_unlock(target) >>>> >>>> After closing the access epoch with Win_unlock(target), >>>> the rank looks at the nodes that it got and decides if it needs to get >>>> more non-local nodes in the same fashion. >>>> >>>> Unfortunately, this implementation blocks until the access epoch is >>>> completed for one particle. >>>> As every rank needs to do the same for several particles, it would be >>>> better >>>> to use Rget and start processing other particles in the meantime already. >>>> From time to time the pending Rgets are then checked for completion and >>>> the corresponding particle can progress. >>>> >>>> My questions are: >>>> >>>> 1) Does Get and Rget use network hardware support on Infiniband (IB) for >>>> contiguous data? >>> >>> >>> In Open MPI v2.0.0 and newer only. Open MPI v1.10.x and older will always >>> use the two-sided implementation which may or may not use the hardware >>> put/get support. >>> >>>> >>>> >>>> 2) How is RMA progress achieved for IB? Is there a progress thread option >>>> available? >>> >>> >>> Progress threads are generally not needed for progressing RMA with Open MPI >>> v2.0.0+. The only exception is when we have to queue up the operation >>> (which may be the case with get). You can get origin-side progress by >>> making another RMA call or by waiting on an operation initiated with on of >>> the request-based calls. >>> >>> If you want to progress each get independently you should use Rget. >>> >>>> >>>> >>>> 3) If there is no progress thread option, would it be useful to use >>>> MPI_THREAD_MULTIPLE >>>> and have a pthread testing on a request that will not be satisfied? >>>> Would this be a reasonable option to ensure progress in MPI? >>>> >>>> E.g.: >>>> while (1) >>>> MPI_Test() >>> >>> >>> This will get you progress but isn't possible with Open MPI v1.10.x and >>> older. MPI_THREAD_MULTIPLE is only really supported from v2.0.0. >>> >>> >>> -Nathan >>> _______________________________________________ >>> users mailing list >>> users@lists.open-mpi.org >>> https://rfd.newmexicoconsortium.org/mailman/listinfo/users >> >> _______________________________________________ >> users mailing list >> users@lists.open-mpi.org >> https://rfd.newmexicoconsortium.org/mailman/listinfo/users > _______________________________________________ > users mailing list > users@lists.open-mpi.org > https://rfd.newmexicoconsortium.org/mailman/listinfo/users
_______________________________________________ users mailing list users@lists.open-mpi.org https://rfd.newmexicoconsortium.org/mailman/listinfo/users