Tengo una pequeña estructura de datos por CPU en un módulo de kernel de Linux, donde cada CPU escribe y lee sus propios datos con frecuencia. Sé que tengo que asegurarme de que estos datos no estén en la misma línea de caché, porque si lo fueran, los núcleos se ensuciarían para siempre los cachés. Sin embargo, ¿hay algo en el nivel de página del que deba preocuparme desde el punto de vista del rendimiento SMP? es decir. ¿Habría algún impacto en el rendimiento al rellenar estas estructuras por CPU a 4096 bytes y alinearlas?Cuando tengo estructuras de datos por CPU, ¿mejora el rendimiento para tenerlas en páginas diferentes?
Esto está en linux 2.6 en x86_64.
(Los puntos sobre si vale la pena optimizar y las sugerencias de que voy a punto de referencia no son necesarios, lo que estoy buscando es si hay alguna base teórica para preocuparse por la alineación de la página).
Gracias por la respuesta. Con 'NUMA exótico', ¿está sugiriendo que para algunas arquitecturas NUMA puede haber una contención de caché artificial entre los datos en líneas separadas pero en la página de una CPU? ¿Puedes dar un ejemplo de tal arquitectura? – kdt
Creo que lo que Café quería decir es que NUMA se considera exótico (discutible), y en un sistema NUMA, desea que cada núcleo almacene sus datos en la memoria localmente accesible (verdadera). – Karmastan
No sé si es exótico pero seguro que es feo. –