О, знаю, что это далеко не все, но я здесь ничего не понимаю. Я запускаю несколько компьютерных симуляций на кластере высокопроизводительных вычислений (HPC) движка сетки oracale (sge). Одно задание выполняется с определенной скоростью (примерно 80 шагов в секунду), когда я добавляю задания в машину, с определенным порогом скорость восстанавливается на два. На одной машине (я не знаю тип процессора) порог составляет 11 заданий для 16 процессоров. На другом с тем же номером и типом процессоров порог равен 8.
Сначала я подумал, что это проблема с памятью, но каждое задание занимает от 60 до 100 МБ, и у меня на каждой из этих машин 16 ГБ оперативной памяти.
Кто-нибудь из вас сталкивался с такой проблемой? есть ли способ это проанализировать?
Спасибо.
Не зная настройки вашего кластера, я задаюсь вопросом, использует ли ЦП гиперугрозу? Количество ядер с повышенной опасностью показано как удвоенное количество физических ядер, но вычислительная мощность может не увеличиваться линейно для нефизических ядер.
https://superuser.com/questions/279629/how-much-speedup-does-a-hyper-thread-give-in-theory
Причин может быть несколько.
Хотя ваши задания не потребляют много памяти, они могут заполнять шину памяти (которая соединяет ЦП с ОЗУ). Если шина заполнена, добавление дополнительных заданий только создаст дополнительную нагрузку на шину памяти, что приведет к замедлению всего.
Другая возможная причина - ввод-вывод. Если ваши задания выполняют много операций с файлами (например, операции открытия / записи / закрытия файлов), диск в системе может не справиться с работой, если одновременно выполняется слишком много заданий.
Другими причинами являются другие узкие места в процессорах, например общие кеши или исполнительные блоки с плавающей запятой.