Biblioteca compartida cuello de botella en la máquina NUMA

Estoy usando una máquina NUMA (un SGI UV 1000) para ejecutar una gran cantidad de simulaciones numéricas al mismo tiempo, cada una de las cuales es un trabajo OpenMP que utiliza 4 núcleos. Sin embargo, ejecutar más de alrededor de 100 de estos trabajos resulta en un impacto significativo en el rendimiento. Nuestra teoría de por qué sucede esto es que las bibliotecas compartidas requeridas por el software se cargan solo una vez en la memoria global de la máquina, y el sistema está experimentando un cuello de botella en la comunicación ya que todos los procesos están accediendo a la memoria en un solo nodo.

Es un software antiguo que no tiene margen de modificación y la opción de creación estática no vincula estáticamente todas las bibliotecas que necesita. La solución más conveniente, por lo que puedo ver, sería forzar de alguna manera al sistema a cargar una nueva copia de las bibliotecas compartidas requeridas en cada proceso o nodo (en cada uno de los cuales estoy ejecutando 3 procesos), pero no tengo He podido averiguar cómo hacer esto. ¿Alguien puede decirme cómo hacer esto o tener alguna otra sugerencia sobre cómo resolver este problema?

Respuestas a la pregunta(1)

Su respuesta a la pregunta