|
UMPIRE
Umpire: resource management and provision
|
No-Op Memory allocator. More...
#include </home/docs/checkouts/readthedocs.org/user_builds/umpire/checkouts/develop/src/umpire/resource/NoOpMemoryResource.hpp>

Public Member Functions | |
| NoOpMemoryResource (Platform platform, const std::string &name, int id, MemoryResourceTraits traits) | |
| Construct a new NoOpMemoryResource. More... | |
| ~NoOpMemoryResource () | |
| Default destructor. More... | |
| void * | allocate (std::size_t bytes) |
| Creates a pointer and increments it by bytes. Then, increments counter so that each allocation has a unique index. NO MEMORY ALLOCATED! More... | |
| void | deallocate (void *ptr, std::size_t size) |
| Does nothing. More... | |
| std::size_t | getCurrentSize () const noexcept |
| Get current (total) size of the allocated memory. More... | |
| std::size_t | getHighWatermark () const noexcept |
| Get the high watermark of the total allocated size. More... | |
| bool | isAccessibleFrom (Platform p) noexcept |
| Platform | getPlatform () noexcept |
| Get the Platform assocatiated with this MemoryResource. More... | |
| MemoryResourceTraits | getTraits () const noexcept override |
| void * | allocate_internal (std::size_t bytes) |
| void * | allocate_named_internal (const std::string &name, std::size_t bytes) |
| void | deallocate_internal (void *ptr, std::size_t size=0) |
| virtual void | release () |
| Release any and all unused memory held by this AllocationStrategy. More... | |
| virtual std::size_t | getActualSize () const noexcept |
| Get the current amount of memory allocated by this allocator. More... | |
| virtual std::size_t | getAllocationCount () const noexcept |
| Get the total number of active allocations by this allocator. More... | |
| const std::string & | getName () noexcept |
| Get the name of this AllocationStrategy. More... | |
| const std::string & | getStrategyName () const noexcept |
| int | getId () noexcept |
| Get the id of this AllocationStrategy. More... | |
| virtual AllocationStrategy * | getParent () const noexcept |
| Traces where the allocator came from. More... | |
| virtual bool | tracksMemoryUse () const noexcept |
| bool | isTracked () const noexcept |
Public Attributes | |
| std::size_t | m_current_size {0} |
| std::size_t | m_high_watermark {0} |
| std::size_t | m_allocation_count {0} |
Protected Member Functions | |
| void | setTracking (bool) noexcept |
Protected Attributes | |
| Platform | m_platform |
| MemoryResourceTraits | m_traits |
| std::string | m_name |
| std::string | m_strategy_name |
| int | m_id |
| bool | m_tracked {true} |
| AllocationStrategy * | m_parent |
No-Op Memory allocator.
This NoOpMemoryResource has been created for benchmarking and performance measurement purposes. This class increments pointers in the allocate function. Thus, no malloc calls will be counted in the benchmarks and other function calls (etc) will be counted instead. The hope is that more informative measurements and tracking can be done in the benchmark than just focusing on the memory malloc calls.
| umpire::resource::NoOpMemoryResource::NoOpMemoryResource | ( | Platform | platform, |
| const std::string & | name, | ||
| int | id, | ||
| MemoryResourceTraits | traits | ||
| ) |
Construct a new NoOpMemoryResource.
| umpire::resource::NoOpMemoryResource::~NoOpMemoryResource | ( | ) |
Default destructor.
|
virtual |
Creates a pointer and increments it by bytes. Then, increments counter so that each allocation has a unique index. NO MEMORY ALLOCATED!
Implements umpire::resource::MemoryResource.
|
virtual |
|
virtualnoexcept |
Get current (total) size of the allocated memory.
This is the total size of all allocation currently 'live' that have been made by this AllocationStrategy object.
Reimplemented from umpire::strategy::AllocationStrategy.
|
virtualnoexcept |
Get the high watermark of the total allocated size.
This is equivalent to the highest observed value of getCurrentSize.
Reimplemented from umpire::strategy::AllocationStrategy.
|
virtualnoexcept |
Implements umpire::resource::MemoryResource.
References umpire::util::message::Debug, and UMPIRE_LOG.
|
virtualnoexcept |
Get the Platform assocatiated with this MemoryResource.
This function is pure virtual and must be implemented by the inheriting class.
Implements umpire::resource::MemoryResource.
References m_platform.
|
overridevirtualnoexceptinherited |
Reimplemented from umpire::strategy::AllocationStrategy.
References umpire::resource::MemoryResource::m_traits.
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, umpire::strategy::AllocationStrategy::m_current_size, and umpire::strategy::AllocationStrategy::m_high_watermark.
Referenced by umpire::strategy::mixins::AlignedAllocation::aligned_allocate(), umpire::strategy::AlignedAllocator::allocate(), umpire::strategy::AllocationAdvisor::allocate(), umpire::strategy::AllocationPrefetcher::allocate(), umpire::strategy::MixedPool::allocate(), umpire::strategy::NamedAllocationStrategy::allocate(), umpire::strategy::NumaPolicy::allocate(), umpire::strategy::SizeLimiter::allocate(), umpire::strategy::SlotPool::allocate(), umpire::strategy::ThreadSafeAllocator::allocate(), and umpire::strategy::MonotonicAllocationStrategy::MonotonicAllocationStrategy().
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, umpire::strategy::AllocationStrategy::m_current_size, and umpire::strategy::AllocationStrategy::m_high_watermark.
Referenced by umpire::strategy::NamingShim::allocate(), and umpire::strategy::NamedAllocationStrategy::allocate_named().
|
inherited |
References umpire::strategy::AllocationStrategy::m_allocation_count, and umpire::strategy::AllocationStrategy::m_current_size.
Referenced by umpire::strategy::mixins::AlignedAllocation::aligned_deallocate(), umpire::strategy::AlignedAllocator::deallocate(), umpire::strategy::AllocationAdvisor::deallocate(), umpire::strategy::AllocationPrefetcher::deallocate(), umpire::strategy::MixedPool::deallocate(), umpire::strategy::NamedAllocationStrategy::deallocate(), umpire::strategy::NamingShim::deallocate(), umpire::strategy::NumaPolicy::deallocate(), umpire::strategy::SizeLimiter::deallocate(), umpire::strategy::ThreadSafeAllocator::deallocate(), umpire::strategy::DeviceIpcAllocator::deallocate(), umpire::strategy::DeviceIpcAllocator::~DeviceIpcAllocator(), umpire::strategy::MonotonicAllocationStrategy::~MonotonicAllocationStrategy(), and umpire::strategy::SlotPool::~SlotPool().
|
virtualinherited |
Release any and all unused memory held by this AllocationStrategy.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, umpire::strategy::MixedPool, and umpire::strategy::DynamicPoolList.
References umpire::util::message::Info, and UMPIRE_LOG.
Referenced by umpire::Allocator::release().
|
virtualnoexceptinherited |
Get the current amount of memory allocated by this allocator.
Note that this can be larger than getCurrentSize(), particularly if the AllocationStrategy implements some kind of pooling.
Reimplemented in umpire::strategy::FixedPool, umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, umpire::strategy::MixedPool, umpire::strategy::DynamicPoolList, and umpire::resource::HostSharedMemoryResource.
References umpire::strategy::AllocationStrategy::getCurrentSize().
Referenced by umpire::Allocator::getActualSize().
|
virtualnoexceptinherited |
Get the total number of active allocations by this allocator.
References umpire::strategy::AllocationStrategy::m_allocation_count.
Referenced by umpire::Allocator::getAllocationCount().
|
noexceptinherited |
Get the name of this AllocationStrategy.
References umpire::strategy::AllocationStrategy::m_name.
Referenced by umpire::strategy::DynamicPoolList::coalesce(), umpire::strategy::QuickPool::coalesce(), umpire::strategy::ResourceAwarePool::coalesce(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::ResourceManager::destroyAllocator(), DynamicSizePool< IA >::DynamicSizePool(), umpire::Allocator::getName(), and umpire::util::unwrap_allocation_strategy().
|
noexceptinherited |
References umpire::strategy::AllocationStrategy::m_strategy_name.
Referenced by umpire::Allocator::getStrategyName().
|
noexceptinherited |
Get the id of this AllocationStrategy.
References umpire::strategy::AllocationStrategy::m_id.
Referenced by umpire::ResourceManager::destroyAllocator(), and umpire::Allocator::getId().
|
virtualnoexceptinherited |
Traces where the allocator came from.
References umpire::strategy::AllocationStrategy::m_parent.
Referenced by umpire::ResourceManager::destroyAllocator(), umpire::Allocator::getParent(), and umpire::is_accessible().
|
virtualnoexceptinherited |
Reimplemented in umpire::strategy::ResourceAwarePool, umpire::strategy::QuickPool, and umpire::strategy::DynamicPoolList.
|
noexceptinherited |
References umpire::strategy::AllocationStrategy::m_tracked.
Referenced by umpire::Allocator::isTracked().
|
protectednoexceptinherited |
|
protected |
Referenced by getPlatform().
|
protectedinherited |
|
inherited |
Referenced by umpire::strategy::AllocationStrategy::allocate_internal(), umpire::strategy::AllocationStrategy::allocate_named_internal(), umpire::strategy::AllocationStrategy::deallocate_internal(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::strategy::AllocationStrategy::getCurrentSize(), and umpire::strategy::mixins::Inspector::registerAllocation().
|
inherited |
|
inherited |
Referenced by umpire::strategy::AllocationStrategy::allocate_internal(), umpire::strategy::AllocationStrategy::allocate_named_internal(), umpire::strategy::AllocationStrategy::deallocate_internal(), umpire::strategy::mixins::Inspector::deregisterAllocation(), umpire::strategy::AllocationStrategy::getAllocationCount(), and umpire::strategy::mixins::Inspector::registerAllocation().
|
protectedinherited |
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getStrategyName().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getId().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::isTracked().
|
protectedinherited |
Referenced by umpire::strategy::AllocationStrategy::getParent().