30.07.2015 Views

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

Actas JP2011 - Universidad de La Laguna

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Actas</strong> XXII Jornadas <strong>de</strong> Paralelismo (<strong>JP2011</strong>) , <strong>La</strong> <strong>La</strong>guna, Tenerife, 7-9 septiembre 2011Herramientas para la monitorización <strong>de</strong> losaccesos a memoria <strong>de</strong> códigos paralelosmediante contadores hardwareOscar G. Lorenzo, Juan A. Lorenzo, Dora B. Heras, Juan C. Pichel y Francisco F. Rivera 1Resumen— En este trabajo se presenta el <strong>de</strong>sarrollo<strong>de</strong> una serie <strong>de</strong> herramientas que facilitan, especialmenteen códigos paralelos, tanto la programación <strong>de</strong>los contadores EARs (Event Address Registers) <strong>de</strong> losprocesadores Itanium 2 como el acceso y lectura <strong>de</strong> lainformación ofrecida por ellos. En concreto, se han<strong>de</strong>sarrollado las siguientes herramientas:Una herramienta que permite la inserción en unprograma paralelo <strong>de</strong>l código <strong>de</strong> monitorización y programación<strong>de</strong> los contadores hardware <strong>de</strong> una formasencilla e intuitiva. Se han realizado dos versiones,una ejecutable <strong>de</strong>s<strong>de</strong> la línea <strong>de</strong> comandos, que tomacomo entrada un programa paralelo y <strong>de</strong>vuelve comosalida el programa paralelo con el código <strong>de</strong> monitorizaciónañadido, y otra con una interfaz gráfica queaña<strong>de</strong> el código <strong>de</strong> monitorización <strong>de</strong> forma gradualsegún lo requiera el usuario.Otra herramienta que toma como entrada la informaciónobtenida por el código paralelo monitorizado,y muestra la información obtenida por los contadoreshardware <strong>de</strong> forma amigable y clara, pero a la vez exhaustivay <strong>de</strong>tallada. Esta herramienta permite ajustarel nivel <strong>de</strong> <strong>de</strong>talle, <strong>de</strong> modo que se pue<strong>de</strong> elegir<strong>de</strong>s<strong>de</strong> una vista global <strong>de</strong> los accesos a memoria, hastauna muestra <strong>de</strong>tallada evento a evento.Se ha realizado un estudio <strong>de</strong> estos <strong>de</strong>sarrollos sobrediversos problemas paralelos irregulares <strong>de</strong> memoriacompartida en el supercomputador FinisTerrae,centrándose en el producto matriz dispersa vector.Aunque el trabajo se ha realizado en el entorno <strong>de</strong>lFinisTerrae, las herramientas obtenidas son <strong>de</strong> aplicacióngeneral para cualquier otro sistema basado enprocesadores Itanium 2, que disponen <strong>de</strong> contadoreshardware, tanto mono como multiprocesador.Palabras clave— Contadores hardware, códigos irregulares,monitorización.I. IntroducciónUNO <strong>de</strong> los ámbitos don<strong>de</strong> la gestión <strong>de</strong> la memoriay el aprovechamiento <strong>de</strong> los ciclos <strong>de</strong> la CPUes más importante es el <strong>de</strong> la supercomputación.Para que un código paralelo se ejecute <strong>de</strong> forma correctay eficiente, su programación ha <strong>de</strong> ser muycuidadosa, teniendo en cuenta las características arquitectónicas,y en particular el comportamiento <strong>de</strong>los accesos a la memoria.El hecho <strong>de</strong> que el paradigma <strong>de</strong> computación enmemoria compartida esté presente extensivamente,<strong>de</strong>s<strong>de</strong> plataformas como teléfonos móviles hasta PCs,ha <strong>de</strong>terminado que librerías como OpenMP [1], quenacieron junto con los gran<strong>de</strong>s supercomputadoresmultiprocesador, sean hoy estándar en cualquier distribución.Pese a todo el cambio <strong>de</strong> paradigma <strong>de</strong>s<strong>de</strong>la programación secuencial a la paralela no es simple,y aún queda mucho por hacer.1 Grupo <strong>de</strong> Arquitectura <strong>de</strong> Computadores, Departamento<strong>de</strong> Electrónica y Computación, Univ. <strong>de</strong> Santiago <strong>de</strong>Compostela, e-mail: {oscar.garcia,juanangel.lorenzo,dora.blanco,juancarlos.pichel,ff.rivera}@usc.es,Es por todo esto que los fabricantes <strong>de</strong> microprocesadoresintegran en sus diseños <strong>de</strong> alta gama contadoreshardware (CH) [2] en aplicaciones que son utilizadaspor programadores no solamente restringidasa la caracterización <strong>de</strong>l rendimiento <strong>de</strong> los procesos.Por ejemplo, son <strong>de</strong> gran utilidad en la <strong>de</strong>puración<strong>de</strong> códigos paralelos, para encontrar aquellos puntos<strong>de</strong>l código don<strong>de</strong> el programa sobrecarga ciertasCPUs o <strong>de</strong>ja sin trabajo a otras, etc. Incluso pue<strong>de</strong>nser usados para modificar los programas en tiempo<strong>de</strong> ejecución <strong>de</strong> manera que sean más productivos[3][4].<strong>La</strong> familia <strong>de</strong> procesadores Itanium 2 ofrece untipo particular <strong>de</strong> CH <strong>de</strong>nominado EARs [2] que ofreceninformación sobre eventos asociados a los accesosa memoria a nivel <strong>de</strong> las direcciones virtuales, y enlos que se basan los incluidos en los procesadores másmo<strong>de</strong>rnos <strong>de</strong> Intel. Esta información incluye, entreotros, la presencia <strong>de</strong> fallos <strong>de</strong> TLB, fallos a diferentesniveles <strong>de</strong> memoria caché, latencias <strong>de</strong> acceso, etc,para cada dirección virtual. Esta información pue<strong>de</strong>resultar muy valiosa al programador, pero acce<strong>de</strong>ra ella resulta complejo y tedioso. En este trabajomostramos diversas herramientas que facilitan el uso<strong>de</strong> estos CH.II. Los contadores hardware en elFinisterraeEl supercomputador FinisTerrae [5] es un sistemaintegrado por nodos <strong>de</strong> memoria compartidacon una arquitectura SMP NUMA. Está compuestopor 142 nodos <strong>de</strong> computación HP Integrityrx7640 [6] con 16 núcleos Itanium Montvale y 128GB <strong>de</strong> memoria cada nodo, 1 nodo HP IntegritySuperdome, con 128 núcleos Itanium Montvale y1.024 GB <strong>de</strong> memoria, y 1 nodo HP IntegritySuperdome, con 128 núcleos Itanium 2 y 384 GB<strong>de</strong> memoria. <strong>La</strong> memoria <strong>de</strong> estos procesadoresestá compuesta por tres niveles <strong>de</strong> memoria caché.A<strong>de</strong>más, las diferentes velocida<strong>de</strong>s <strong>de</strong> acceso a lamemoria principal local frente a la remota hacen queel tiempo <strong>de</strong> acceso a los datos sea uno <strong>de</strong> los aspectosque más influye en el rendimiento <strong>de</strong> los códigosparalelos <strong>de</strong> memoria compartida, sobre todo en loscódigos que presenten accesos irregulares.El procesador Itanium2 Montvale tiene una jerarquía<strong>de</strong> memoria en tres niveles. En cada core, elprimer nivel consta <strong>de</strong> dos memorias <strong>de</strong> 16KB, unapara datos y otra para instrucciones. El nivel 2 presentauna caché L2 <strong>de</strong> 256KB <strong>de</strong>dicada únicamentea los datos, y una caché L2 <strong>de</strong> 1MB para instruc-<strong>JP2011</strong>-655

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!