Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. RENDIMIENTO DE PROCESADORES MANYCORE SOBRE TOPOLOGÍA 2D Resumen-- Actualmente atrae la atención, investigaciones en sistemas de procesadores, que funcionen con computó paralelo, donde la compartición de memoria, es una de las alternativas para atender la necesidad de optimizar el rendimiento de procesos. Se presenta el análisis del rendimiento de estos sistemas escalares, superescalares, multicore y manycore, siendo el manycore con topología 2D el que demostró un rendimiento 10 veces mejor que los anteriores, en tiempo de respuesta (Epiphany-GPU 192.1 ciclo máquina a 600 MHz y Arm9 1772.9 ciclos máquina a 667 MHz). El manycore presento mejores resultados en tiempo de ejecución, tiempo de acceso a memoria, rendimiento y bajo consumo de energía estos son factores directos que influyen en el alto rendimiento. Palabras Claves-- Multicore, topología. 1. Manycore, TEODORO ÁLVAREZ SÁNCHEZ RAUL MUÑOZ ORTIZ ANDRÉS CALVILLO TÉLLEZ MIGUEL ÁNGEL ROMERO MIRANDA Instituto Politécnico Nacional, CITEDI. Av. del Parque No. 131O, Mesa de Otay, Tijuana, Baja California, MÉXICO. rmunoz@citedi.mx talvarez@citedi.mx calvillo@citedi.mx romero@citedi.mx memoria compartida, INTRODUCCIÓN Por más de 60 años - desde los primeros días de las mainframe a través de la revolución de la PC de la década de 1980 y el éxito de hoy de dispositivos móviles inteligentes - la tecnología de procesador siempre ha evolucionado para satisfacer las expectativas de los usuarios, en los tiempos de conducción de innovaciones imprevistas en la industria de la computación. Dada la diversidad de los nuevos dispositivos móviles que lleguen al mercado sobre una base diaria, las innovaciones del procesador siguen siendo una fuerza poderosa para el cambio [6]. Con la incorporación del cómputo móvil, la arquitecturas de procesador se han desplazado a las computadoras de escritorio tradicionales, incluso a las laptop, esto es impulsado por el rendimiento, portabilidad, compacto, ahorradores de energía, alta integración, rapidez, en parte económica es otro factor determinante para la evolución de la Investigación en computación, etc. Es importante señalar, que el procesador es llamados actualmente core, los procesadores muticore o manycore poseen más de un core, es decir más de una unidad de cómputo en un mismo encapsulado. Esto aumenta el rendimiento, en especial si se utilizan más de una aplicación al mismo tiempo. Hoy en día, los beneficios de esta alto rendimiento, la arquitectura de procesador de bajo consumo están dando sus frutos en dispositivos como televisores digitales y settop boxes, equipo de oficina, como impresoras y copiadoras y dispositivos móviles como tabletas, unidades de juegos portátiles, y smartphones. Desde mediados del 2000 se han propuesto a desarrollar CPUs, mejorando en el rendimiento de un solo thread, no sólo se vuelve cada vez más difícil, pero también va en contra de las limitaciones de eficiencia energética de los dispositivos. Esto se debe a que exponencialmente, se requiere más energía para obtener un porcentaje de rendimiento. La Solución multicore pueden ofrecer un mayor rendimiento en las frecuencias comparables a los diseños de un solo core, mientras que ofrece un ahorro energético importante en términos de costo y eficiencia. Además, las soluciones de múlticore pueden aprovechar los cores con su gran cantidad de transistores optimizando, al suministrar la alimentación a ellos sólo cuando sea necesario. En esencia, esto puede ser pensado como el equilibrio de carga inteligente. No sólo un sistema necesita ser considerado, cual el procesador es el más adecuado para ejecutar una tarea específica, sino que también debe tener en cuenta el rendimiento requerido de esa tarea y asignarla al procesador más adecuado con la energía disponible. El uso de cores necesarios, esto nos permite mantener los demás inactivo ayudando al consumo de energía, que no afecta el rendimiento. Como las tareas se distribuyen a través de múltiples núcleos de procesador. Un procesador diseñado con tecnología de los 80 no podría funcionar a plena capacidad reduciendo voltaje y frecuencia de reloj. Los procesadores multicore permiten que el voltaje y la frecuencia sea reducidos. Esto se traduce en ahorros de energía significativos relacionados con el rendimiento global del sistema. Un enfoque de "múlticore" para procesamiento multicore requiere ejecutar cargas para ser compartidos a través de muchos procesadores más pequeños, tal como un Cortex-A5, en vez de simple thread con múltiples cargas de trabajo de un solo procesador core. Los diseñadores de procesadores están implementando cada 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 158 Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. vez más grupos de procesadores para trabajar juntos, compartiendo datos y tareas entre los caches o varias instancias del mismo procesador. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. En la figura 1, se muestran los componentes claves en la arquitectura Epiphany. Figura 1. Componentes de la Arquitectura Epiphany. Muchos core se vuelve aún más interesante ya que los procesadores más pequeños trabajan juntos para ofrecer un nivel de ejecución combinado con menor consumo de energía que un gran procesador de multitarea con la misma carga de trabajo. Como se mencionó anteriormente, los costos asociados con un mayor rendimiento sobre un subproceso son exponenciales; Sin embargo, con el procesamiento multicore el costo se vuelve más lineal en escala. Los diseñadores están utilizando muchos cores para reducir significativamente los costos al integrarlos al sistema. Como diseñadores de hardware comienzan a implementar estos sistemas de múltiples cores, los desarrolladores de software tendrán que producir código capaz de utilizar una solución de procesamiento múlticores. Hasta entonces, los dispositivos deben tener la capacidad de ejecutar tareas de alto rendimiento. Un ejemplo de un sistema que contienga ambos multicores de alto rendimiento y la mayor eficiencia de energía de muchos cores en el sistema CPU y GPU, donde el GPU de muchos cores puede entregar cómputo gráfico utilizando menos energía que multicore CPU. Dado que el GPU sigue siendo coherente con el CPU y comparte sus cachés, ancho de banda de memoria externa y la demanda del rendimiento del CPU se puede reducir. Los lenguajes como CUDA, OpenCL/C/C++, Phyton para epiphany están trabajando para las aplicaciones más genéricas. La arquitectura Epiphany es una de las últimas arquitecturas manycore en aparecer; se trata de una arquitectura de 16 o 64 cores, expandible hasta 4,096 cores en un futuro. Entre sus características notables se encuentran una arquitectura manycore, escalable, con memoria compartida capaz de ejecutar cómputo paralelo. Esta arquitectura ofrece una potencia de 50 Gigaflops por watt en cálculos de simple precisión. Está fabricada con el proceso de manufactura de 28 nm y está conformada por 16 y 64 núcleos basados en una arquitectura RISC e interconectados vía una red interna de alta velocidad; el chip funciona a una frecuencia de 800 MHz, ofreciendo una potencia de 100 gigaflops y un TDP (thermal design point) de apenas 2W. Cada uno de sus núcleos utiliza un diseño muy simple, el cual es similar a los núcleos de los GPU o de aceleradores como Xeon Phi, obviamente sin el hardware x86 de este último. Fuente: Elaboración propia Un superes calar, un CPU RISC de punto flotante en cada nodo que puede ejecutar dos operaciones en punto flotantes y una operación de carga en memoria de 64 bits con cada ciclo de reloj. La memoria local en cada nodo proporciona 32 Bytes/ciclo de ancho de banda sostenido y es parte de un sistema de memoria compartida, distribuida. La infraestructura de comunicación Multicore en cada nodo que incluye una interfaz de red, un acelerador DMA multicanal, decodificador de dirección multicore y una red de monitores. Una red de malla 2D con latencias comunicación en el chip de nodo a nodo en nanosegundos, con cero sobrecarga inicial. 2. METODOLOGÍA De manera general la investigación del sistema de manycore procesa los datos de la imagen Lena.jpg que tiene la imagen imperfecciones por la captura del dispositivo: La investigación la dividimos tres fases: En la primera fase, el sistema obtener la Lena.jpg imagen de En la segunda fase, se analizara la imagen alteradas con ruido gaussiano, es un tipo de ruido generado por el dispositivo de captura (cámaras y escáner)[1][2]. En la tercera fase, se ejecutara el programa que llame a la imagen Lena, a esta imagen que se le aplique el filtro basado en el dominio en frecuencia y que sea ejecutado con 1 core , 4 cores y 16 cores obteniendo los resultados de las ejecuciones desplegadas en el monitor como se muestra en la figura 2. 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 159 Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. Figura 2. Proceso de restauración de imagen a través de filtros. IR IF Fuente: Elaboración propia 2. DESARROLLO DEL SISTEMA En la actualidad, las computadoras modernas cuentan con procesadores de arquitectura multicore, las cuales integran varias unidades de procesamiento en un sólo encapsulado. Estos procesadores son capaces de ejecutar simultáneamente varias tareas utilizando hilos, procesos o por paso de mensajes, permitiendo con esto que las aplicaciones se ejecuten en menor tiempo. Para explotar el paralelismo disponible a nivel de hardware, la aplicación debe ser descompuesta en diferentes partes. De esta manera cada unidad de core disponible podría ejecutar una parte de la aplicación en paralelo con otras unidades cores. La descomposición de la aplicación debe ser seguida por la sincronización de las diferentes partes de la aplicación para asegurar que se conserva la consistencia. la ejecución de las tareas, entre cada nodo, se realiza mediante la interfaz para paso de mensajes incluida en el entorno de programación de Epiphany (SDK) o directamente escribiendo en la memoria compartida global[4]. La multiplicación de matrices en paralelo se completa en √P pasos, (donde P es el número de procesadores), con cada tarea de multiplicación de matrices operando sobre el conjunto de datos que son del tamaño de √P por √P. En cada paso del proceso, se hacen modificaciones a la matriz C, después de lo cual la matriz A se mueve hacia abajo y la matriz B se mueve a la derecha. Este ejemplo se puede programar utilizando lenguaje de programación estándar ANSI. La arquitectura Epiphany proporcionan funciones específicas para simplificar la programación multicore, pero su uso no es obligatorio, esta arquitectura permite a los programadores innovar en todos los niveles. Este algoritmo, implementado en la arquitectura Epiphany con 16-cores operando a 1 GHz, resuelve la multiplicación de matrices de 128 x 128 en 2 ms. Este ejemplo demuestra cómo es posible escalar la arquitectura para miles de cores y cómo crece linealmente el rendimiento de la arquitectura Epiphany con el número de cores cuando se utilizan modelos adecuados de programación y distribución de datos [4]. Además, la programación paralela se puede implementar de diferentes formas y con distintos lenguajes de programación [5]. La arquitectura Epiphany utilizada para el desarrollo de esta investigación, posee un modelo de programación neutral y compatible con la mayoría de los métodos de programación paralela, incluyendo: SIMD – Single Instruction Multiple Data, SPMD – Single Program Multiple Data, programación maestroesclavo, MIMD, Flujo de datos estático y dinámico, Array sistólico, Multihilos de memoria compartida, paso de mensajes y CSP - Procesos de Comunicación Secuencial. EL código puede escribirse en lenguaje C/C++ estándar, compilarse y ejecutarse en un solo núcleo, siempre que las matrices A, B y C sean colocadas en la memoria local de los núcleos. En este ejemplo de programación, no existe diferencia entre la arquitectura Epiphany y alguna otra plataforma con un solo procesador. Para acelerar el cálculo matemático, es posible utilizar varios núcleos simultáneamente. Primero se distribuyen las matrices A, B, C en P tareas. Por la naturaleza estructural de una matriz, la manera más adecuada de distribuir las tareas, es por bloques pequeños. Para ello se hacen programas (SPMD – Single Program Multiple Data) que se ejecutan en cada uno de los núcleos. La figura 3. muestra que la multiplicación de matrices puede dividirse en 16 tareas y cada una de ellas ejecutada en los núcleos de la red. La transferencia de datos durante ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. Figura 3. Flujo de datos en la multiplicación de matrices. Fuente: Elaboración propia 3. BENEFICIOS CLAVE ARQUITECTURA DE LA La arquitectura Epifanía fue diseñada para un buen rendimiento en una amplia gama de aplicaciones, pero realmente se destaca en aplicaciones con alta localidad espacial y temporal de los datos y código. Ejemplos de 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 160 Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. tales dominios de aplicación incluyen: procesamiento de imágenes, la comunicación, el procesamiento de la señal del sensor, el cifrado y la compresión. Alta velocidad de comunicación entre procesadores son compatibles con la Epifanía arquitectura 2D Mesh ™ Red-on-Chip (NOC), que se muestra en la figura 3b, que se conecta los nodos de procesador en un chip. La red de malla para el tráfico en alto rendimiento es usada en aplicaciones en tiempo real. ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. Figura 4b. Consumo de energía de Epifanía La red se aprovecha de localidad espacial y una abundancia de cables cortos punto a punto en el chip para enviar Transacciones completas que consiste en dirección de origen, dirección de destino, y los datos en un solo ciclo de máquina. Cada enlace de enrutamiento puede transferir hasta 8 bytes de datos en cada ciclo máquina, lo que permite 64 bytes de datos a fluir a través de cada nodo de enrutamiento en cada ciclo máquina, el apoyo a un ancho de banda efectivo de 64 GB/seg a una frecuencia de funcionamiento de la malla de 1GHz. A continuación tenemos las siguientes figuras 4a y 4b que nos muestra diferentes arquitecturas del mismo enfoque de alto rendimiento y el consumo de energía que tiene Epifanía. Facilidad de uso: Una arquitectura de múltiples núcleos que sea programable con ANSI-C/C+ +. Esto hace que la arquitectura sea accesible a todos los programadores, independientemente de su nivel de experiencia. Eficacia: Las instrucciones de propósito general para superescalar, bancos de registros sin restricciones, se asegura de que el código de aplicación escrito en ANSI-C puede acercarse al rendimiento teórico máximo de la arquitectura de la Epifanía. Baja potencia: Optimizaciones de micro arquitectura, una alta integración de circuitería eléctrica y un amplio periodo de tiempo, que permite hasta 70% de eficiencia de procesamiento Gflop/Watt, utilizando tecnología de diseño de 28nm. Fuente: Elaboración propia VENTAJA EFICAZ DE EPIFANÍA La arquitectura Epifanía es un desarrollo tecnológico muy bien diseñado y estructurado. Este diseño ya ha completado cuatro generaciones de silicio de la arquitectura, la tabla 1 muestra claramente las ventajas de características de la arquitectura, la epifanía en comparación con otras arquitecturas del mismo enfoque de la competencia. En la figura 5 se muestra las ventajas de la eficiencia indiscutible de la arquitectura Epifanía. Tabla 1.Caracteristicas de cores Escalabilidad: La arquitectura puede escalar a miles de núcleos en un solo chip, y millones de núcleos dentro de un sistema más grande. Esto proporciona la base para las futuras mejoras en el rendimiento de un mayor paralelismo. Figura 4a. Comparación de arquitecturas Fuente: Elaboración propia Fuente: Elaboración propia 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 161 Congreso Internacional de Investigación Tijuana. Revista Aristas: Investigación Básica y Aplicada. Figura 5. Eficiencia de la arquitectura Epifanía ISSN 2007-9478, Vol. 4, Núm. 7. Año 2015. Figura 6. Rendimiento del core Epiphany TIEMPO RENDIMIENTO 9.2% 2000 1000 0 2 CORES 16 CORES Cores Fuente: Elaboración propia Fuente: Elaboración propia CARGAS DE TRABAJO Una de las grandes ventajas de esta arquitectura es que cualquiera que esté familiarizado con C/C ++ puede lograr grandes resultados en muy poco tiempo. Absolutamente no hay idiomas, bibliotecas o construcciones de programación propietarias que se requieran. En la tabla 2 se muestra las latencias de tiempo de ejecución en diferentes lenguajes y la eficiencia sobre arquitecturas SIMD. Tabla 2. Rendimiento de cargas de trabajo 5. CONLUSION En este momento, el procesador actual Epiphany-IV funciona a 800 MHz, y se espera que alcance una precisión de 70 gigaflops/vatio, dos veces la eficiencia proporcionada en los sistemas anteriores. En el mercado de supercomputo, este procesador tendrá que competir con las soluciones GPGPU de AMD y Nvidia(Tesla M2050, GPU GeForce GT 120, GPU GeForce9800 GX2, Tilera(Tile-Gx), así como el con procesador Knights Ferry MIC, y con otros microprocesadores diseñados con FPGA de otras marcas. El CPU Epiphany-IV esta, diseñado con una tecnología de 28nm, con lo cual este CPU tendría una virtud muy importante, porque será capaz de tener un buen rendimiento en un espacio pequeño, sin incrementar demasiado el consumo energético, por lo que esta plataforma Epiphany-IV, demuestra una ruta de acceso inmediato hacia la meta de 50 GFLOPS por vatio, que DARPA debería alcanzar en 2018 en aplicaciones de computación de alto rendimiento. Agradecimientos Fuente: Elaboración propia 4. RESULTADOS En la figuras 4a, 4b, 6 y tabla 2 mostramos la equivalencia de las arquitecturas SIMD con la arquitectura Epifanía en consumo y rendimiento, en este momento se tiene contemplado en trabajar sobre las siguientes generaciones del procesador Epiphany-IV de 64 y 128 procesadores, que funciona a 800 MHz, para tener resultados prácticos sobre las arquitecturas multicore, manycore donde hay que ser radical, para mejorar la eficiencia energética donde debe haber cambios en la manera de programar y educar en la manera de pensar de cómo ejecutar dos o más tareas simultáneamente acompañado con los conceptos del ahorro de energía, como un dato importante Epifanía competirá con rivales como Tilera, Nvidia, Advanced Micro Devices, ARM e Intel, se espera que alcance una precisión de 70 y 100 Gigaflops/watts. El resultado de este trabajo se deriva del proyecto SIP20151394, apoyado por la Secretaría de Investigación y Posgrado del IPN. 6. REFERENCIAS [1] Reza. H. M, “An Anisotropic Fourth-Order Di_usion Filter For Image Noise Removal”, International Journal of Computer Vision, Vol. 92. No 2. pp 177-191. 2011. [2] Vajda. A, “Multi-core and Many-core Processor Architectures”, pp 3. May 2011. [3] Sánchez, M. G. y col, ”Performance Evaluation of using Multi-Core and GPU to Remove Noise in Images”, [En línea]. pp. 72,82,106, 113, 2011b. [4] Epiphany, SDK Reference Manual (2014)[En línea]. Disponible en: http://www.adapteva.com/wpcontent/uploads/2013/04/epiphany _sdk _reference .4.13.03.301.pdf 18 al 20 de febrero 2015. Facultad de Ciencias Químicas e Ingeniería. UABC. Copyright 2015. Tijuana, Baja California, México. 162