MemoryManager Class Reference
HiCR
|
HiCR::backend::lpf::MemoryManager Class Referencefinal
#include <memoryManager.hpp>
Inheritance diagram for HiCR::backend::lpf::MemoryManager:

Public Member Functions | |
MemoryManager (lpf_t lpf) | |
__INLINE__ std::shared_ptr< HiCR::LocalMemorySlot > | registerLocalMemorySlotImpl (std::shared_ptr< HiCR::MemorySpace > memorySpace, void *const ptr, const size_t size) override |
__INLINE__ void | deregisterLocalMemorySlotImpl (std::shared_ptr< HiCR::LocalMemorySlot > memorySlot) override |
__INLINE__ std::shared_ptr< HiCR::LocalMemorySlot > | allocateLocalMemorySlotImpl (std::shared_ptr< HiCR::MemorySpace > memorySpace, const size_t size) override |
__INLINE__ void | freeLocalMemorySlotImpl (std::shared_ptr< HiCR::LocalMemorySlot > memorySlot) override |
![]() | |
virtual | ~MemoryManager ()=default |
__INLINE__ std::shared_ptr< LocalMemorySlot > | allocateLocalMemorySlot (const std::shared_ptr< MemorySpace > &memorySpace, const size_t size) |
virtual std::shared_ptr< LocalMemorySlot > | registerLocalMemorySlot (const std::shared_ptr< HiCR::MemorySpace > &memorySpace, void *const ptr, const size_t size) |
__INLINE__ void | deregisterLocalMemorySlot (const std::shared_ptr< HiCR::LocalMemorySlot > &memorySlot) |
__INLINE__ void | memset (const std::shared_ptr< HiCR::LocalMemorySlot > &memorySlot, int value, size_t size) |
__INLINE__ void | freeLocalMemorySlot (const std::shared_ptr< HiCR::LocalMemorySlot > &memorySlot) |
Additional Inherited Members | |
![]() | |
virtual void | memsetImpl (const std::shared_ptr< HiCR::LocalMemorySlot > memorySlot, int value, size_t size) |
virtual void | freeLocalMemorySlotImpl (std::shared_ptr< HiCR::LocalMemorySlot > memorySlot)=0 |
virtual void | deregisterLocalMemorySlotImpl (std::shared_ptr< HiCR::LocalMemorySlot > memorySlot)=0 |
Detailed Description
Implementation of the LPF backend
The only LPF engine currently of interest is the IB Verbs engine (see above for branch and hash)
Constructor & Destructor Documentation
◆ MemoryManager()
|
inline |
Map of global slot id and MPI windows Constructor of the LPF memory manager
- Parameters
-
[in] lpf LPF context
- Note
- The decision to resize memory register in the constructor is because this call requires lpf_sync to become effective. This makes it almost impossible to do local memory registrations with LPF. On the other hand, the resize message queue could also be locally made, and placed elsewhere.
Member Function Documentation
◆ allocateLocalMemorySlotImpl()
|
inlineoverridevirtual |
Allocates memory in the current memory space (whole system)
- Parameters
-
[in] memorySpace Memory space in which to perform the allocation. [in] size Size of the memory slot to create
- Returns
- The address of the newly allocated memory slot
Implements HiCR::MemoryManager.
◆ deregisterLocalMemorySlotImpl()
|
inlineoverride |
De-registers a memory slot previously registered
- Parameters
-
[in] memorySlot Pointer to the memory slot to deregister.
◆ freeLocalMemorySlotImpl()
|
inlineoverride |
Frees up a local memory slot reserved from this memory space
- Parameters
-
[in] memorySlot Local memory slot to free up. It becomes unusable after freeing.
◆ registerLocalMemorySlotImpl()
|
inlineoverridevirtual |
Associates a pointer locally-allocated manually and creates a local memory slot with it
- Parameters
-
[in] ptr Pointer to the local memory space [in] size Size of the memory slot to register [in] memorySpace The memory space onto which to register the new memory slot
- Returns
- A newly created memory slot
Implements HiCR::MemoryManager.
The documentation for this class was generated from the following file:
- /home/runner/work/HiCR/HiCR/include/hicr/backends/lpf/memoryManager.hpp
Generated by