Я использую машину NUMA (SGI UV 1000) для одновременного запуска большого количества числовых симуляций, каждый из которых является заданием OpenMP с использованием 4 ядер. Тем не менее, запуск более 100 таких заданий приводит к значительным результатам. Наша теория относительно того, почему это происходит, заключается в том, что разделяемые библиотеки, требуемые программным обеспечением, загружаются только один раз в глобальную память аппарата, и тогда система испытывает узкое место в связи с тем, что все процессы обращаются к памяти на одном node.
Это старое программное обеспечение, которое не имеет возможности для модификации, и параметр статического make не статически связывает все библиотеки, в которых он нуждается. Самое удобное решение, из того, что я вижу, было бы каким-то образом заставить систему загружать новую копию требуемых разделяемых библиотек для каждого процесса или node (на каждом из которых я запускаю 3 процесса), но я раю не удалось выяснить, как это сделать. Может ли кто-нибудь сказать мне, как это сделать, или какие-либо другие предложения о том, как решить эту проблему?