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 2011si se reduce el número <strong>de</strong> comunicaciones usandosolapamiento entre los subdominios.El número <strong>de</strong> comunicaciones <strong>de</strong> tipo send/receive sonmayores si se corta en dos direcciones, como se muestraen la Figura 2(c); aunque el total <strong>de</strong> datosintercambiados y el número <strong>de</strong> cálculo redundantepodría ser menor que alguna <strong>de</strong> las otras dosdistribuciones <strong>de</strong>pendiendo <strong>de</strong> la geometría particular y<strong>de</strong>l número <strong>de</strong> subdominios. Con esta distribución unproceso envía y recibe <strong>de</strong> más <strong>de</strong> dos procesos. Losotros dos tipos <strong>de</strong> distribuciones, el corte estrecho yancho, presentan el mismo número <strong>de</strong> comunicaciones<strong>de</strong>l tipo send/receive. En estos dos casos un procesointercambiará datos con uno o dos procesos mientrasque en con la división <strong>de</strong> la Figura 8(c) un procesopue<strong>de</strong> intercambiar datos con más <strong>de</strong> dos procesos.En [15] se comparan las alternativas <strong>de</strong> la Figura 2(a)y 2(c) usando paso <strong>de</strong> mensajes (MPI) en un cluster <strong>de</strong>4 nodos AMD Opteron 2.2 GHz y dos cores cada unoconectados mediante Gigabit Ethernet. Los resultadospara diferentes tipos <strong>de</strong> simulaciones haciendo uso <strong>de</strong>varias cuadrículas mostraban un mejor rendimiento si la<strong>de</strong>scomposición estaba hecha usando el corte en anchoen vez <strong>de</strong>l corte <strong>de</strong> dos direcciones. [8] compara lasalternativas <strong>de</strong> la Figura 2(b) y 2(c) usando también paso<strong>de</strong> mensajes con MPI en un CC-NUMA HP/ConvexExemplar X-Class (SPP2200) con 64 procesadoresdistribuidos en cuatro híper-nodos. Los ochos nodos <strong>de</strong>un híper-nodo están conectados en red (switch) <strong>de</strong> 960MB/s <strong>de</strong> ancho <strong>de</strong> banda en cada dirección [16]. Siendoesta una red basada en el estándar SCI. Los resultadosmuestran que el corte estrecho da mejores resultados queel <strong>de</strong> dos direcciones.<strong>La</strong> alternativa <strong>de</strong> la 2(c) presenta peor localidad <strong>de</strong>datos que las otras dos alternativas. Esto afecta a lasprestaciones, especialmente en la implementación <strong>de</strong>memoria compartida. Teniendo en cuenta esto y locomentado más arriba, se ha <strong>de</strong>scartado una comparativacon esta alternativa. En el trabajo que aquí se presentase comparan el corte ancho y estrecho tanto en laimplementación <strong>de</strong> paso <strong>de</strong> mensajes como la <strong>de</strong>memoria compartida. Para mejorar la localidad <strong>de</strong> losdatos, tanto para la distribución <strong>de</strong>l corte en ancho yestrecho, los datos se almacenan en posiciones <strong>de</strong>memoria contiguas.TABLA IOPCIONES DE OPTIMIZACIÓN ( INTEL COMPILER 11.1 )O2: Expansión en línea, clonación <strong>de</strong> funciones, optimizaciones clásicas (<strong>de</strong>senrollado <strong>de</strong> bucles, copia y propagación <strong>de</strong>constantes, renombrado <strong>de</strong> variables, liberación <strong>de</strong> memoria inútil) y vectorización (en el que se intentan generar instrucciones <strong>de</strong> tipoMMX, SSE, SSE2). O2 generalmente se recomienda como opción <strong>de</strong> optimización para mejorar el tiempo <strong>de</strong> comunicación.O3: Igual que O2 pero aplicado <strong>de</strong> una forma más agresiva, con técnicas como precaptación, reemplazamiento para reducirreferencias a memoria, transformaciones <strong>de</strong> bucles o <strong>de</strong>l acceso a memoria.ipo: Multifile interprocedural optimization (esto, por ejemplo, permite la expansión y clonación <strong>de</strong> llamadas a funciones <strong>de</strong>finidasen archivos distintos).openmp: Esta opción permite al compilador generar las hilos basándose en las directivas <strong>de</strong> OpenMP incluidas en el mismocompilador.xSSE4.2 (architecture-specific optimization): Intenta generar instrucciones <strong>de</strong>l tipo MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1 ySSE4.2 (vectorización) y pue<strong>de</strong> optimizar la familia <strong>de</strong> procesadores <strong>de</strong> Intel Core i7.prof_gen and prof_use (Profile Gui<strong>de</strong>d Optimization or PGO): Permite optimizar teniendo en cuenta la referencia real <strong>de</strong> losdatos en vez <strong>de</strong> usar datos heurísticos.A. PlataformaV. RESULTADOSLos resultados han sido obtenidos en un pequeñocluster <strong>de</strong> tres nodos conectados mediante una switchGigabit Ethernet. Cada nodo tiene 6 GB <strong>de</strong> memoria yun Core i7 CPU920 (<strong>de</strong>l último cuarto <strong>de</strong>l 2008). CadaCore i7 920 se compone <strong>de</strong> cuatro cores <strong>de</strong> 2,667 GHz(2 hilos por core si está activado Hyperthreading). cacheL3 <strong>de</strong> 8 MB compartidos por todos los cores yQuickPath <strong>de</strong> 4,8 GT/s. El cluster tiene instalado unLinux Fedora 10 (kernel 2.6.27.41)<strong>La</strong>s comunicaciones <strong>de</strong>l sistema han sido evaluadasmediante un benchmark ping-pong programado conMPI. El ancho <strong>de</strong> banda <strong>de</strong> la red obtenido con el testping-pong es <strong>de</strong> 115 MB/s, cerca <strong>de</strong> los teóricos 125MB/s.El ejecutable se ha generado con el compilador Fortran<strong>de</strong> Intel (versión 11) por lo que se ha usado la versiónOpenMP <strong>de</strong> este compilador. Para paso <strong>de</strong> mensajes seha usado MPICH 1.3. El código se ha compilado usandodistintas opciones <strong>de</strong> compilación orientadas a suoptimización y vectorización.En la Tabla I se resume las opciones <strong>de</strong> optimizaciónusadas. Los tiempos <strong>de</strong> ejecución obtenidos con O2 yO3 son muy similares, a<strong>de</strong>más cuando se aña<strong>de</strong> lasopciones ipo o SSE4.2 a O2 u O3 no se presentancambios perceptibles en el rendimiento. De igual formaPGO no mejora el tiempo <strong>de</strong> ejecución con respecto auna versión que no usa PGO. Los ejecutables usados enla siguiente sección se han generado con las opciones <strong>de</strong>compilación O2 y openmp.B. Mo<strong>de</strong>lo <strong>de</strong> Prueba<strong>La</strong> aplicación <strong>de</strong> prueba escogida se trata <strong>de</strong> unasimulación <strong>de</strong>l lago Tahoe, la meta final <strong>de</strong> estasimulación es caracterizar las rutas <strong>de</strong> transporte <strong>de</strong> laslarvas <strong>de</strong> especies invasivas (el bivalve Corbiculafluminea, o almeja asiática) <strong>de</strong>s<strong>de</strong> los puntos cercanos ala costa a otras zonas en el lago, y las condiciones medioambientales a las que podrían estar expuestas durante laruta.Simular un lago <strong>de</strong>l tamaño <strong>de</strong>l lago Tahoe, cuyasdimensiones son <strong>de</strong> 20x30 km, con un tamaño <strong>de</strong> lasceldas en la horizontal <strong>de</strong> O(10) m resulta un problema<strong>de</strong>s<strong>de</strong> el punto <strong>de</strong> vista computacional que sólo pue<strong>de</strong>ser abordado mediante el uso <strong>de</strong> computadoresparalelos. Para hacerse una i<strong>de</strong>a, la relación entre eltiempo real y el tiempo <strong>de</strong> ejecución secuencial (un<strong>JP2011</strong>-156

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

Saved successfully!

Ooh no, something went wrong!