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