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 2011figuraciones, se obtiene un factor <strong>de</strong> rendimientocandidato.3. Evaluación <strong>de</strong>l impacto <strong>de</strong> los factores<strong>de</strong> rendimiento Para la evaluación <strong>de</strong>l impactose mi<strong>de</strong> empíricamente el tiempo <strong>de</strong> ejecución<strong>de</strong> las configuraciones posibles <strong>de</strong>l factor<strong>de</strong> rendimiento, y se <strong>de</strong>termina qué configuraciónobtiene mayor speedup y eficiencia. Severifica mediante simulación que es posible reproducirel problema <strong>de</strong> rendimiento obtenidoen el entorno real. Posteriormente, se analizamediante simulación el impacto <strong>de</strong>l factor <strong>de</strong>rendimiento para arquitecturas con gran número<strong>de</strong> cores.4. Mo<strong>de</strong>lo <strong>de</strong> rendimiento o alternativa<strong>de</strong> diseño y mo<strong>de</strong>lado Mo<strong>de</strong>lar el factor<strong>de</strong> rendimiento o proponer una alternativa<strong>de</strong> diseño conjuntamente con su mo<strong>de</strong>lo <strong>de</strong>rendimiento. Este proceso requiere la recopilación<strong>de</strong> las medidas y configuraciones para elfactor <strong>de</strong> rendimiento y buscar una relación quepermita pre<strong>de</strong>cir el comportamiento en un entornodinámico.5. Verificación <strong>de</strong>l mo<strong>de</strong>lo <strong>de</strong> rendimientoIntegrar el mo<strong>de</strong>lo <strong>de</strong> rendimiento mediante lasherramientas <strong>de</strong> sitonización que permitan actuara nivel <strong>de</strong> la librería dinámica <strong>de</strong> OpenMP.Verificar mediante la sintonización dinámica sila predicción permite conseguir una mejora respectoa la ejecución sin sintonizar. Posteriormente,analizar el overhead <strong>de</strong>bido a la instrumentacióny sintonización dinámica y verificar laprecisión <strong>de</strong>l mo<strong>de</strong>lo generado. Posteriormente,se valida el mo<strong>de</strong>lo en un entorno <strong>de</strong> simulación,mediante la simulación <strong>de</strong>l mo<strong>de</strong>lo sobre una arquitecturacon alto número <strong>de</strong> cores.IV. Casos <strong>de</strong> usoEn esta sección se muestran dos casos <strong>de</strong> uso <strong>de</strong> lametodología presentada anteriormente.A. Paralelismo <strong>de</strong> datosEn el mo<strong>de</strong>lo <strong>de</strong> paralelismo <strong>de</strong> datos existen factores<strong>de</strong> rendimiento relacionados con la gestión <strong>de</strong>lreparto <strong>de</strong> iteraciones en bucles paralelizados, primitivas<strong>de</strong> acceso concurrente a memoria y la asignación<strong>de</strong> threads sobre cores en base a datos afines paraminimizar fallos <strong>de</strong> cache.Respecto al reparto <strong>de</strong> iteraciones <strong>de</strong> bucles paralelizados,para una carga <strong>de</strong> trabajo <strong>de</strong>sbalanceada,es posible en OpenMP aplicar tres estrategias <strong>de</strong> planificación:static, dynamic y gui<strong>de</strong>d.<strong>La</strong> estrategia <strong>de</strong> planificación estática reparte lasiteraciones en base al factor <strong>de</strong>nominado chunksize.Previo al cómputo, se realiza la asignación <strong>de</strong> rangos<strong>de</strong> iteraciones para cada thread. <strong>La</strong> repartición<strong>de</strong> rangos altamente <strong>de</strong>sbalanceados va a afectar alrendimiento <strong>de</strong> la aplicación.<strong>La</strong> planificación dinámica reparte iteraciones <strong>de</strong>tamaño chunksize bajo <strong>de</strong>manda. Cuando un threadfinaliza la ejecución <strong>de</strong> las iteraciones asignadas, solicitanuevas iteraciones. Esta estrategia mejorael balanceo <strong>de</strong> carga. Sin embargo, tiene unpequeño overhead en los accesos concurrentes parala <strong>de</strong>manda <strong>de</strong> nuevas iteraciones, que afectará alrendimiento si los accesos son muy frecuentes o siintervienen un gran número <strong>de</strong> threads.El método guiado reparte bajo <strong>de</strong>manda grupos <strong>de</strong>iteraciones, empezando con tamaños gran<strong>de</strong>s hastallegar a un tamaño chunksize <strong>de</strong>finido por el usuario.Esta estrategia pue<strong>de</strong> conseguir una mejora en el balanceoy preten<strong>de</strong> minimizar los problemas <strong>de</strong> las estrategiasanteriores.Por otro lado, existen factores <strong>de</strong> rendimiento enla utilización <strong>de</strong> las primitivas <strong>de</strong> acceso a memoria.<strong>La</strong>s diversas directivas OpenMP ofrecen diferentefuncionalidad y rendimiento en el acceso concurrente.Sin embargo, <strong>de</strong>pendiendo <strong>de</strong> la aplicación no siempreserá posible utilizar la directiva con menor overhead.También existe en algunas implementaciones <strong>de</strong>lmo<strong>de</strong>lo <strong>de</strong> programación, aunque fuera <strong>de</strong>l estándar<strong>de</strong> <strong>de</strong>finición <strong>de</strong> OpenMP, la posibilidad <strong>de</strong> <strong>de</strong>finirel or<strong>de</strong>n <strong>de</strong> asignación <strong>de</strong> threads sobre los coresen base a la afinidad. Mediante esta <strong>de</strong>finición, esposible asignar threads con regiones afines sobre mismosniveles <strong>de</strong> memoria para minimizar los fallos <strong>de</strong>cache. Gracias a esta <strong>de</strong>finición, también es posibleevitar problemas <strong>de</strong> falsa compartición. Éstos problemasocurren cuando threads en niveles diferentes<strong>de</strong> la jerarquía <strong>de</strong> memoria compiten por los mismosdatos, y aunque ejecutados <strong>de</strong> forma paralela, la disputaen el acceso concurrente a los datos serializa laejecución y a<strong>de</strong>más aña<strong>de</strong> un alto overhead <strong>de</strong>bido aconstantes fallos <strong>de</strong> cache y migración <strong>de</strong> datos.B. Paralelismo <strong>de</strong> tareasLos factores <strong>de</strong> rendimiento en este paradigmaestán relacionados con la gestión <strong>de</strong> tareas <strong>de</strong> la implementaciónOpenMP. Existen dos estrategias principalmente.El mo<strong>de</strong>lo centralizado dispone <strong>de</strong> unacola compartida que almacena las tareas, a dón<strong>de</strong> losthreads ociosos acce<strong>de</strong>n <strong>de</strong> forma concurrente para laobtención <strong>de</strong> tareas. El otro mo<strong>de</strong>lo, está basado encolas <strong>de</strong>scentralizadas. Cada thread cuenta con unacola local. Cuando un thread queda ocioso calculamediante una función (e.g. random) el i<strong>de</strong>ntificador<strong>de</strong> un thread sobre el que acce<strong>de</strong>r a su cola localpara iniciar el robo <strong>de</strong> tareas, este thread es llamadovíctima.En el mo<strong>de</strong>lo <strong>de</strong> gestión centralizada, se presentaun problema <strong>de</strong> rendimiento en base al acceso concurrentea la cola. Este factor pue<strong>de</strong> ser más significativocuantos más threads existan en el sistema.Por tanto, el tiempo <strong>de</strong> acceso concurrente limita elrendimiento.En la gestión <strong>de</strong>scentralizada existen dos factores<strong>de</strong> rendimiento principalmente. El primero consisteen la posible ineficiencia en i<strong>de</strong>ntificar al threadvíctima con suficiente carga <strong>de</strong> trabajo. <strong>La</strong>s diferentesimplementaciones suelen utilizar una lógica simple.Por ejemplo, mediante una función aleatoria o<strong>JP2011</strong>-652

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

Saved successfully!

Ooh no, something went wrong!