Главная » C++ » Как разместить части массива на разных узлах на машинах NUMA?
Как разместить части массива на разных узлах на машинах NUMA?
У меня есть машина NUMA из 2 узлов. Я хочу разместить две половины массива на двух узлах соответственно. Как я могу это сделать?
Обратите внимание, что под «половиной» я подразумеваю непрерывный кусок виртуальной памяти. Я нашел функцию numa_alloc_interleaved, но она не удовлетворяет моим требованиям.
Вы можете иметь один кусок кода, который использует numa_alloc_onnode выделить блок на каждом узле, который вы хотите использовать, а затем передать контроль / владение этим блоком коду, выполняющемуся на этом узле.
Кроме того, вы можете запустить код на каждом узле, а затем заставить код каждого узла выделять свою собственную память локально, используя numa_alloc_local,