[ca] L'evolució dels processadors multicore ha canviat completament l'evolució dels actuals sistemes de HPC. Les arquitectures multicore han estat dissenyades principalment per evitar tres barreres de disseny: el paral·lelisme a escala d'instrucció, el consum energètic i la contenció a memòria. La darrera és deguda a la creixent diferència de velocitat entre el processador i la memòria. Les prestacions de les aplicacions intensives a memòria executades en entorns multicore multisocket estan directament relacionades a la utilització dels recursos compartits a la jerarquia de memòria. La utilització dels recursos compartits pot portar a una degradació de les prestacions significativa. L'exploració de diferents configuracions d'afinitat de threads permet la selecció de configuracions que poden arribar a equilibrar la millora de prestacions obtinguda deguda a l'increment del paral·lelisme amb la degradació deguda a la contenció a memòria. Les principals contribucions d'aquesta tesi és la definició d'una metodologia pel desenvolupament d'estratègies de sintonització en entorns multicore multisocket que ha proporcionat la definició de dos models de rendiment per aplicacions intensives a memòria. El primer model de rendiment, basat en una caracterització en temps d'execució, estima el temps d'execució per diferents configuracions de número i distribució de threads en entorns multicore multisocket. Per aquesta finalitat, el model requereix una caracterització exhaustiva en temps d'execució en un únic processador amb l'objectiu de determinar la contenció a memòria. El segon model de rendiment, basat en la pre-caracterització de l'aplicació, estima el temps d'execució i l'impacte de la contenció a memòria per execucions concurrents basat en el perfil del memory footprint extret de traces de la mateixa aplicació executada amb petites càrregues de treball.

[es] La evolución de los procesadores multicore ha cambiado completamente la evolución de los actuales sistemas de HPC. Las arquitecturas multicore han sido diseñadas principalmente para evitar tres barreras de diseño, el paralelismo a nivel de instrucción, el consumo energético y la contención de memoria. La última debido a la creciente diferencia de velocidad entre el procesador y la memoria. El rendimiento de aplicaciones intensivas en memoria ejecutadas en entornos multicore multisocket está relacionado directamente a la utilización de los recursos compartidos en la jerarquía de memoria. La utilización de recursos compartidos puede llevar a una degradación de rendimiento significativa. La exploración de diferentes configuraciones de afinidad de threads permite la selección de configuraciones que pueden llegar a equilibrar la mejora de rendimiento obtenido por el incremento de paralelismo con la degradación debida a la contención de memoria. La principales contribuciones de esta tesis es la definición de una metodología para el desarrollo de estrategias de sintonización en entornos multicore multisocket que ha proporcionado la definición de dos modelos de rendimiento para aplicaciones intensivas en memoria.El primer modelo de rendimiento, basado en una caracterización en tiempo de ejecución, estima el tiempo de ejecución para diferentes configuraciones de numero y distribución de threads para entornos multicore multisocket. Para ello, el modelo requiere de una caracterización exhaustiva en tiempo de ejecución sobre un solo procesador con el objetivo de determinar la contención de memoria. El segundo modelo de rendimiento, basado en la pre-caracterización de la aplicación, estima en tiempo de ejecución el impacto de la contención de memoria para ejecuciones concurrentes basado en un perfil del memory footprint extraído de trazas de la aplicación ejecutada con pequeñas cargas de trabajo.