diff --git a/ext/hwmalloc b/ext/hwmalloc index 89e113a..c3ddc35 160000 --- a/ext/hwmalloc +++ b/ext/hwmalloc @@ -1 +1 @@ -Subproject commit 89e113a354582fe964bab124cd24d54252e8c9e0 +Subproject commit c3ddc35f58ad6709388c209dfaec59b1ff40d472 diff --git a/include/oomph/context.hpp b/include/oomph/context.hpp index ac5f66f..cc74344 100644 --- a/include/oomph/context.hpp +++ b/include/oomph/context.hpp @@ -10,6 +10,7 @@ #pragma once #include +#include #include #include #include @@ -41,8 +42,8 @@ class context std::unique_ptr m_schedule; public: - context(MPI_Comm comm, bool thread_safe = true, bool message_pool_never_free = false, - std::size_t message_pool_reserve = 1); + context(MPI_Comm comm, bool thread_safe = true, + hwmalloc::heap_config const& = hwmalloc::get_default_heap_config()); context(context const&) = delete; diff --git a/src/context.cpp b/src/context.cpp index e6be5ad..73d5551 100644 --- a/src/context.cpp +++ b/src/context.cpp @@ -8,6 +8,7 @@ * SPDX-License-Identifier: BSD-3-Clause */ #include +#include #include // paths relative to backend @@ -24,9 +25,9 @@ namespace oomph { context::context(MPI_Comm comm, bool thread_safe, //unsigned int num_tag_ranges, - bool message_pool_never_free, std::size_t message_pool_reserve) + hwmalloc::heap_config const& heap_config) : m_mpi_comm{comm} -, m(m_mpi_comm.get(), thread_safe, message_pool_never_free, message_pool_reserve) +, m(m_mpi_comm.get(), thread_safe, heap_config) , m_schedule{std::make_unique()} //, m_tag_range_factory(num_tag_ranges, m->num_tag_bits()) { diff --git a/src/libfabric/context.cpp b/src/libfabric/context.cpp index 9365be8..5621a83 100644 --- a/src/libfabric/context.cpp +++ b/src/libfabric/context.cpp @@ -10,6 +10,9 @@ #include // #include + +#include + // paths relative to backend #include #include @@ -23,10 +26,10 @@ static NS_DEBUG::enable_print src_deb("__SRC__"); using controller_type = libfabric::controller; -context_impl::context_impl(MPI_Comm comm, bool thread_safe, bool message_pool_never_free, - std::size_t message_pool_reserve) +context_impl::context_impl(MPI_Comm comm, bool thread_safe, + hwmalloc::heap_config const& heap_config) : context_base(comm, thread_safe) -, m_heap{this, message_pool_never_free, message_pool_reserve} +, m_heap{this, heap_config} , m_recv_cb_queue(128) , m_recv_cb_cancel(8) { diff --git a/src/libfabric/context.hpp b/src/libfabric/context.hpp index 256cb9f..a7c0c11 100644 --- a/src/libfabric/context.hpp +++ b/src/libfabric/context.hpp @@ -13,6 +13,7 @@ #include #include +#include #include #include @@ -59,8 +60,7 @@ class context_impl : public context_base callback_queue m_recv_cb_cancel; public: - context_impl(MPI_Comm comm, bool thread_safe, bool message_pool_never_free, - std::size_t message_pool_reserve); + context_impl(MPI_Comm comm, bool thread_safe, hwmalloc::heap_config const& heap_config); context_impl(context_impl const&) = delete; context_impl(context_impl&&) = delete; diff --git a/src/mpi/context.hpp b/src/mpi/context.hpp index e31bc73..53f1e81 100644 --- a/src/mpi/context.hpp +++ b/src/mpi/context.hpp @@ -9,6 +9,8 @@ */ #pragma once +#include + #include // paths relative to backend @@ -34,10 +36,9 @@ class context_impl : public context_base shared_request_queue m_req_queue; public: - context_impl(MPI_Comm comm, bool thread_safe, bool message_pool_never_free, - std::size_t message_pool_reserve) + context_impl(MPI_Comm comm, bool thread_safe, hwmalloc::heap_config const& heap_config) : context_base(comm, thread_safe) - , m_heap{this, message_pool_never_free, message_pool_reserve} + , m_heap{this, heap_config} //, m_rma_context{m_mpi_comm} { // get largest allowed tag value diff --git a/src/ucx/context.hpp b/src/ucx/context.hpp index 231068c..2f790ae 100644 --- a/src/ucx/context.hpp +++ b/src/ucx/context.hpp @@ -14,6 +14,8 @@ #include +#include + #include // paths relative to backend @@ -74,15 +76,14 @@ class context_impl : public context_base friend struct worker_t; public: // ctors - context_impl(MPI_Comm mpi_c, bool thread_safe, bool message_pool_never_free, - std::size_t message_pool_reserve) + context_impl(MPI_Comm mpi_c, bool thread_safe, hwmalloc::heap_config const& heap_config) : context_base(mpi_c, thread_safe) #if defined OOMPH_UCX_USE_PMI , m_db(address_db_pmi(context_base::m_mpi_comm)) #else , m_db(address_db_mpi(context_base::m_mpi_comm)) #endif - , m_heap{this, message_pool_never_free, message_pool_reserve} + , m_heap{this, heap_config} , m_rma_context() , m_recv_req_queue(128) , m_cancel_recv_req_queue(128)