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