[libfabric-users] Scalable Memory Registration.

Hefty, Sean sean.hefty at intel.com
Mon May 4 09:14:55 PDT 2020


> I was wondering about the flexibility of Scalable Memory Registration (for RMA
> operations). In the man pages for libfabric-1.9.0 (the version I am using) says that
> memory registration occurs in address ranges, but then what the parameter of len in
> fi_mr_reg implies? Can I allocate this MR dynamically? Let's say I reserve a space 256
> bytes at first, but my application grows and now I need 1GB (Checkpoints), can this
> adapt or both must now exactly the MR size not only for the MR key but when executing
> the fi_read, can I read more of what was initially reserved?

Each registration is for a fixed size (specified by len).  If you grow the region size, you need to register the larger region as a second registration.

If you have hardware that supports scalable memory registration -- with 0-byte offsets and user selected memory keys -- then the following is an option.  You can deregister the smaller buffer, and register the larger buffer, requesting the same key.  You can't have active transfers against the buffer when you deregister it.

It's worth noting that most hardware does not support scalable registrations, and has the provider select the memory key.

- Sean


More information about the Libfabric-users mailing list