From af54fd2353866a219857aa550fc978be2d2a9ead Mon Sep 17 00:00:00 2001 From: David Beckingsale Date: Fri, 6 Sep 2024 14:54:01 -0700 Subject: [PATCH] Fixup and add recipe --- examples/cookbook/CMakeLists.txt | 14 ++++++++--- examples/cookbook/recipe_naming_shim.cpp | 30 ++++++++++++++++++++++++ src/umpire/strategy/NamingShim.cpp | 3 +-- src/umpire/strategy/NamingShim.hpp | 3 +-- 4 files changed, 43 insertions(+), 7 deletions(-) create mode 100644 examples/cookbook/recipe_naming_shim.cpp diff --git a/examples/cookbook/CMakeLists.txt b/examples/cookbook/CMakeLists.txt index 4d4e0395c..86a56508d 100644 --- a/examples/cookbook/CMakeLists.txt +++ b/examples/cookbook/CMakeLists.txt @@ -27,11 +27,19 @@ if (UMPIRE_ENABLE_NUMA) endif () if (UMPIRE_ENABLE_IPC_SHARED_MEMORY) + if (UMPIRE_ENABLE_MPI) + blt_add_executable( + NAME recipe_shared_memory + SOURCES recipe_shared_memory.cpp + DEPENDS_ON ${cookbook_depends}) + list(APPEND umpire_cookbooks recipe_shared_memory) + endif() + blt_add_executable( - NAME recipe_shared_memory - SOURCES recipe_shared_memory.cpp + NAME recipe_naming_shim + SOURCES recipe_naming_shim.cpp DEPENDS_ON ${cookbook_depends}) - list(APPEND umpire_cookbooks recipe_shared_memory) + list(APPEND umpire_cookbooks recipe_naming_shim) endif() if (UMPIRE_ENABLE_CUDA) diff --git a/examples/cookbook/recipe_naming_shim.cpp b/examples/cookbook/recipe_naming_shim.cpp new file mode 100644 index 000000000..66f1db455 --- /dev/null +++ b/examples/cookbook/recipe_naming_shim.cpp @@ -0,0 +1,30 @@ +////////////////////////////////////////////////////////////////////////////// +// Copyright (c) 2016-24, Lawrence Livermore National Security, LLC and Umpire +// project contributors. See the COPYRIGHT file for details. +// +// SPDX-License-Identifier: (MIT) +////////////////////////////////////////////////////////////////////////////// + +#include + +#include "umpire/Allocator.hpp" +#include "umpire/ResourceManager.hpp" +#include "umpire/Umpire.hpp" +#include "umpire/config.hpp" +#include "umpire/resource/HostSharedMemoryResource.hpp" +#include "umpire/strategy/NamingShim.hpp" +#include "umpire/util/MemoryResourceTraits.hpp" + +int main(int, char**) +{ + auto& rm = umpire::ResourceManager::getInstance(); + auto traits{umpire::get_default_resource_traits("SHARED")}; + traits.size = 1 * 1024 * 1024; // Maximum size of this Allocator + traits.scope = umpire::MemoryResourceTraits::shared_scope::node; // default + auto node_allocator{rm.makeResource("SHARED::node_allocator", traits)}; + auto shim{rm.makeAllocator("shim", node_allocator)}; + + void* ptr = shim.allocate(1024); + std::cout << "Ptr = " << ptr << std::endl; + shim.deallocate(ptr); +} diff --git a/src/umpire/strategy/NamingShim.cpp b/src/umpire/strategy/NamingShim.cpp index 39baae037..1a9dfb096 100644 --- a/src/umpire/strategy/NamingShim.cpp +++ b/src/umpire/strategy/NamingShim.cpp @@ -13,12 +13,11 @@ namespace umpire { namespace strategy { -NamingShim::NamingShim(const std::string& name, int id, Allocator allocator, std::size_t slots) +NamingShim::NamingShim(const std::string& name, int id, Allocator allocator) : AllocationStrategy{name, id, allocator.getAllocationStrategy(), "NamingShim"}, m_counter{0}, m_allocator(allocator.getAllocationStrategy()) { - UMPIRE_LOG(Debug, "Creating " << m_slots << "-slot pool."); } NamingShim::~NamingShim() diff --git a/src/umpire/strategy/NamingShim.hpp b/src/umpire/strategy/NamingShim.hpp index a8f90889b..c6dbd10d4 100644 --- a/src/umpire/strategy/NamingShim.hpp +++ b/src/umpire/strategy/NamingShim.hpp @@ -15,7 +15,7 @@ namespace strategy { class NamingShim : public AllocationStrategy { public: - NamingShim(const std::string& name, int id, Allocator allocator, std::size_t slots); + NamingShim(const std::string& name, int id, Allocator allocator); ~NamingShim(); @@ -27,7 +27,6 @@ class NamingShim : public AllocationStrategy { MemoryResourceTraits getTraits() const noexcept override; private: - std::unordered_map m_names; std::size_t m_counter; strategy::AllocationStrategy* m_allocator; };