我正在使用NUMA机器(SGI UV 1000)同时运行大量数值模拟,每个模拟都是使用4个核心的OpenMP作业.但是,运行超过100个这样的工作会导致性能受到重大影响.我们关于为什么会发生这种情况的理论是,软件所需的共享库只被加载到机器的全局内存中一次,然后系统就会遇到通信瓶颈,因为所有进程都访问单个节点上的内存.
它是一个旧的软件,无限制修改范围,静态make选项不会静态链接所需的所有库.从我所看到的最方便的解决方案是以某种方式迫使系统在每个进程或节点上加载所需共享库的新副本(在每个进程或节点上运行3个进程),但我没有能够找到如何做到这一点.任何人都可以告诉我如何做到这一点,或有任何其他建议如何解决这个问题?