Простой код C может использовать libnuma
библиотека для выделения памяти в определенном узле памяти в системе NUMA. Например, это можно сделать с помощью следующей функции:
void *numa_alloc_onnode(size_t size, int node)
Как создать экземпляр класса в каком-то узле памяти? Я могу придумать один способ:
numa_set_membind(<nodemask>);
o = new Object();
numa_set_localalloc();
Будет ли это работать?
Размещение нового это то, что вы ищете. Пример:
void *blob = numa_alloc_onnode(sizeof(Object), ...);
Object *object = new(blob) Object;