Я делаю свой проект по вычислительной технике. Я занимаюсь многопроцессорным программированием с использованием C. Одно из требований для нас это то, что мы не можем продолжать выделять небольшие куски памяти. Память может быть выделена большими кусками при необходимости.
Итак, представьте, что я использую структуры в своей программе. И то, как работает моя программа, требует динамического выделения памяти. Но это очень дорого в оборудовании, которое мы используем. Поэтому наилучшим решением было бы выделить большой пул памяти в начале, а при необходимости выделять память из этого пула.
Я предполагаю, что это сработает, я выделю битовый массив этих структур и напишу свой собственный модуль управления памятью, который выделяет и освобождает память из этого пула. Но я хочу знать самый идеальный способ написания этих модулей. Существуют ли какие-либо библиотеки, которые могут помочь мне в управлении памятью, или есть какой-то способ их записи?
РЕДАКТИРОВАТЬ: Вот платформа, которую я использую: система AMD Opteron, которая работает на Ubuntu. Оптероны имеют архитектуру NUMA, и я хочу использовать это при распределении памяти. Следовательно, вместо использования malloc, я использую numa_alloc_onnode , который выделяет память на одном конкретном узле. Я хочу выделить большой кусок памяти, используя это, а затем использовать менеджер памяти для управления этой памятью.