A hybrid computing environment for administering registered virtual addresses, the hybrid computing environment comprising a host computer having a host computer architecture, an accelerator having an accelerator architecture, the accelerator architecture optimized, with respect to the host computer architecture, for speed of execution of a particular class of computing functions, the host computer and the accelerator connected to one another for data communications by a system level message passing module, the hybrid computing environment further comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed, cause the hybrid computing environment to perform the steps of:
- maintaining, by the system level message passing module, a cache of ranges of currently registered virtual addresses, the cache comprising entries associating a range of currently registered virtual addresses, a handle representing physical addresses mapped to the range of currently registered virtual addresses, and a counter identifying the number of virtual addresses in the range of currently registered virtual addresses that are currently in use;
- determining, by the system level message passing module, whether to register ranges of virtual addresses in dependence upon the cache of ranges of currently registered virtual addresses;
- and
- determining, by the system level message passing module, whether to deregister ranges of virtual addresses in dependence upon the cache of ranges of currently registered virtual addresses.