Enfoque sinérgico - copia

download Enfoque sinérgico - copia

of 16

Transcript of Enfoque sinérgico - copia

Enfoque sinrgicoUn enfoque sinrgico para el rendimiento computacional de equipos con mltiples ncleos basados en la arquitectura x86

Integrantes

Introduccin Para

explotar el potencial de rendimiento de los ordenadores de varios ncleos, se propone un enfoque que combina la optimizacin de la cach, paralelizacin, simdizacin, y el autotuning en un solo sistema.

Diagrama de una doble toma de cuatro ncleos Nehalem

Enfoque Tanto

las unidades de procesamiento en paralelo y los cachs se organizan jerrquicamente en los procesadores multicores x86 , por lo que el paradigma "divide y vencers encaja bien con esta arquitectura.

Enfoque En

particular hacemos uso de algoritmos de cach inconscientes o trascendentes para explotar el paralelismo a nivel de threading. Para explotar el paralelismo SIMD, utilizamos el compilador basado en simdizacin (tambin conocido como vectorizacin corto) en lugar de la codificacin manual

Enfoque Por

ltimo, durante todo este proceso se aplicaron tcnicas de autotuning para ajustar los parmetros del programa y as asegurarse de conseguir el mximo rendimiento

Algoritmos de cach trascendentes Estn

diseados para maximizar la reutilizacin de datos en el cach. A diferencia del cach por bloqueo, ste no tiene el tamao del cach como parmetro explcito, por lo cual trabaja bien en mltiples niveles de cach, en una jerarqua de memoria o en equipos con diferentes configuraciones de cach

Algoritmos de cach trascendentes Este

algoritmo funciona dividiendo el problema en subproblemas ms pequeos hasta llegar a un punto en que los datos necesarios para el subproblema, son lo suficientemente pequeos para caber en cualquier cach de tamao razonable

Paralelismo Cuando

los subproblemas disponen de datos independientes entre s, podemos calcularlos en paralelo y por lo tanto lograr tanto el paralelismo como la localidad de datos al mismo tiempo

Paralelismo SIMD SIMD

(Una Instruccin, Mltiples Datos) es una tcnica para conseguir paralelismo a nivel de datos. Consisten en instrucciones que aplican una misma operacin sobre un conjunto grande de datos Es una organizacin que influye muchas unidades de procesamiento bajo la supervisin de una unidad de control comn

Simdizacin La

simdizacin implica diversas tareas que estn estrechamente relacionadas entre si. El paralelismo SIMD (Una instruccin, Mltiples Datos) debe ser extrado de una aplicacin, que puede incluir la extraccin de una base de bloque, un bucle, o una combinacin de datos.

Simdizacin Una

vez que el paralelismo se extrae, se deben cumplir limitaciones de hardware adicionales, como los requisitos de la alineacin de memoria, longitud del vector fsico y el conjunto de instrucciones de hardware.

Simdizacin Para

poder realizar la simdizacin existen diversas maneras, una de ella es autosimdizacin, en la cual el paso de la simdizacin la realiza completamente el compilador. Como el compilador no puede determinar la dependencia entre los tres conjuntos de datos, genera dos versiones del ciclo (una es simdizada y la otra no) e inserta una marca para saber que versin usar en tiempo de ejecucin.

Simdizacin El

segundo mtodo es programar directamente la simdizacin. El programador usa el pragma ICC para comunicarse directamente con el compilador que es seguro y benfico para el bucle

Simdizacin El

ltimo mtodo es la notacin de arreglos, el cual es una caracterstica aadida en la versin 12 de la ICC. Para aplicar este mtodo, se reescribe el bucle en notacin de arreglos. Esta notacin se aplica a las operaciones matriciales en lugar de escalares. Por lo tanto, ya no necesitamos el ciclo for para iterar sobre los elementos individuales del arreglo