Как создать объекты C ++ на определенных узлах памяти NUMA?

Простой код C может использовать libnuma библиотека для выделения памяти в определенном узле памяти в системе NUMA. Например, это можно сделать с помощью следующей функции:

void *numa_alloc_onnode(size_t size, int node)

Как создать экземпляр класса в каком-то узле памяти? Я могу придумать один способ:

numa_set_membind(<nodemask>);
o = new Object();
numa_set_localalloc();

Будет ли это работать?

1

Решение

Размещение нового это то, что вы ищете. Пример:

void *blob = numa_alloc_onnode(sizeof(Object), ...);
Object *object = new(blob) Object;
3

Другие решения


По вопросам рекламы [email protected]