Debido a que una arquitectura NUMA ofrece una sola imagen de sistema, con frecuencia puede ejecutar un sistema operativo sin optimizaciones especiales.
La alta latencia de los accesos de memoria remotos pueden provocar una subutilización de los procesadores, que esperan constantemente que se transfieran datos al nodo local, mientras que la conexión NUMA puede convertirse en un cuello de botella para aplicaciones con alta demanda de ancho de banda.
Además, el rendimiento en estos sistemas puede variar mucho. Por ejemplo, varía si una aplicación tiene memoria ubicada localmente en una ejecución de pruebas de referencia, pero en una ejecución posterior coloca toda esa memoria en un nodo remoto. Este fenómeno puede dificultar la planificación de capacidad.
Algunos sistemas UNIX de alta gama admiten optimizaciones de NUMA en sus bibliotecas de compilación y programación. Esto requiere que los desarrolladores de software ajusten y recompilen sus programas para alcanzar un rendimiento óptimo. No se garantiza que las optimizaciones para un sistema funcionen bien en la próxima generación del mismo sistema. Otros sistemas permiten que un administrador decida explícitamente en qué nodo debe ejecutarse una aplicación. Aunque esto puede ser aceptable para ciertas aplicaciones que demandan que el 100 por ciento de su memoria sea local, crea una carga administrativa y puede provocar un desequilibrio entre nodos cuando se modifican las cargas de trabajo.
De manera ideal, el software del sistema ofrece una compatibilidad transparente con NUMA, para que las aplicaciones puedan beneficiarse inmediatamente sin modificaciones. El sistema debe maximizar la utilización de la memoria local y programar de manera inteligente los programas sin requerir una intervención constante del administrador. Por último, debe responder bien a las condiciones cambiantes sin poner en riesgo el equilibrio o el rendimiento.