Если у меня есть многопроцессорная плата с кеш-связная неравномерный доступ к памяти (NUMA), т.е. отдельный "северные мосты" с отдельной ОЗУ для каждого процессора, какой-либо компилятор знать, как автоматически распространять данные в разных системах памяти, так что процессы, работающие с локальными потоками, в основном извлекают свои данные из ОЗУ, связанные с процессором, на котором работает поток?
У меня есть настройка, в которой 1 ГБ подключен к процессору 0, 1 ГБ подключен к процессору 1 и т.д. до 4 процессоров. В когерентной памяти физическая память для ОЗУ на первом процессоре имеет адреса от 0 до 1 ГБ-1. Для второго процессора это 1GB до 2GB-1 и т.д.
Будут ли какие-либо компиляторы, или, возможно, malloc
специфически связывать новую память alloc'd процессом на конкретном ядре с физической памятью, связанной с этим ядром?