Locking a page with mlock() is not all that is required for RDMA using InfiniBand (or Myrinet, for that matter). You have to call that device's registration function first. In Open MPI, that can be done implicitly with the mpi_leave_pinned option, which will pin memory as needed and then leave it pinned for the life of the buffer. Or it can be done ahead of time by calling MPI_ALLOC_MEM.

Because the amount of memory a NIC can have pinned at any time may not directly match the total amount of memory that can be mlock()ed at any given time, it's also not a safe assumption that a buffer allocated with MPI_ALLOC_MEM or used with an RDMA transfer from MPI is going to be mlock()ed as a side effect of NIC registration. Open MPI internally might unregister that memory with the NIC in order to register a different memory segment for another memory transfer.

Brian


On Nov 2, 2006, at 12:22 PM, Brian Budge wrote:

Thanks for the pointer, it was a very interesting read.

It seems that by default OpenMPI uses the nifty pipelining trick with pinning pages while transfer is happening. Also the pinning can be (somewhat) perminant and the state is cached so that next usage requires no registration. I guess it is possible to use pre- pinned memory, but do I need to do anything special to do so? I will already have some buffers pinned to allow DMAs to devices across PCI-Express, so it makes sense to use one pinned buffer so that I can avoid memcpys.

Are there any HOWTO tutorials or anything? I've searched around, but it's possible I just used the wrong search terms.

Thanks,
  Brian



On 11/2/06, Jeff Squyres <jsquy...@cisco.com> wrote: This paper explains it pretty well:

     http://www.open-mpi.org/papers/euro-pvmmpi-2006-hpc-protocols/



On Nov 2, 2006, at 1:37 PM, Brian Budge wrote:

> Hi all -
>
> I'm wondering how DMA is handled in OpenMPI when using the
> infiniband protocol.  In particular, will I get a speed gain if my
> read/write buffers are already pinned via mlock?
>
> Thanks,
>   Brian
> _______________________________________________
> users mailing list
> us...@open-mpi.org
> http://www.open-mpi.org/mailman/listinfo.cgi/users


--
Jeff Squyres
Server Virtualization Business Unit
Cisco Systems

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

_______________________________________________
users mailing list
us...@open-mpi.org
http://www.open-mpi.org/mailman/listinfo.cgi/users

Reply via email to