Diseño y evaluación de un clúster HPC: Aplicaciones

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Diseño y evaluación de un clúster HPC: Aplicaciones"

Transcripción

1 Diseño y evaluación de un clúster HPC: Aplicaciones Autor: Grado en Ingeniería Informática Especialidad en Ingeniería de Computadores 26 de Junio de 2014 Director: Agustín Fernández Jiménez, Arquitectura de computadores Facultad de Informática de Barcelona Universidad Politécnica de Cataluña (UPC) - BarcelonaTech

2 2

3 Diseño y evaluación de un clúster HPC: aplicaciones 3 Resumen En este trabajo se presenta un análisis de las aplicaciones utilizadas de manera habitual en el área de la informática conocida como High Performance Computing (HPC). También se hace un inciso en técnicas de optimización para tales aplicaciones mediante el uso de herramientas de profiling, librerías y configuración de parámetros. Por último, se realiza la evaluación de rendimiento de un clúster HPC basado en procesadores móviles de bajo consumo. El trabajo tiene como objetivo aprender a construir y optimizar un clúster HPC, acorde con el conjunto de aplicaciones a ejecutar y con la mirada puesta en la eficiencia energética (Energy-to-solution). A destacar, que para la parte final del trabajo se ha montado un clúster con procesadores de bajo consumo, en concreto, System-on-Chip con arquitectura ARMv7 para móviles de Samsung, Exynos Resum En aquest treball es presenta un anàlisi de les aplicacions utilitzades de manera habitual a l àrea de l informàtica coneguda com HPC. També es fa un incís en les técniques d optimització per aquestes aplicacions mitjançant l ús d eines de profiling, llibreríes i configuració de paràmetres. Per acabar, es realitza la evaluació de rendiment d un clúster HPC basat en procesadors mòbils de baix consum. Aquest treball té com objectiu aprendre a construir i optimitzar un clúster HPC, concorde amb el conjunt d aplicacions a executar y amb la mirada posada en la eficiencia energética (Energy-to-solution).

4 4 A destacar, que per la part final del treball s ha muntat un clúster amb processadors de baix consum, en concret, System-on-Chip amb arquitectura ARMv7 per mòbils de Samsung, Exynos Abstract This project presents an analysis of the applications commonly used in the area of the computer sciences known as HPC. Also, an introduction in optimization techniques is made for those applications with the use of profiling tools, libraries and parameter configuration. On the last part, a performance evaluation of the HPC cluster based in mobile processors is made. This project has as objective to learn to build and optimize a cluster HPC, according to the set of applications to execute while keeping the energy efficiency in consideration (Energy-to-Solution). As a highlight, for the last part of the project a cluster with low-power mobile processors has been built, in particular, with Samsung s System-on-Chip with ARMv7 architecture for cellphones Exynos 5420.

5 Diseño y evaluación de un clúster HPC: aplicaciones 5 Índice general Resumen 4 Prefacio Introducción Orígenes Problemática Student Cluster Challenge Objetivos Objetivos Generales Objetivos individuales Planificación y presupuesto Planificación Estudio Teórico Aplicación Práctica Estimación temporal Listado de Tareas Diagrama de Gantt Recursos Presupuesto Recursos humanos Hardware Software Gastos generales Presupuesto total

6 6 Índice general 3. Sumario del Hardware Sumario del Hardware Clúster de Arndale Octa Análisis de aplicaciones Aplicaciones de producción Herramientas de benchmarking LINPACK Benchmarks HPL HPCC DGEMM STREAM PTRANS RandomAccess FTT Comunications latency and bandwidth GROMACS Microkernels Patrones de acceso a memoria Float-Point peak performance Overhead al paralelizar Aplicaciones del SCC En resumen Optimización de aplicaciones Medidas de rendimiento Speed Up Eficiencia paralela Ley de amdahl Herramientas de análisis EXTRAE y Paraver Instalación y configuración de programas Optimizando el fichero de configuración de HPL y HPCC

7 Diseño y evaluación de un clúster HPC: aplicaciones 7 6. Evaluación del clúster Benchmarking single node Metodología Resultados Benchmarking multi nodo Metodología Resultados Sostenibilidad Sostenibilidad Viabilidad económica Impacto Social Impacto Ambiental Conclusiones individuales Evaluación global Trabajo futuro Conclusiones de equipo Conclusiones de cara a la competición Trabajo futuro Agradecimientos 77 Bibliografía 80

8 8 Índice general

9 Diseño y evaluación de un clúster HPC: aplicaciones 9 Índice de figuras 2.1. Listado de Tareas Diagrama de Gantt Estado del Laboratorio C6-103 al llegar Vista del clúster (cerveza para comparar la escala) Vista del clúster (cerveza para comparar la escala) Vista cercana del clúster Vista del switch de interconexión Vista general del clúster Patrón de acceso a datos según aplicación Esquema de comunicaciones según la versión de benchmark Conexiones que realiza MPI en Natural ring Un posible patrón de conexiones que realiza MPI en Random ring Ejemplo de fichero de resultados del microkernel N-Body OpenMP Speed Up con precisión de 32-bits Speed Up con precisión de 64-bits Comparativa de la eficiencia paralela de simple y doble precisión con 4 threads Rendimiento y efficiencia paralela con HPL (single node) Eficiencia respecto al PP de las primeras posiciones del top Eficiencia energética comparada con las primeras posiciones de Green Gráfica de speed up del cluster ejecutando HPL de 1 a 24 procesadores Eficiencia paralela del clúster ejecutando HPL de 1 a 24 procesadores. 69

10 10 Índice de figuras

11 Diseño y evaluación de un clúster HPC: aplicaciones 11 Índice de cuadros 2.1. Distribución de horas de trabajo según rol Costes asociados a recursos humanos Costes derivados de la compra de Hardware Desglose de los gastos generales Resumen presupuesto total Operación y medida de rendimiento de los benchmarks de HPCC Versiones disponibles para cada benchmark Resumen de resultados de HPCC

12 12 Índice de cuadros

13 Diseño y evaluación de un clúster HPC: aplicaciones 13 Abreviaciones BLAS Basic Linear Algebra Subprograms. 42, 49 BSC Barcelona Supercomputing Center. 30, 48 CPU Central Processing Unit. 35, 48 DGEMM Double-precision GEneral Matrix Multiply. 45 emmc embeded MultiMediaCard. 35 EP Embarrassingly Parallel. 43, 69 FFT Fast Fourier Transformation. 47, 49 GB Gigabyte. 35 GFLOPS Gigaflops. 42, 47, 59, 60 GPU Graphics Processing Unit. 35 GROMACS GROningen MAchine for Chemical Simulations. 39, 40, 48 GUPS Giga UPdates per Second. 46 HPC High Performance Computing. 3, 4, 17, 20, 22, 25, 30, 71, 72 HPCC High Performance Computing Challenge. 39, 41 HPL High-Performance Linpack. 20, 39, 41, 59, 60, 63, 64 ISC International Supercomputing Conference. 17, 19, 20 LU Lower-Upper. 42 Mbps Mega Bits Por Segundo. 35 MHz Gigahercios. 35 MPI Message Passing Interface. 42, 60

14 14 Abreviaciones PP Peak Performance. 42 SCC Student Cluster Challenge. 17, 19, 20, 22, 25, 39 SD Secure Digital. 35 SIMD Single Instruction Multiple Data. 48 SoC System On Chip. 35, 59, 62, 69 W Vatios. 20, 65, 69, 72

15 Diseño y evaluación de un clúster HPC: aplicaciones 15 Glosario Green500 Ránking de los 500 supercomputadores más potentes del mundo ordenados por eficiencia energética. 59 Top500 Ránking de los 500 supercomputadores más potentes del mundo ordenados por rendimiento. 41

16 16 Glosario

17 Diseño y evaluación de un clúster HPC: aplicaciones 17 Prefacio Este trabajo forma parte de un proyecto colaborativo de investigación entre estudiantes que se ubica en el área de la informática conocida como HPC. Comparte título y se complementa con el trabajo de tres compañeros de proyecto: David Trilla en el ámbito del hardware, Cristóbal Ortega en el de software de sistema y Constantino Gómez por el apartado de aplicaciones. Por tanto, los siguientes capítulos son compartidos a nivel de proyecto: este prefacio, introducción, planificación y presupuestos, sostenibilidad y por último conclusiones de equipo. Estos capítulos son compartidos porque aportan información esencial común a todo el proyecto, así como una descripción del trabajo conjunto que ha realizado el equipo. Hoy en día el HPC es una de las herramientas principales para el desarrollo de la ciencia. Por norma general las aplicaciones HPC comparten una característica común, se pueden desmenuzar en subtareas para poder así ejecutarse de manera paralela en gran cantidad de procesadores. El principal exponente de este tipo de investigación son los supercomputadores, máquinas con capacidades de cómputo muy por encima de la mayoría de ordenadores, y que son imprescindibles para casi cualquier campo científico e investigación. El HPC se encarga de que estas máquinas sigan evolucionando para permitir que la ciencia siga avanzando a pasos cada vez mayores. Una de las conferencias más importantes en materia HPC es la International Supercomputing Conference (ISC). Los asistentes, mayoritariamente profesionales del sector, participan en charlas técnicas, conferencias y talleres entre otros. Para este trabajo, no es el evento principal el que resulta de interés, sino la competición HPC: Student Cluster Challenge (SCC). En esta competición, que participan universidades de todo el mundo, equipos de estudiantes compiten por conseguir los mejores resultados de rendimiento. La creación del grupo responde a dos necesidades: la de dar cabida a los tres aspectos técnicos más importantes de la tecnología HPC en un proyecto común, y segundo, la de formar un equipo y las opciones que se tendrían para ganar una competición como la Student Cluster.

18 18 Glosario

19 Diseño y evaluación de un clúster HPC: aplicaciones 19 Capítulo 1 Introducción 1.1. Orígenes A principios de septiembre de 2013, Álex Ramírez reúne a 7 estudiantes de la especialidad de ingeniería de computadores, entre ellos los 3 integrantes del grupo, y nos propone formar un equipo con intención de participar en la ISC 14 que se celebra en Leipzig del 21 al 25 de Junio en 2014 A lo largo de septiembre y octubre se estudian los requerimientos de la competición y elaboramos el documento de inscripción con información de los participantes y un primer planteamiento del clúster. A principios de diciembre la organización nos comunica que no hemos sido admitidos en la competición sin aportar mayor explicación. En enero de 2014 acordamos seguir con el proyecto a modo de TFG pese a no estar admitido. El grupo se reduce a 3 personas: Constan Gómez, David Trilla y Cristobal Ortega Problemática Por un lado la problemática que se plantea es la siguiente: en caso de querer competir en el futuro en una competición como el SCC, qué competencias de equipo y conocimientos técnicos deberíamos desarrollar. Por otro lado, nos encontramos otro problema, más general y de más alcance, como es el consumo de los supercomputadores hoy en día. Actualmente, el mantenimiento de los centros de computación tiene un coste muy elevado. Gran parte del coste se debe al consumo eléctrico de sus equipos y la refrigeración necesaria para mantenerlos funcionando. Este problema es atacado de forma indirecta en el SCC por la

20 20 Capítulo 1. Introducción limitación de consumo a Vatios (W), y en el clúster que construiremos con hardware de bajo consumo. Para ayudarnos a definir los objetivos del trabajo, veamos primero en detalle en que consiste la competición Student Cluster Challenge El SCC es una competición que se celebra en el ámbito del ISC, el escaparate sobre HPC en Europa. El evento ISC 14 tiene lugar entre los días 21 y 25 de Junio en Liepzig, Alemania. Esta competición será nuestro marco de referencia, dirigiendo nuestro proyecto como si fuéramos a participar en ella, usando sus directrices y parámetros. El evento consiste en reunir a varios equipos, de hasta 6 estudiantes sin graduar, que junto con un pequeño sistema para supercomputación y a lo largo de 4 días, compitan entre ellos en diferentes categorías para determinar el sistema ganador, mediante el montaje y la optimización de los parámetros de las aplicaciones. Existen 3 categorías a las cuales se opta a premio, la de mejor resultado con High- Performance Linpack (HPL), que es la versión para HPC del software de benchmarking LINPACK, la de votación a favorito, y la categoría general donde cuenta la puntuación total de todos los benchmarks. La característica de la competición de premiar al eficiencia da lugar a la principal restricción que se impone en la competición, que limita el presupuesto para el consumo. Esto limita el consumo de cualquier clúster en competición, incluyendo sus elementos para interconexión, a un total de 3.000W. [2] Debido a todas las anteriores normas, nuestra intención es diseñar dos clústeres pensados para presentar al concurso. Un clúster teórico, que cumpla los requisitos anteriores, y que nos permitirá liberarnos de la necesidad de depender del coste de su creación, y posteriormente, con el hardware disponible, crear un clúster que pueda ejecutar eficientemente los benchmarks del concurso, con especial atención en el HPL, y que también cumpla la restricción de consumo Objetivos A continuación se desglosan los objetivos generales del proyecto y los objetivos individuales de cada uno de los tres trabajos.

21 Diseño y evaluación de un clúster HPC: aplicaciones Objetivos Generales Basándonos en los requerimientos vistos en la sección anterior se establecen los siguientes objetivos generales y su justificación. Hemos dividido el proyecto en dos fases. Objetivos de la primera fase Estudio del estado del arte HPC Diseñar y montar un clúster con un consumo inferior a los 3kW. Para poder diseñar adecuadamente un clúster necesitamos realizar previamente un estudio del estado del arte. De esta manera podremos extraer cuales son los elementos indispensables para su montaje, y además, adquirir otros conocimientos relacionados que nos ayudarán durante todo el desarrollo del proyecto. El segundo objetivo se aborda de dos maneras diferentes. Por un lado se realiza el diseño teórico de un clúster con procesadores y aceleradores convencionales. Por otro, el diseño y montaje de un prototipo de clúster con procesadores móviles de bajo consumo. Dada la necesidad de asistir con un clúster propio a la competición, es necesario trabajar de primera mano con el hardware y el software de sistema para ser más competitivos. Objetivos de la segunda fase Evaluación del clúster basado en procesadores de bajo consumo. En este momento, mediante benchmarks y aplicaciones, realizaremos las pruebas empíricas que demostrarán que nuestra solución al problema está a la altura de la competición. En caso de que no estarlo, se buscará poder señalar de manera precisa la causa de las deficiencias de rendimiento (cuellos de botella) ya sean de diseño, de configuración o de uso incorrecto de las herramientas de evaluación. Dado que ningún integrante del grupo ha participado en algún proyecto similar anteriormente, el proceso de evaluación servirá también para el desarrollo de las habilidades de equipo necesarias en la competición, ya que, gran parte de las técnicas y los test aplicados con el fin de optimizar la máquina y las aplicaciones de este trabajo son extrapolables a otras configuraciones de hardware y otros programas.

22 22 Capítulo 1. Introducción Objetivos individuales Objetivos de la sección de hardware Fase 1 Fase 2 Investigación sobre el estado del arte del hardware en el mundo de HPC, cuáles son las tecnologías más usadas y los componentes necesarios para construir un clúster. Crear un clúster para HPC de manera conceptual para poder competir en el SCC, sin limitación económica. Evaluar la tecnología usada en el SCC y las capacidades del clúster teórico diseñado. Analizar el hardware a nuestro alcance, disponible para construir un clúster para HPC. Montar y configurar el hardware para tener una plataforma funcional con múltiples nodos sobre la que poder ejecutar software Evaluar el rendimiento del hardware, las diferencias entre los resultados esperados y los reales, y comparar con el clúster conceptual de la primera fase y otros sistemas con tecnologías distintas. Objetivos de la sección de software de sistema Fase 1 Fase 2 Investigar que software de sistema es necesario habitualmente para correr aplicaciones del tipo HPC. Estudiar el estado actual en los sistemas de supercomputación para saber que stack de software usan. Seleccionar el software de sistema que necesitemos y elegir el que mejor se nos adapte a nosotros, ya sea por compatibilidad con el hardware o aplicaciones a correr, por documentación existente o requisitos diversos. Basado en la fase 1, instalar y configurar todo el stack de software para crear un clúster totalmente funcional. Es posible que haya que seleccionar otro tipo de software por la plataforma usada. Experimentar con distintas versiones de paso de mensajes MPI para saber realmente cuál se adapta a nuestro sistema

23 Diseño y evaluación de un clúster HPC: aplicaciones 23 Objetivos de la sección de aplicaciones Fase 1 Fase 2 Investigar las aplicaciones en el estado del arte actual y analizar las más relevantes para nuestro proyecto. Averiguar que opciones existen de cara a optimizar las aplicaciones que se ejecutarán en el clúster. Evaluar el rendimiento de las aplicaciones descritas a nivel de nodo y a nivel de clúster.

24 24 Capítulo 1. Introducción

25 Diseño y evaluación de un clúster HPC: aplicaciones 25 Capítulo 2 Planificación y presupuesto 2.1. Planificación Estudio Teórico La primera fase, es de investigación activa, sobre HPC y el SCC, e información sobre todo lo necesario para la instalación y preparación de un clúster. Esto incluye hardware, software de sistema y aplicaciones. Esta parte del proyecto recabará la información necesaria para elaborar un clúster teórico con el que ir a competir en el SCC. No se esperan grandes contratiempos durante esta fase. Los problemas que puedan surgir serán derivados de la poca información disponible sobre algunos componentes del clúster Aplicación Práctica La segunda fase, basada en la experimentación, es en la cual usamos la información recogida en la fase anterior para crear un clúster totalmente funcional. En esta fase es donde es más probable que surjan dificultades técnicas, ya que al ser un mundo casi nuevo, como por ejemplo, que la información recogida en la fase anterior no se ajuste a nuestra arquitectura o software escogido. Los posibles retrasos de ponernos a montar el clúster, instalación de software y benchmarks deberemos tenerlos en cuenta y aplazar el resto de tareas que tengamos, como es la optimización de software y aplicaciones, esto implica que obtendremos peores rendimientos de los que realmente podríamos conseguir. Ya que para poder obtener las métricas de rendimiento necesitamos un clúster funcionando. Y aunque no sea un clúster optimizado todo lo posible, el objetivo de tener un clúster de HPC estará conseguido. Los posibles retrasos que aparezcan en esta sección puede aparecer de errores e incompatibilidades en la fase de instalación del clúster, el tiempo

26 26 Capítulo 2. Planificación y presupuesto adicional será recortado de las tareas más opcionales dispuestas al final del proyecto, correspondientes a la parte de optimización, lo que implicará que obtendremos peores rendimientos de los que realmente podemos conseguir, ya que la instalación y puesta en marcha del clúster es esencial, sin embargo el proyecto estará finalizado ya que tendremos un clúster totalmente funcional.

27 Diseño y evaluación de un clúster HPC: aplicaciones Estimación temporal La temporización en este proyecto toma especial importancia por dos motivos: hay un gran volumen de tareas a realizar que requieren un esfuerzo conjunto y la alta incertidumbre que albergan algunas de ellas. Debido a las fuertes dependencias entre tareas es imprescindible tener en mente las fechas comprometidas para garantizar que todo el grupo cumple con sus objetivos. Desde el principio se acuerdan unas horas fijas de dedicación semanal en grupo. Por un lado, nos ayudará a empezar con buen ritmo con la parte teórica y a funcionar como un equipo, y por otro, tener margen de reacción de cara al final del proyecto donde se prevén más problemas. Tarea Estudio previo Montaje y configuración Benchmarking Análisis de resultados Dedicación por persona 125h 155h 35h 60h Cuadro 2.1: Distribución de horas de trabajo según rol.

28 28 Capítulo 2. Planificación y presupuesto Listado de Tareas Figura 2.1: Listado de Tareas

29 Diagrama de Gantt Figura 2.2: Diagrama de Gantt 29

30 30 Capítulo 2. Planificación y presupuesto Recursos Los recursos que tendremos para este proyecto serán principalmente humanos, tendrán un papel importante para el estudio teórico, el montaje y configuración del clúster. Para la parte de estudio, nos apoyaremos en publicaciones científicas, revistas y papers, además de sitios online especializados de este tipo de hardware y software. También se hará uso de libros que puedan tratar los temas de HPC o clústeres, pese a que estos se prevén en menor medida. Para la parte práctica del montaje del clúster dispondremos principalmente del hardware que nos ofrezca el departamento de computadores y el sitio en el que nos permita colocarlo. Para realizar las medidas de consumo energético se ha dispuesto de un medidor de potencia Yokogawa cedido por el Barcelona Supercomputing Center (BSC). Finalmente, otros recursos utilizados son los ordenadores personales para la redacción de la memoria y conectar en remoto al hardware de desarrollo Presupuesto El proyecto se basa en montar un clúster y configurarlo de manera correcta para poder ejecutar aplicaciones HPC en él. En este documento se hace una estimación del precio de los recursos que se usarán a lo largo del trabajo. Las amortizaciones se calcularán respecto a 6 meses.

31 Diseño y evaluación de un clúster HPC: aplicaciones Recursos humanos Se necesitan técnicos que se encarguen de diseñar, instalar y configurar dicho clúster. Siendo 3 personas en este proyecto, repartiremos las mismas horas para todos. Dentro de cada bloque de horas, cada uno se centrará en una de las divisiones lógicas que hemos establecido: hardware, software de sistema y aplicaciones. Para las decisiones de elección de componentes se han considerado horas de Director de proyecto. Para el montaje e instalación del clúster se necesitarán competencias de Administrador de Sistema. Para realizar los benchmarks adecuados e interpretar resultados se han considerado horas de Analista. Los datos que utilizamos están basados en portales online de ofertas laborales. Rol Horas estimadas Precio por hora Total por persona Total grupo Director de proyecto 125h 50e/h 6250e 18750e Administrador de sistema 155h 26e/h 4030e 12090e Analista 95h 30e/h 2850e 8550e Total 375h 39390e Cuadro 2.2: Costes asociados a recursos humanos Hardware Para la segunda parte del proyecto será esencial el hardware que adquiramos para poder trabajar con él. Datos obtenidos de tiendas online. Producto Precio unitario Unidades Vida útil Amortización total Arndale Octa(Exynos 5420) 150e 6 5 años 90e Fuentes de alimentacion 5e 6 5 años 3e Tarjetas SD 7.5e 12 5 años 9e Power meter Yokogawa 1830e 1 15 años 61e Switch Netgear 100-Mbit 89e 1 10 años 4.45e 1TB Hard Drive Storage 70e 1 7 años 5e 125M cat 5E FTP 68e 1 20 años 1.7e Total e Cuadro 2.3: Costes derivados de la compra de Hardware.

32 32 Capı tulo 2. Planificacio n y presupuesto Tanto las placas Arndale Octa como las fuentes de alimentacio n y el medidor de potencia Yokogawa han sido cedidos por el BSC. El resto del material ha sido cedido por el departamento de Arquitectura de Computadores. Al final de la realizacio n del proyecto se espera deshacer el montaje y retornar ı ntegro todo el material para su posterior reutilizacio n en otras actividades de investigacio n o proyectos Software El software requerido para la instalacio n, benchmarking y ana lisis de la ma quina es de acceso gratuito. Gran parte de de los programas tienen licencias de Software Libre, y las que no, disponen de versiones gratuitas con propo sito no comercial. Necesitaremos distinto software de sistema para gestionar la ma quina como aplicaciones para medir su rendimiento Gastos generales Necesitaremos un sitio donde instalar el clu ster fı sicamente, para ello necesitaremos un sitio con espacio y una instalacio n ele ctrica adecuada adema s de Internet para tener acceso a los sistemas desde fuera. El laboratorio C6-103 cedido tambie n por el departamento de AC cuenta con todo lo necesario para la realizacio n del proyecto. Se ha hecho una estimacio n del coste que supondrı a disponer de un espacio similar. Figura 2.3: Estado del Laboratorio C6-103 al llegar. Facultat d Informa tica de Barcelona Constantino Go mez Crespo

33 Diseño y evaluación de un clúster HPC: aplicaciones 33 Concepto Coste hora Coste total Espacio físico 0.368e 1590e Electricidad 0.083e 358e Internet 0.07e 300e Total 2248e Cuadro 2.4: Desglose de los gastos generales Presupuesto total Concepto Coste estimado + Impuestos Recursos humanos 39390e e(31 % S.S.) Hardware e 210.7e(21 % IVA) Software 625e 300e(21 % IVA) Gastos generales 2248e e(21 % IVA) Total e e Cuadro 2.5: Resumen presupuesto total.

34 34 Capítulo 2. Planificación y presupuesto

35 Diseño y evaluación de un clúster HPC: aplicaciones 35 Capítulo 3 Sumario del Hardware 3.1. Sumario del Hardware En resumen el hardware usado que constituye al clúster es el siguiente: Nodo: Arndale Octa (x6) System On Chip (SoC): Samsung Eynos 5420 Central Processing Unit (CPU): ARM Cortex-A15 (x4) + ARM Cortex-A7 (x4) Graphics Processing Unit (GPU): Mali T-628 Memoria: 2 Gigabyte (GB) 933 Gigahercios (MHz) 100 Mega Bits Por Segundo (Mbps) Interfaz Ethernet Almacenamiento: 4 GB embeded MultiMediaCard (emmc) 16 GB Secure Digital (SD) Switch: NetGear FS524 Cables Ethernet Cobre (x6) Transformadores (x6)

36 36 Capı tulo 3. Sumario del Hardware 3.2. Clu ster de Arndale Octa Figura 3.1: Vista del clu ster (cerveza para comparar la escala) Figura 3.2: Vista del clu ster (cerveza para comparar la escala) Facultat d Informa tica de Barcelona Constantino Go mez Crespo

37 Disen o y evaluacio n de un clu ster HPC: aplicaciones 37 Figura 3.3: Vista cercana del clu ster Figura 3.4: Vista del switch de interconexio n Constantino Go mez Crespo Facultat d Informa tica de Barcelona

38 38 Capítulo 3. Sumario del Hardware Figura 3.5: Vista general del clúster

39 Diseño y evaluación de un clúster HPC: aplicaciones 39 Capítulo 4 Análisis de aplicaciones En esta sección tiene como propósito presentar y analizar las aplicaciones con las que se trabajará a lo largo del proyecto. Algunas de estas aplicaciones tienen especial relevancia, ya sea por su papel en el estado del arte actual o en la competición SCC. En concreto veremos: Los benchmarks HPL y High Performance Computing Challenge (HPCC), en ellos centraremos la mayor atención, ya que son dos aplicaciones a las que se deben enfrentar cada año los equipos de la SCC, y además son utilizadas para confeccionar los ránkings oficiales de rendimiento de clústers. GROningen MAchine for Chemical Simulations (GROMACS) nos servirá como ejemplo para ver que tipo de aplicaciones científicas se ejecutan en los supercomputadores. Finalmente listamos y describimos los microkernels que han sido utilizados en la evaluación del clúster final y que implementan algoritmos de uso recurrente en HPC. Se ha decidido dejar fuera del análisis las aplicaciones específicas para esta edición del SCC por el tiempo que llevaría trabajar con ellas. Al final veremos una lista y una breve descripción de cuáles son. En el estado del arte actual podemos agrupar entonces en dos grupos, aplicaciones de producción y las de benchmarking Aplicaciones de producción Usaremos el término aplicación de producción para referirnos a aquellas aplicaciones que tienen un uso directo en la investigación o industria. Principalmente, estas

40 40 Capítulo 4. Análisis de aplicaciones aplicaciones implementan modelos matemáticos y permiten simular experimentos o fenómenos físicos. Una manera general de determinar la calidad de este tipo de aplicaciones es la relación entre el volumen de datos de entrada, la precisión y el tiempo en obtener los resultados. Generalmente, el volumen de datos a procesar de estas aplicaciones es enorme, así que para poder obtener resultados en un espacio de tiempo razonable, es necesario utilizar ordenadores con gran capacidad de cálculo. Es por tanto que cuando se diseña un clúster HPC el principal objetivo es el de conseguir una configuración de hardware que ofrezca buenos resultados en la aplicación o conjuntos de aplicaciones que queremos ejecutar en él. Las aplicaciones de producción pueden ser usadas, entre otros, en la simulación de dinámica de fluidos, que permite observar el comportamiento físico de materiales o elementos fluidos. Un ejemplo concreto puede ser la simulación de la aerodinámica de un coche dentro de un túnel de viento. Otro uso es en dinámica molecular, permitiendo realizar pruebas con fármacos sin necesidad de usar personas u otros animales. Un ejemplo de este tipo de aplicaciones es GROMACS, explicado un poco más adelante Herramientas de benchmarking Comúnmente, los benchmarks realizan operaciones simples con el fin de estresar partes del hardware y obtener una medida de rendimiento de éstas. Estas medidas de rendimiento las compararemos a su vez con otras obtenidas en otras condiciones, ya sea porque hemos modificado algún parámetro de ejecución o porque han sido obtenidas en otro clúster. Es importante conocer en que consisten dichas operaciones para poder hacer un uso inteligente de estas herramientas. Obtener buen rendimiento al ejecutar una aplicación de producción concreta no implica que el resto de aplicaciones vayan a obtener también buen rendimiento. A bajo nivel esto puede ser debido a muchas causas: diferente patrón de accesos a memoria, número de llamadas a sistema, mal balanceo de carga, etc. En resumen diremos que cada aplicación tiene necesidades computacionales diferentes. Es por eso que nos interesa poder evaluar de manera consistente los recursos hardware del clúster. Por consistente nos referimos a obtener valores que representen las capacidades de la máquina en todos sus niveles. Capacidades de cómputo, comunicaciones, memoria y la escalabilidad al ejecutar aplicaciones. Por ejemplo, supongamos que queremos hacer una estimación del rendimiento que se obtendrá en un tipo de aplicación que hace cálculo intensivo con operaciones de coma flotante, y cuyos accesos a datos son mayoritariamente a vectores en orden secuencial. Podemos prever el rendimiento basándonos en los resultados obtenidos en

41 Diseño y evaluación de un clúster HPC: aplicaciones 41 la ejecución en el mismo clúster de un benchmark que tenga características similares. Hemos seleccionado los benchmark HPL y HPCC, para determinar en qué nos pueden ayudar, y que más tarde nos permitirá hacer una evaluación lo más completa posible del clúster que se ha montado LINPACK Benchmarks LINPACK es una librería de álgebra linear. Originalmente fue escrita en Fortran 66 en 1980 y su propósito era el de ser utilizada en supercomputadores.[22] Basándose en esa librería, se crearon una serie de benchmarks con el propósito de medir la potencia computacional en FLOPS (de doble precisión) de un sistema. Estos benchmarks se conocen como LINPACK Benchmarks. Los LINPACK Benchmarks generan y calculan la solución de un sistema de ecuaciones denso del tipo Ax = b y de tamaño NxN[23]. a 1,1 a 1,2... a 1,n x 1 b 1 a 2,1 a 2,2... a 2,n x = b 2. a n,1 a n,2... a n,n x n El primero fue LINPACK 100, que como indica el nombre, ofrecía medidas de rendimiento resolviendo sistemas de tamaño N = 100. Las siguientes versiones, LINPACK 1000 y HPLinpack, se crean para poder evaluar supercomputadores con más potencia y nuevas arquitecturas (memoria distribuida).[13] b n HPL HPL website: HPL es la implementación de HPLinpack Benchmark más relevante. Es una versión paralela y escalable preparado para ejecutarse con un modelo de memoria distribuida. Es el benchmark utilizado para elaborar la lista Top500 de supercomputadores Está implementación es mantenida por la Universidad de Tenesse y actualmente se encuentra en la versión 2.1 de Octubre 2012, está escrita en C para facilitar su portabilidad. Para su ejecución HPL requiere tener instaladas en el sistema librerías

42 42 Capítulo 4. Análisis de aplicaciones que implementen Message Passing Interface (MPI) y Basic Linear Algebra Subprograms (BLAS).[1] Complejidad y tamaño del problema Para resolver el sistema de ecuaciones, HPL utiliza el método de factorización Lower- Upper (LU) y luego resuelve el sistema triangular superior (U) Ux = y. La complejidad de este método es 2 3 n3 + 2n 2, es decir, necesitamos esa cantidad de operaciones de coma flotante (64-bits) para obtener la solución al sistema. De ahí extraemos la fórmula que utiliza HPL para medir el rendimiento en Gigaflops (GFLOPS). P HP L = 2 3 n3 + 2n 2 t segundos 10 9 (4.1) Cabe decir que en caso de querer optimizar la implementación, queda excluido cualquier método que varie la complejidad del algoritmo (p.ej: algoritmo de Strassen), ya que se debería modificar también la fórmula del rendimiento. Sería utilizar un benchmark diferente. El espacio en memoria durante la ejecución depende de la matriz A, siendo la matriz A de tamaño n por n, esta ocupará 8n 2 bytes. Los datos que componen la matriz A y el vector b se obtienen a partir de un generador pseudo-aleatorio de números decimales con una media esperada de cero[9]. Eficiencia paralela Con el fin de balancear el volumen de trabajo a realizar en cada nodo, HPL divide en bloques de tamaño BSxBS y los distribuye de manera cíclica entre procesos[9]. El número de operaciones a realizar es proporcional al tamaño de los datos de entrada. Debido al blocking, el patrón de acceso a memoria explota la localidad espacial y temporal de la cache. Si bien en algún momento se requiere comunicación entre procesos todos-con-todos, el mayor estrés lo sufren las unidades de coma flotante y la conexión de los registros a la caché de cada procesador. Al final de la ejecución se obtiene una medida del rendimiento en GFLOPS. Una ejecución de HPL optimizada suele moverse en el margen de % del Peak Performance (PP). Hemos dicho que HPL nos da una medida de rendimiento, sin embargo esta medida solo se puede extrapolar a aplicaciones que hagan un uso similar de los recursos

43 Diseño y evaluación de un clúster HPC: aplicaciones 43 de la máquina. Qué pasa con el resto de aplicaciones que usan diferentes de recursos? Hay que seguir haciendo benchmarking HPCC HPCC website: HPCC (High Performance Computing Challenge) es una colección de benchmarks confeccionada con el propósito es el de ofrecer medidas de rendimiento de un sistema HPC más completas que las que ofrece HPL, para ello, utiliza variedad de aplicaciones con diferentes tipos de operaciones y patrones de acceso a memoria. HPCC es desarrollado por la Universidad de Tenesse bajo el programa DARPA HPCS[5]. Los desarrolladores de HPCC mantienen además un ránking propio en la sección results de su página web. Anualmente se celebra una competición, que tiene lugar en la Supercomputer Conference, llamada HPC Challenge Awards Competition, y dónde se premia al mejor resultado del ránking y a la mejor implementación de una lista de kernels seleccionados[7]. El listado de benchmarks que componen HPCC, una breve descripción de la operación que realizan y la medida de rendimiento obtenida en cada uno de ellos se puede ver en la tabla 4.2. Benchmark Operación Medida HPL Resuelve un sistema de ecuaciones GFLOPS DGEMM Multiplicación de matrices (64-bit) GFLOPS STREAM Conjunto de operaciones con vectores GB/s PTRANS Transposición de matrices GUP/s RandomAccess Acceso aleatorio a datos enteros GUP/s FFT Transformada discreta de Fourier GFLOPS b eff Varios patrones de comunicación MPI GB/s Cuadro 4.1: Operación y medida de rendimiento de los benchmarks de HPCC. Una representación gráfica del grado y tipo de localidad de los accesos a memoria se puede ver en la figura 4.1. De cada benchmark podemos encontrar hasta tres versiones: Single, Embarrassingly Parallel (EP) y Global. Estas versiones pretenden estresar diferentes partes del hardware suponiendo varios escenarios: uniprocesador, multiprocesador y multinodo. En las versiones single el benchmark se ejecutará utilizando de manera aislada los cores de nuestro clúster, por tanto, no hay comunicación de ningún tipo ni entre procesadores ni entre nodos. Sirve como medida base para evaluar la escalabilidad

44 44 Capítulo 4. Análisis de aplicaciones Figura 4.1: Patrón de acceso a datos según aplicación de la aplicación en nuestro sistema. Las versiones Embarrasingly Parallel solo se permiten la comunicación entre cores del procesador de un mismo nodo. Ejecutan el benchmark una vez por nodo y se quedan con la mejor. Permite determinar la eficiencia paralela a nivel de nodo. Las Global apuntan a hacer un uso completo del clúster, durante la ejecución habrá comunicación entre procesadores de diferentes nodos para obtener datos de la memoria. Permite determinar la eficiencia paralela a nivel de clúster y evaluar el rendimiento de la red de comunicación entre nodos. Nota: Los nombres que reciben estas versiones en los informes de resultados son Single, Star y MPI. Una representación gráfica del comportamiento de las versiones descritas puede verse en la figura 4.2 Figura 4.2: Esquema de comunicaciones según la versión de benchmark.

45 Diseño y evaluación de un clúster HPC: aplicaciones 45 Las versiones disponibles para cada uno de los benchmarks en la tabla?? Benchmark Single EP Global HPL DGEMM STREAM PTRANS RandomAccess FFT Cuadro 4.2: Versiones disponibles para cada benchmark. A continuación un pequeño análisis individual de las aplicaciones. Se excluye HPL por que ya ha sido explicada anteriormente DGEMM Double-precision GEneral Matrix Multiply (DGEMM), se define como una operación de multiplicación de matrices A y B tal que C αab + βc donde A, B, C R n n, α, β R y n N. La complejidad de la región a evaluar es de 2n 3 operaciones de coma flotante. Como en HPL, no se puede aplicar ninguna optimización que reduzca la complejidad del algoritmo. Por defecto en esta implementación, resuelve la multiplicación con una llamada a la correspondiente rutina CBLAS. El uso de recursos hardware del multiprocesador dependerá de las optimizaciones en la librería instalada(multithreading, vectorización, etc). De todos modos, como HPL, en DGEMM el mayor estrés lo sufre el canal de registros a caché[4] STREAM STREAM permite medir el ancho de banda entre el procesador y la memoria principal haciendo operaciones simples con vectores de gran tamaño. Se compone de 4 test u operaciones. Supongamos los vectores a, b, c R n y los escalares α, β R : COPY, c a SCALE, b αc ADD, c a + b TRIAD, a b + αc

46 46 Capítulo 4. Análisis de aplicaciones En estas operaciones no hay reaprovechamiento de datos, pero los accesos son secuenciales, así que se aprovecha al máximo la localidad espacial. Cada una se mide en regiones de tiempo diferentes pero se repiten almenos 10 veces dentro de cada región para obtener una mejor muestra. El tamaño de datos para vectores de m elementos es 16m bytes para COPY y SCALE, y 24m bytes para ADD y TRIAD, con complejidad 2n y 3n respectivamente. La medida de rendimiento obtenida se expresa en GB/s que representa el ancho de banda sostenido de acceso a la memoria RAM de un nodo[4] PTRANS Los benchmarks explicados a partir de ahora están pensados para testear la capacidad de comunicaciones de la red. PTRANS, Parallel TRANSposition, realiza la transposición de una matriz A y le suma una matriz B. Descripción de la operación: A = A T + B donde A, B R n n. Para transponer la matriz se asigna un bloque de datos a cada proceso MPI y entre ellos se comunican por parejas. El rendimiento y el tamaño son O(n 2 ), y los datos que contienen las matrices se generan de manera aleatoria RandomAccess RandomAccess mide la tasa de actualizaciones aleatorias de memoria con enteros, esta medida se expresa en Giga UPdates per Second (GUPS). Este benchmark tiene implementaciones de las tres versiones. Se crea una tabla T de tamaño 2 n y una secuencia A i de de enteros de 64 bits de longitud 2 n+2 generados con la función x 2 + x + 1. La secuencia pseudo-aleatoria nos servirá para indicar a que posición de la tabla se deben hacer las actualizaciones de memoria. En la implementación MPI cada procesador genera una parte de la secuencia de índices y realiza sus propias actualizaciones de memoria, en consecuencia se generan gran cantidad de mensajes de poco tamaño siendo necesario comunicación todos con todos. De este modo se permite analizar el impacto la latencia introducida en el paso de mensajes. La comunicación ser realiza todos-con-todos. Los accesos aleatorios provocan que no exista ningún tipo de localidad y poder evitar el aprovechamiento de la jerarquía de memoria (especialmente los niveles de cache) y poder determinar el coste con máxima penalización de acceder a memoria compartida en nuestro sistema [8].

47 Diseño y evaluación de un clúster HPC: aplicaciones FTT Fast Fourier Transformation (FFT), calcula la transformada de fourier de un vector unidimensional de gran tamaño. Este kernel es habitualmente utilizado en aplicaciones reales. Siendo N es el numero de datos (tamaño del vector) y x, z C n. n 1 Z k = x j e 2iπjk/n ; 1 k n (4.2) j=0 Los resultados de este benchmark se expresan en GFLOPS, es calculado en base al tiempo y la complejidad del algoritmo 5n log 2 n. Durante la ejecución hay un gran volumen de intercambio de mensajes largos entre procesadores[4] Comunications latency and bandwidth Sirve para medir el ancho de banda efectivo y la latencia de la red de interconexión del clúster mediante mensajes punto a punto MPI. No se realizan cálculos de ningún tipo dentro de la región evaluada. Basado en b eff pero con cambios en los patrones de comunicaciones, el número de operaciones que ejecuta es directamente proporcional al numero de procesadores [5]. En concreto, obtiene medidas de latencia y ancho de banda con 3 patrones: Pingpong, Natural Ring y Random ring Figura 4.3: Conexiones que realiza MPI en Natural ring Para medir latencia cada nodo intercambia mensajes de 8 bytes de tamaño, para medir el ancho de banda los mensajes son de 2 MB. Se realizan conexiones en los dos sentidos. La latencia se expresa en milisegundos y en ancho de banda en GB/s como es habitual.

48 48 Capítulo 4. Análisis de aplicaciones Figura 4.4: Un posible patrón de conexiones que realiza MPI en Random ring 4.5. GROMACS GROMACS es un paquete de software de dinámica molecular que permite hacer simulaciones con sistemas de cientos de millones de partículas. Fue desarrollado originalmente por la Universidad de Groningen y hoy en día es mantenido por la comunidad científica y universidades de todo el mundo. Una de sus particularidades es que implementa gran cantidad de optimizaciones para mejorar su rendimiento. Entre ellas, el uso de librerías matemáticas optimizadas, inclusión en el código soporte hasta la última versión Single Instruction Multiple Data (SIMD) x86 y soporte para CUDA 2.0 en adelante[10]. Un caso de uso de esta aplicación es la plataforma de computación distribuida de la Universidad de Stanford, esta plataforma permite a los usuarios colaborar en proyectos de investigación científica, principalmente relacionadas con al cura de enfermedades, cediendo tiempo de CPU de sus ordenadores domésticos. El procedimiento es el siguiente: un proveedor central, servidores de la Universidad de Stanford, despacha unidades de tareas a los ordenadores que tienen el cliente de la plataforma instalado. En baja prioridad, para no interferir con las tareas que este realizando el usuario, mediante el uso de la CPU y/o GPU se ejecutan programas como GROMACS. Como entrada de datos se utiliza la unidad de trabajo asignada en ese momento. Al terminar los cálculos, el cliente envía los resultados a los servidores centrales y vuelta a empezar[19] [21] Microkernels Usaremos el término microkernel para referirnos a pequeños programas que implementan algoritmos usados habitualmente en software de investigación científica. Los microkernels aquí descritos forman parte de un conjunto de benchmarks desarrollados en el BSC y utilizados en el proyecto Mont-blanc para obtener mediciones de rendimiento de sus plataformas [16] [12]. Cada microkernel pone a prueba diferentes partes de la microarquitectura del SoC/máquina a evaluar; se han agrupado por este criterio. A continuación una breve descripción de cada uno [11].

49 Diseño y evaluación de un clúster HPC: aplicaciones Patrones de acceso a memoria Vector operation. Toma dos vectores de un tamaño N y genera el resultado de un tercero de tamaño N. Realiza sumas uno a uno entre los dos vectores. Permite evaluar el acceso a datos secuencial (localidad espacial). 2D Convolution y 3D stencil. Toman como entrada una matriz 2D de tamaño NxN y una 3D de tamaño NxNxN respectivamente. Ambos generan resultados del mismo tamaño que sus entradas y calculan cada posición de la matriz resultado a partir de la entrada como una combinación lineal del mismo punto y sus adjacentes. Estos benchmarks permiten evaluar el rendimiento de las GPU cuando se realizan accesos a memoria de tipo strided y cuando son intercalados con accesos secuenciales. N-Body. Simula la interacción gravitacional entre una serie de partículas con velocidad, masa y posición propias. Evalúa el rendimiento frente a un patrón de accesos a memoria irregular Float-Point peak performance FFT y DMMM, son implementaciones de las conocidas rutinas de multiplicación de matrices y transformada de Fourier. Ya han sido explicados en la sección HPCC. Se pueden optimizar mediante el uso de BLAS y FFTW. Atomic Monte-Carlo Dynamics. Su característica principal es que al realizar simulaciones independientes, durante su ejecución paralela, no necesita comunicación entre entre threads permitiendo obtener medidas de rendimiento pico Overhead al paralelizar La ejecución en paralelo de un programa siempre introduce un overhead respecto a su versión serie. Según el tipo de aplicación el sincronismo entre threads y la serialización al reducir puede suponer una caída en el rendimiento importante. Los siguientes tres microkernels nos ayudarán a evaluar el rendimiento que ofrece nuestro multiprocesador en estos casos. Reduction. A partir de un vector de entrada calcula un único valor escalar resultado de la suma por etapas de los elementos del vector. Útil para evaluar como las GPUs pasan progresivamente de el calculo masivo en paralelo a secuencial. Histogram. Calcula el histograma de un vector, como en el caso de reduction evalúa el rendimiento al reducir operaciones con mucho paralelismo. Merge Sort. Evalúa los posibles cuellos de botella derivados del uso de barreras

50 50 Capítulo 4. Análisis de aplicaciones de sincronización Aplicaciones del SCC 14 En este apartado mencionamos el conjunto de aplicaciones especificas para la edición de este año del SCC. Quantum ESPRESSO es un paquete de software que integra diversos programas para cálculos eléctrico-estructurales y modelado de materiales. Totalmente Open Source se puede descargar y obtener mucha documentación de su página web. [15] OpenFOAM (Open Field Operation and Manipulation) también Open Source es un paquete de software que permite realizar un gran rango de simulaciones: desde dinámica de fluídos hasta transferencia de calor. [14] Por último, GADGET software para simulaciones N-body/SPH (Smoothed-particle Hydrodinamics) [18] En resumen De cara a evaluar de manera completa nuestro clúster sería conveniente ejecutar al menos HPL y HPCC. En concreto, la potencia de cálculo la mediremos con HPL, DGEMM y FFT. El ancho de banda a memoria RAM con STREAM. Finalmente las capacidades de la red de interconexión se pueden medir con los test de conectividad de HPCC y el acceso a memoria distribuida de manera más aplicada con PTRANS y RandomAccess. Los microkernels, por la implementación de la que disponemos, solo se usarán para evaluar el rendimiento en modo nodo único (Single Node).

51 Diseño y evaluación de un clúster HPC: aplicaciones 51 Capítulo 5 Optimización de aplicaciones Una vez se consigue la ejecución correcta de una aplicación, es el momento de analizar el rendimiento obtenido y a partir de ahí pensar que optimizaciones se pueden aplicar para mejorar tales resultados Medidas de rendimiento A continuación se comentan las principales medidas de rendimiento utilizadas para evaluar el rendimiento de un clúster y el impacto de las optimizaciones Speed Up Speed Up indica la mejora de rendimiento obtenida relativa a una ejecución base. En paralelismo, se toma como base la ejecución secuencial (T 1 ) y con ella se relacionan el resto de ejecuciones incrementando el número de procesadores (T p donde p es el número de procesadores)[6]. SpeedUp = T 1 T p (5.1) Eficiencia paralela La eficiencia paralela es la relación entre el Speed Up y el número de procesadores utilizados en la aplicación. Eff p = S p P (5.2) De manera ideal, el tiempo de ejecución de un programa se reduce de manera proporcional al número de procesadores que utilizamos, es decir, respecto a un procesador,

52 52 Capítulo 5. Optimización de aplicaciones si usamos 4 procesadores va 4 veces más rápido (Speed Up 4x). El valor de la eficiencia en estos casos es 1 (el máximo). En la práctica esto no sucede, hay mucha maneras de perder eficiencia: creación de threads (overhead llamadas a sistema), dependencias (barreras de sincronismo), granularidad de tareas o scheduling inadecuado provocando problemas de desbalanceo de carga, uso de un algoritmo con insuficiente grado de paralelismo respecto al número de procesadores, false sharing, mala red de interconexión, etc. Existen dos tipos de escalabilidad: strong scaling se define como la variación de tiempo con en base a un número de procesadores variable y un tamaño de problema fijos, y weak scaling que es el caso inverso, mismo número de procesadores y tamaño de problema variable Ley de amdahl La ley de amdahl se utiliza para obtener el valor de mejora máxima alcanzable por un programa cuando únicamente se mejora una parte. La ley de amdahl aplicada a un programa paralelo es la siguiente (γ es la región paralela del programa y p el número de procesadores): S p = 1 (1 γ) + γ p (5.3) La metodología para la optimización de rendimiento basada en la ley de amdahl consiste en lo siguiente, se localizan las funciones del programa donde se invierte el mayor tiempo y es ahí donde se concentran los esfuerzos de optimización. Esto es exactamente lo que se pretende mediante el uso de HPC, utilizar muchos procesadores para reducir el tiempo de ejecución de la región paralela de la aplicación. Con este propósito usaremos herramientas de análisis de rendimiento paralelo Herramientas de análisis Mediante el uso de herramientas de análisis de rendimiento se pretende obtener la información relevante asociada a la ejecución de una aplicación, de esta manera encontraremos los cuellos de botella causantes del mal rendimiento. Estos análisis sirven para indicar qué optimizaciones darán mayor Speed Up, y es más, tratar de optimizar una aplicación sin realizar análisis puede suponer grandes pérdidas de tiempo. Para hacer mediciones en un clúster multinodo se requieren aplicaciones capaces

53 Diseño y evaluación de un clúster HPC: aplicaciones 53 de recopilar información, en forma de trazas, de la ejecución de todos los procesos de la aplicación distribuidos por el clúster. Una de estas herramientas es EXTRAE EXTRAE y Paraver EXTRAE es una herramienta software que permite generar trazas de aplicaciones paralelas mediante instrumentación. En estas trazas se recopila información de los contadores de sistema, numero de accesos a funciones y su temporización. Es capaz de instrumentar aplicaciones programadas con MPI, OpenMP, pthreads, OpenCL y StarSS. EXTRAE también ofrece una API que nos permite instrumentar el código manualmente. La herramienta dispone de varios métodos mediante los cuales es capaz de instrumentar y obtener trazas. Ofrece soporte para DynINST, una librería que permite inyectar instrucciones en binarios de manera dinámica y estática. Otra manera de instrumentar es inyectando librerías compartidas durante la precarga de un ejecutable. Esto se consigue editando la variable de entorno en Linux LD PRELOAD. Durante la precarga se comprueba si el binario a ejecutar tiene llamadas a símbolos que coinciden con las librerías indicadas en la variable de entorno, de darse tal caso, el sistema operativo redirecciona las llamadas hacia la librería compartida. EXTRAE aprovecha esta característica para introducir wrappers instrumentados a la funciones. Algunas características a destacar de la información que recopila. El timestamp de se hace utilizando funciones de baja latencia que permiten precisión de nanosegundos. Utiliza la librería PAPI que además de los contadores de sistema permite obtener información sobre el consumo y la temperatura del procesador. Por último destacar que es capaz de referenciar el código fuente permitiendo encontrar fácilmente las funciones a optimizar. Una vez tengamos las trazas es necesario usar una herramienta que permita visualizar de manera gráfica los datos para un análisis profundos, Paraver es una de ellas. Es flexible y permite guardar vistas de las trazas para retomar o compartir el análisis en cualquier momento. Además de analizar el rendimiento individualmente permite comparar varias trazas a la vez y también establecer nuestras propias métricas Instalación y configuración de programas Se ha decidido incluir esta sección en este capítulo porque en él se muestra como habilitar el uso de librerías de álgebra optimizadas como ATLAS. En ella se detallan los pasos de instalación y configuración de los 3 paquetes de aplicaciones que se han

54 54 Capítulo 5. Optimización de aplicaciones ejecutado en el clúster. HPL Para instalar este programa hemos instalado previamente ATLAS y OpenMPI. HPL se puede descargar de la página oficial: Una vez descargado ejecutaremos: //Descomprimimos el paquete $ tar xf hpl-2.1.tar.gz $ cd hpl-2.1 //Copiamos un makefile predefinido $ cp Make.ubuntuARM setup/make.pii_cblas Entonces editaremos diferentes regiones del fichero Make.ubuntuARM de la siguiente manera. A destacar la configuración de la última región donde hemos habilitado el uso de la versión optimizada de CBLAS del paquete ATLAS. #Platform identifier ARCH = ubuntuarm [...] #HPL Directory Structure / HPL library TOPdir = /media/ancient/benchmarks/hpl [...] #Message Passing library (MPI) MPdir = /usr/local/openmpi1.8.1 MPinc = MPlib = [...] #Linear Algebra library (BLAS or VSIPL) LAdir = /usr/local/atlas LAinc = LAlib = $(LAdir)/lib/libatlas.a $(LAdir)/lib/libcblas.a [...] #Compilers /linkers CC = $(OPENMPI)/bin/mpicc LINKER = $(OPENMPI)/bin/mpif77 Ahora, HPL ya está listo para compilar.

55 Diseño y evaluación de un clúster HPC: aplicaciones 55 $ make arch=ubuntuarm // El anterior comando crea la carpeta bin/ubuntuarm con el ejecutable $ cd bin/ubuntuarm/ Antes de ejecutar hará falta configurar HPL.dat de manera adecuada y crear el hostfile con las direcciones IP de los nodos donde queremos ejecutar el benchmark. Una vez tengamos eso estamos listos para lanzar la aplicación mediante los siguientes comandos. $ mpirun -np <#procesadores> -hostfile <hostfile> xhpl HPCC Por suerte para nosotros el benchmark HPCC requiere exactamente los mismos pasos a excepción de uno. Durante la configuración del fichero Make.ubuntuARM antes de compilar el benchmark habrá que editar el parámetro TOPdir. #HPL Directory Structure / HPL library TOPdir =../../.. También encontramos que el fichero de configuración para ejecutar los benchmarks HPL.dat tiene otro nombre: hpccinf.txt. Microkernels Para la instalación y configuración de los microkernels hemos seguido estos pasos: $./setup.sh $ mkdir build $ cd build //Indicamos el path de la libreria ATLAS en los flags de compilacion $ CPPFLAGS=-I/usr/local/atlas/include LDFLAGS=-L/usr/local/atlas/lib./configure --prefix= pwd /../ //Si lo hemos configurado correctamente al finalizar del script configure obtendremos un mensaje indicando que se hara uso de CBLAS. $ make $ make install Ahora ya podemos elegir entre ejecutar uno por uno los diferentes microkernels o lanzar una ejecución de todos ellos con los comandos: $ cd.. $./benchmark.py En caso de querer editar el número de iteraciones a ejecutar o el tamaño del problema deberemos editar el fichero benchmark.py.

56 56 Capítulo 5. Optimización de aplicaciones 5.4. Optimizando el fichero de configuración de HPL y HPCC Como hemos mencionado, el benchmark HPL dispone de un fichero de configuración HPL.dat que permite definir más de 20 parámetros que hacen referencia a aspectos de la ejecución. Veamos cuales son: A cada parámetro le corresponde una línea del fichero. Líneas 1-2: sin utilizar, permiten al usuario escribir comentarios Línea 3: Permite especificar el nombre del fichero de salida Línea 4: Permite especificar hacia donde redireccionar la salida. Línea 5: Número de tamaños de problema a ejecutar. Línea 6: Tamaños de problema, es decir, dimensiones de la matriz del sistema de ecuaciones. Línea 7: Numero de tamaños de bloque a ejecutar. Línea 8: Tamaños de bloque en los que se dividirá la matriz Línea 9: Como se distribuyen los procesos MPI entre nodos. Línea 10: Número de grids (PxQ) de procesos a ejecutar. Línea 11: Valores de P Línea 12: Valores de Q Línea 13: Threshold Líneas 14-21: Tipo de subdivisión en paneles de la matriz. Línea 22: Número de tipos de broadcast a ejecutar. Línea 23: Permite elegir diferentes patrones de comunicación de mensajes MPI. Línea 24: Profundidad lookahead. Línea 25: Valor de la profundidad. Línea 26: SWAP. Línea 27: Umbral de SWAP. Línea 28: Permite transponer o no la matriz L1. Línea 29: Permite transponer o no la matriz U. Línea 30: Equilibrado

57 Diseño y evaluación de un clúster HPC: aplicaciones 57 Línea 31: Alineamiento de memoria para doble precisión Con la información conocida sobre los parámetros y una serie de pruebas empíricas se ha optimizado el fichero de configuración para obtener los mejores resultados en la medida de lo posible. A continuación veremos la justificación de los valores que más impacto han tenido sobre el rendimiento de HPL. Tamaño de problema. La documentación de HPL recomienda utilizar alrededor de un 80 % de la memoria física disponible. En nuestras pruebas sobre un único nodo a partir de 12K elementos (51 % del total de memoria) la mejora es inapreciable. En multinodo el impacto del tamaño de problema es mucho mayor y si se recomiendo ocupar el máximo (en nuestro caso 32K elementos, casi 8 GB). Tamaño de bloque. Utilizar blocking aumenta el rendimiento debido a que se explota la localidad espacial y temporal de datos. En las pruebas hemos obtenido 64 ya que se ajusta al tamaño de la caché L1 (32KB). Factorización y recursividad de paneles Estos parámetros varían la manera en que HPL resuelve el sistema de ecuaciones. No se ha podido analizar en detalle por el coste y la complejidad del algoritmo. Lo que si se ha podido observar que combinaciones de valores ofrecían los mejores resultados. Estos son: R2R2, C2C2 y R2C2. Alineamiento, equilibrado y transposición. En alineamiento debemos especificar 8, ya que es el tamaño de bytes de una palabra en doble precisión, activaremos el equilibrado con valor 1 y habilitaremos la transposición de las matrices L1 y U dejando el valor a 0. La transposición de matrices permite explotar la temporalidad local de los accesos a memoria durante las operaciones entre matrices donde la segunda matriz se recorre por columnas. Nota: HPCC utiliza el mismo tipo de fichero de configuración con algunas opciones más que no hemos precisado describir. Únicamente tener en cuenta que el tamaño de problema de los diferentes test dentro de HPCC se calcula en base al valor especificado en la línea 6.

58 58 Capítulo 5. Optimización de aplicaciones

59 Diseño y evaluación de un clúster HPC: aplicaciones 59 Capítulo 6 Evaluación del clúster 6.1. Benchmarking single node Inicialmente, se han realizado una serie de pruebas para conocer la potencia de la unidad básica de nuestro clúster, el nodo. Para evaluar el SoC Exynos 5 Octa se han seleccionado el conjunto de microkernels descritos en el capítulo de análisis de aplicaciones y HPL. El conjuntos de pruebas que se llevará a cabo es el siguiente: Primero, se ejecutará la versión OpenMP de los microkernels con 1, 2 y 4 threads en simple y doble precisión con el propósito de evaluar la eficiencia paralela del SoC en variedad de situaciones. Segundo, se ejecutará el benchmark HPL con 1, 2 y 4 procesos MPI. Compararemos la eficiencia computacional conseguida en HPL con la de los 9 primeros supercomputadores más MareNostrum del Top500. La eficiencia computacional se obtiene de la relación entre GFLOPS obtenidos en HPL y pico teórico de GFLOPS del SoC. Finalmente, de las mediciones de consumo eléctrico con un medidor de potencia, se hace una comparación en este caso con los primeros 9 primeros supercomputadores más MareNostrum del ránking Green500. Los benchmarks con peores resultados en escalabilidad indicarán los puntos débiles (cuellos de botella) de nuestro SoC. Además podremos estudiar el comportamiento frente a diferentes patrones de acceso a memoria Metodología Los microkernels se ejecutan con el script Python subministrado con el paquete: Benchmark.py. En él se pueden especificar parámetros para configurar la ejecución

60 60 Capítulo 6. Evaluación del clúster de los diferentes test: volumen de datos, número de iteraciones, versiones, tipos de datos (single, double), etc. Para conseguir muestras fiables se han especificado un números de iteraciones suficiente para conseguir tiempos de ejecución serie superiores a los 40 segundos en cada benchmark. Los resultados obtenidos se vuelcan en ficheros de texto; un fichero por cada versión y microkernel. datatype,numiterations,numthreads,n,totaltime,avgtime,stddev,gflops,validated float,25,1,8192, , , , ,n/a Figura 6.1: Ejemplo de fichero de resultados del microkernel N-Body OpenMP En la figura vemos un ejemplo de fichero CSV de resultados. En los resultados se especifica los parámetros usados durante la ejecución, medidas de tiempo medias y totales con su desviación estándar y la una medida de rendimiento (GFLOPS) en base al tiempo de ejecución medio. Los resultados de la ejecución de HPL se han obtenido con el set de parámetros optimizado descrito en el capítulo anterior, y aparte del uso de ATLAS no se han hecho más optimizaciones. El comando utilizado ha sido: $ > sudompirun np < 1, 2, 4 > hostfile < HF SingleNode >./xhpl donde < 1, 2, 4 > corresponde al número de procesos MPI para cada una de las 3 muestras y < HF SingleNode > es un fichero de Hosts MPI con una única línea con la dirección de la tarjeta de loopback. La metodología para la medición de consumo eléctrico y resultados está detallada en la sección del trabajo de hardware?? Resultados

61 Diseño y evaluación de un clúster HPC: aplicaciones 61 Figura 6.2: Speed Up con precisión de 32-bits. Figura 6.3: Speed Up con precisión de 64-bits.

62 62 Capítulo 6. Evaluación del clúster Figura 6.4: Comparativa de la eficiencia paralela de simple y doble precisión con 4 threads. Los resultados de escalabilidad vistos en las figuras 6.2 y 6.3 son bastante buenos. En precisión simple, la eficiencia paralela con 4 threads ronda el 90 %+ excepto en VecOP. Montecarlo demuestra que en caso de no compartir datos entre threads se alcanza una eficiencia del 99 %. Sobre el detrimento de eficiencia de doble precisión frente a simple observado en la figura 6.4, se debe a que cada procesador tiene más tiempo ocupado el bus de memoria para traerse datos de 64 bits, y siendo la memoria un recurso compartido entre procesadores, implica que el resto de threads deben esperar hasta que el bus esté disponible. Los benchmarks que hacen un uso importante del ancho de banda a memoria como VecOP y 3D stencil son los más afectados. Como nota, sorprende la mejora de N-body en doble respecto a simple precisión, haría falta estudiar en detalle que operaciones se realizan para obtener esos resultados. HPL En la figura 6.5 vemos la eficiencia computacional obtenida con 1, 2 y 4 procesos MPI en un mismo SoC. A partir del rendimiento pico de un núcleo 800MHz (1.6 GFLOPS) calculamos el rendimiento pico del SoC, en total 6.4 GFLOPS.

63 Diseño y evaluación de un clúster HPC: aplicaciones 63 Figura 6.5: Rendimiento y efficiencia paralela con HPL (single node). Con el resultado de ejecutar HPL con 4 procesos MPI en un mismo nodo 4,27 GF LOP S (precisión doble) calculamos la eficiencia computacional.

64 64 Capítulo 6. Evaluación del clúster Eff.comp. = 4,27 6,4 = 0, (6.1) Tomamos un 67 % de eficiencia. Veamos como de bueno es este resultado respecto a máquinas del TOP 500. En la figura 6.6 se aprecia como la eficiencia conseguida (linea horizontal) hasta el momento entra en unos márgenes aceptables. A nuestro favor decir que los cálculos en HPL son de doble precisión, la operación en coma flotante tarda lo mismo pero los accesos a memoria requieren más tiempo. En nuestra contra, los valores obtenidos no se ven afectados por el overhead introducido por la red de interconexión para realizar el paso de mensajes. En la siguiente sección Evaluación multinodo se verá el impacto que tiene el uso de la red. Figura 6.6: Eficiencia respecto al PP de las primeras posiciones del top500. Como nota, destacar que Supercomputadores como el Tiahne, Titan y Stampede muestran peor eficiencia siendo 3 de los 4 supercomputadores, entre las 10 primeras posiciones, que hacen uso de aceleradores (Xeon Phi y NVidia K20). Sabiendo que hay una máquina con aceleradores que ofrece un 80 % de eficiencia como es el Piz Daint, se entiende que se pueden desarrollar implementaciones de HPL que saquen un mejor partido a estos componentes.

EVALUACIÓN COMPARADA DEL RENDIMIENTO DEL PROCESADOR INTEL 5570 (NEHALEM)

EVALUACIÓN COMPARADA DEL RENDIMIENTO DEL PROCESADOR INTEL 5570 (NEHALEM) EVALUACIÓN COMPARADA DEL RENDIMIENTO DEL PROCESADOR INTEL 5570 (NEHALEM) Carlos Bernal, Ana Silva, Marceliano Marrón, Juan Antonio Ortega, Claudio J. Arjona Área de HPC Centro Informático Científico de

Más detalles

Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570

Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570 Evaluación del rendimiento de procesadores Intel Nehalem. Modelos x7550, x5670 y x5570 Juan Carlos Fernández Rodríguez. Área de HPC. Centro Informático Científico de Andalucía (CICA) Junta de Andalucía

Más detalles

Computación Científica en Paralelo

Computación Científica en Paralelo Computación Científica en Paralelo Luis Miguel de la Cruz luiggix@gmail.com www.dci.dgsca.unam.mx/lmcs Unidad de Investigación en Cómputo Aplicado DGSCA-UNAM. Posgrado en Ciencia e Ingeniería de la Computación

Más detalles

Medida del rendimiento

Medida del rendimiento Medida del rendimiento Benchmarks V 1.0 José M. Cámara (checam@ubu.es) Motivación El rendimiento debe ser evaluado para: Valorar el comportamiento del sistema. Comparar varios sistemas. Optimizar la utilización.

Más detalles

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico.

Desarrollo de un cluster computacional para la compilación de. algoritmos en paralelo en el Observatorio Astronómico. Desarrollo de un cluster computacional para la compilación de algoritmos en paralelo en el Observatorio Astronómico. John Jairo Parra Pérez Resumen Este artículo muestra cómo funciona la supercomputación

Más detalles

Modelo de aplicaciones CUDA

Modelo de aplicaciones CUDA Modelo de aplicaciones CUDA Utilización de GPGPUs: las placas gráficas se utilizan en el contexto de una CPU: host (CPU) + uno o varios device o GPUs Procesadores masivamente paralelos equipados con muchas

Más detalles

Diseño y evaluación de un clúster HPC: Hardware

Diseño y evaluación de un clúster HPC: Hardware Diseño y evaluación de un clúster HPC: Hardware Autor: David Trilla Rodríguez Grado en Ingeniería Informática Especialidad en Ingeniería de Computadores 26 de Junio de 2014 Director: Josep Llosa Espuny,

Más detalles

Linux Week PUCP. Computación de Alto Rendimiento en Linux. rmiguel@senamhi.gob.pe

Linux Week PUCP. Computación de Alto Rendimiento en Linux. rmiguel@senamhi.gob.pe Linux Week PUCP 2006 Computación de Alto Rendimiento en Linux Richard Miguel San Martín rmiguel@senamhi.gob.pe Agenda Computación Científica Computación Paralela High Performance Computing Grid Computing

Más detalles

Diseño y evaluación de un clúster HPC: Software de sistema

Diseño y evaluación de un clúster HPC: Software de sistema Diseño y evaluación de un clúster HPC: Software de sistema Autor: Cristobal Ortega Carrasco Grado en Ingeniería Informática Especialidad en Ingeniería de Computadores 26 de Junio de 2014 Director: David

Más detalles

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013

FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS. CNCA Abril 2013 FUNDAMENTOS DE COMPUTACIÓN PARA CIENTÍFICOS CNCA Abril 2013 6. COMPUTACIÓN DE ALTO RENDIMIENTO Ricardo Román DEFINICIÓN High Performance Computing - Computación de Alto Rendimiento Técnicas, investigación

Más detalles

Ingeniero en Informática

Ingeniero en Informática UNIVERSIDAD DE ALMERÍA Ingeniero en Informática CLÚSTER DE ALTO RENDIMIENTO EN UN CLOUD: EJEMPLO DE APLICACIÓN EN CRIPTOANÁLISIS DE FUNCIONES HASH Autor Directores ÍNDICE 1. Introducción 2. Elastic Cluster

Más detalles

Soluciones para entornos HPC

Soluciones para entornos HPC Dr.. IT Manager / Project Leader @ CETA-Ciemat abelfrancisco.paz@ciemat.es V Jornadas de Supercomputación y Avances en Tecnología INDICE 1 2 3 4 HPC Qué? Cómo?..................... Computación (GPGPU,

Más detalles

Programación híbrida en arquitecturas cluster de multicore. Escalabilidad y comparación con memoria compartida y pasaje de mensajes.

Programación híbrida en arquitecturas cluster de multicore. Escalabilidad y comparación con memoria compartida y pasaje de mensajes. Programación híbrida en arquitecturas cluster de multicore. Escalabilidad y comparación con memoria compartida y pasaje de mensajes. Fabiana Leibovich, Armando De Giusti, Marcelo Naiouf, Laura De Giusti,

Más detalles

Implementación uso y distribución de aplicaciones para física de altas energías en entornos colaborativos. Umberto Cotti y Arnulfo Zepeda. 1.

Implementación uso y distribución de aplicaciones para física de altas energías en entornos colaborativos. Umberto Cotti y Arnulfo Zepeda. 1. Implementación uso y distribución de aplicaciones para física de altas energías en entornos colaborativos. Umberto Cotti y Arnulfo Zepeda 1. Resumen Se presentan los resultados del diseño y la construcción

Más detalles

Arquitecturas GPU v. 2013

Arquitecturas GPU v. 2013 v. 2013 Stream Processing Similar al concepto de SIMD. Data stream procesado por kernel functions (pipelined) (no control) (local memory, no cache OJO). Data-centric model: adecuado para DSP o GPU (image,

Más detalles

CAR. http://acarus.uson.mx/cursos2013/car.htm

CAR. http://acarus.uson.mx/cursos2013/car.htm CAR http://acarus.uson.mx/cursos2013/car.htm Sistemas de CAR en la UNISON Responsable : María del Carmen Heras Sánchez Asesores Técnicos : Aracely Dzul Campos Daniel Mendoza Camacho Yessica Vidal Quintanar

Más detalles

TIPOS DE PROCESAMIENTOS

TIPOS DE PROCESAMIENTOS TIPOS DE PROCESAMIENTOS El desempeño de un computador puede tener diferentes medidas de elección para diferentes usuarios. Para un usuario individual que está ejecutando un único programa, la computadora

Más detalles

ORDENADORES VECTORIALES

ORDENADORES VECTORIALES ORDENADORES VECTORIALES Un ordenador vectorial es una máquina diseñada específicamente para realizar de forma eficiente operaciones en las que se ven involucrados elementos de matrices, denominados vectores.

Más detalles

:Arquitecturas Paralela basada en clusters.

:Arquitecturas Paralela basada en clusters. Computación de altas prestaciones: Arquitecturas basadas en clusters Sesión n 1 :Arquitecturas Paralela basada en clusters. Jose Luis Bosque 1 Introducción Computación de altas prestaciones: resolver problemas

Más detalles

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011

Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Clusters Nicolás Zarco Arquitectura Avanzada 2 Cuatrimestre 2011 Introducción Aplicaciones que requieren: Grandes capacidades de cómputo: Física de partículas, aerodinámica, genómica, etc. Tradicionalmente

Más detalles

Memoria Compartida Distribuida (DSM) Sistema de Archivos

Memoria Compartida Distribuida (DSM) Sistema de Archivos Memoria Compartida Distribuida (DSM) La memoria compartida distribuida es una abstracción que se propone como alternativa a la comunicación por mensajes. Memoria compartida basada en páginas: este esquema

Más detalles

Estructura de Datos. Unidad I Tipos de Datos

Estructura de Datos. Unidad I Tipos de Datos Estructura de Datos Unidad I Tipos de Datos Conceptos Básicos Algoritmo: es una secuencia finita de pasos o instrucciones ordenadas crono-lógicamente que describen un método para resolver un problema específico.

Más detalles

DISEÑO E IMPLEMENTACIÓN

DISEÑO E IMPLEMENTACIÓN DISEÑO E IMPLEMENTACIÓN DE UN CURSO DE PROGRAMACIÓN CON NXC INGENIERÍA DE TELECOMUNICACIÓN DEPARTAMENTO DE INGENIERÍA TELEMÁTICA Grupo 91 MORILLO ARROYO, Diego 100047359 RODRÍGUEZ CARRIÓN, Alicia 100047338

Más detalles

Rendimiento. Página 50

Rendimiento. Página 50 Rendimiento En general entender el rendimiento de redes es más arte que ciencia. La teoría no ayuda mucho. Fuentes de problemas de rendimiento: Congestión. Desequilibrios entre recursos. Por ejemplo, una

Más detalles

Seminario II: Introducción a la Computación GPU

Seminario II: Introducción a la Computación GPU Seminario II: Introducción a la Computación GPU CONTENIDO Introducción Evolución CPUs-Evolución GPUs Evolución sistemas HPC Tecnologías GPGPU Problemática: Programación paralela en clústers heterogéneos

Más detalles

High Performance Computing y Big Data en AWS. +info: (http://gac.udc.es) HPC y Big Data en AWS 16 Abril, 2012 1 / 14

High Performance Computing y Big Data en AWS. +info: (http://gac.udc.es) HPC y Big Data en AWS 16 Abril, 2012 1 / 14 High Performance Computing y Big Data en AWS +info: (http://gac.udc.es) HPC y Big Data en AWS 16 Abril, 212 1 / 14 High Performance Computing High Performance Computing (HPC) Afonta grandes problemas empresariales,

Más detalles

Unidad 2: Gestión de Memoria

Unidad 2: Gestión de Memoria Unidad 2: Gestión de Memoria Tema 3, Gestión de Memoria: 3.1 Definiciones y técnicas básicas. 3.2 Gestión de memoria contigua: Partición, fragmentación, algoritmos de ubicación... 3.3 Paginación: Estructura

Más detalles

Computación Científica en Paralelo

Computación Científica en Paralelo Computación Científica en Paralelo Luis Miguel de la Cruz luiggix@gmail.com www.dci.dgsca.unam.mx/luiggi Unidad de Investigación en Cómputo Aplicado DGSCA-UNAM. Posgrado en Ciencia e Ingeniería de la Computación

Más detalles

EXPEDIENTE: 2/2015 ADQUISICIÓN E INSTALACIÓN DE INFRAESTRUCTURA CIENTÍFICA Y TECNOLÓGICA PARA CÉNITS PLIEGO DE PRESCRIPCIONES TÉCNICAS

EXPEDIENTE: 2/2015 ADQUISICIÓN E INSTALACIÓN DE INFRAESTRUCTURA CIENTÍFICA Y TECNOLÓGICA PARA CÉNITS PLIEGO DE PRESCRIPCIONES TÉCNICAS EXPEDIENTE: 2/2015 ADQUISICIÓN E INSTALACIÓN DE INFRAESTRUCTURA CIENTÍFICA Y TECNOLÓGICA PARA CÉNITS PLIEGO DE PRESCRIPCIONES TÉCNICAS PLIEGO DE PRESCRIPCIONES TÉCNICAS. EXPTE 2/2015 Adquisición e instalación

Más detalles

Las computadoras analógicas no computan directamente, sino que perciben constantemente valores, señales o magnitudes físicas variadas.

Las computadoras analógicas no computan directamente, sino que perciben constantemente valores, señales o magnitudes físicas variadas. Clasificación de las computadoras Análoga: Las computadoras analógicas no computan directamente, sino que perciben constantemente valores, señales o magnitudes físicas variadas. Características de las

Más detalles

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción: arquitecturas

Más detalles

UNIVERSIDAD INDUSTRIAL DE SANTANDER VICERRECTORIA DE INVESTIGACIÓN Y EXTENSIÓN PLIEGOS DE CONDICIONES PRELIMINARES

UNIVERSIDAD INDUSTRIAL DE SANTANDER VICERRECTORIA DE INVESTIGACIÓN Y EXTENSIÓN PLIEGOS DE CONDICIONES PRELIMINARES UNIVERSIDAD INDUSTRIAL DE SANTANDER VICERRECTORIA DE INVESTIGACIÓN Y EXTENSIÓN PLIEGOS DE CONDICIONES PRELIMINARES VOLUMEN II: ESPECIFICACIONES TÉCNICAS ADQUISICIÓN DE UNA INFRAESTRUCTURA DE COMPUTACIÓN

Más detalles

PRACTICA 2 Ejercicio 3

PRACTICA 2 Ejercicio 3 PRACTICA 2 Ejercicio 3 Análisis de la Memoria Cache L1 de Datos para Procesadores Superescalares con Ejecución uera de Orden DESCRIPCIÓN GENERAL El objetivo de este ejercicio práctico consiste en obtener

Más detalles

Análisis de desempeño y modelo de escalabilidad para SGP

Análisis de desempeño y modelo de escalabilidad para SGP Análisis de desempeño y modelo de escalabilidad para SGP Este documento es producto de la experiencia de Analítica en pruebas de stress sobre el software SGP. Estas pruebas se realizaron sobre un proceso

Más detalles

Módulo: Modelos de programación para Big Data

Módulo: Modelos de programación para Big Data Program. paralela/distribuida Módulo: Modelos de programación para Big Data (título original: Entornos de programación paralela basados en modelos/paradigmas) Fernando Pérez Costoya Introducción Big Data

Más detalles

Análisis del Sistema de Información

Análisis del Sistema de Información Análisis del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD ASI 1: DEFINICIÓN DEL SISTEMA... 6 Tarea ASI 1.1: Determinación del Alcance del Sistema... 6 Tarea ASI 1.2: Identificación

Más detalles

CAPITULO I El Problema

CAPITULO I El Problema CAPITULO I El Problema 1. CAPITULO I EL PROBLEMA. 1.1. PLANTEAMIENTO DEL PROBLEMA. Desde su nacimiento la Facultad de Administración, Finanzas e Informática dispone del departamento de la biblioteca, con

Más detalles

LAB2. Jerarquía de Memoria. Laboratorio de Arquitectura e Ingeniería de Computadores. Valentin Puente. Revisión 1.1: 02-Marzo-2010

LAB2. Jerarquía de Memoria. Laboratorio de Arquitectura e Ingeniería de Computadores. Valentin Puente. Revisión 1.1: 02-Marzo-2010 Jerarquía de Memoria Laboratorio de Arquitectura e Ingeniería de Computadores Valentin Puente 10 Revisión 1.1: 02-Marzo-2010 1 INTRODUCCIÓN Y OBJETIVOS El objetivo fundamental de esta práctica es poner

Más detalles

Evaluación del desempeño computacional del cluster Medusa

Evaluación del desempeño computacional del cluster Medusa Evaluación del desempeño computacional del cluster Medusa Sergio Nesmachnow Esteban Salsano Grupo de trabajo e investigación en procesamiento paralelo aplicado Centro de Cálculo, Instituto de Computación.

Más detalles

PLATAFORMA CLÚSTER BASADA EN CENTOS

PLATAFORMA CLÚSTER BASADA EN CENTOS PLATAFORMA CLÚSTER BASADA EN CENTOS Área de conocimiento: Redes y Telecomunicaciones Raúl Hernández Palacios, Felipe de Jesús Núñez Cárdenas, Javier Hervert Hernández, Miriam De la Cruz Bautista. Área

Más detalles

EL CLUSTER FING: COMPUTACIÓN DE ALTO DESEMPEÑO EN FACULTAD DE INGENIERÍA

EL CLUSTER FING: COMPUTACIÓN DE ALTO DESEMPEÑO EN FACULTAD DE INGENIERÍA EL CLUSTER FING: COMPUTACIÓN DE ALTO DESEMPEÑO EN FACULTAD DE INGENIERÍA SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY EL CLUSTER

Más detalles

CENTRO DE DATOS Y POP

CENTRO DE DATOS Y POP Virtual y física. Pública y privada. Por horas o por meses. Nuestra plataforma unificada proporciona infraestructuras en la nube a nivel de Internet. Todo lo que quiera, desplegado bajo demanda y en tiempo

Más detalles

Agrupación en clusters de las aplicaciones de bases de datos para reducir los costos de TI Introducción

Agrupación en clusters de las aplicaciones de bases de datos para reducir los costos de TI Introducción Enero 2010 Agrupación en clusters de las aplicaciones de bases de datos para reducir los costos de TI Reorganizarse para lograr eficiencia, rendimiento y alta disponibilidad Introducción La agrupación

Más detalles

Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015

Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015 Anexo A. Partida 3 Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015 CLUSTER LANCAD3 El bien a adquirir se describe a continuación y consiste en cúmulo de supercómputo

Más detalles

Trabajo Práctico Final. Transformada Rápida de Fourier con Paralelismo

Trabajo Práctico Final. Transformada Rápida de Fourier con Paralelismo Trabajo Práctico Final Transformada Rápida de Fourier con Paralelismo Sistemas Operativos II Facultad de Ciencias Exactas, Físicas y aturales UC Mauricio G. Jost 2009 Índice 1. Introducción 1 2. Marco

Más detalles

CURSOS DE VERANO 2014

CURSOS DE VERANO 2014 CURSOS DE VERANO 2014 CLOUD COMPUTING: LA INFORMÁTICA COMO SERVICIO EN INTERNET LA PLATAFORMA GOOGLE CLOUD PLATFORM. GOOGLE APP ENGINE Pedro A. Castillo Valdivieso Universidad de Granada http://bit.ly/unia2014

Más detalles

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES.

ACTIVIDADES TEMA 1. EL LENGUAJE DE LOS ORDENADORES. 4º E.S.O- SOLUCIONES. 1.- a) Explica qué es un bit de información. Qué es el lenguaje binario? Bit es la abreviatura de Binary digit. (Dígito binario). Un bit es un dígito del lenguaje binario que es el lenguaje universal usado

Más detalles

Técnicas SuperEscalares en la Paralelización de Bibliotecas de Computación Matricial sobre Procesadores Multinúcleo y GPUs

Técnicas SuperEscalares en la Paralelización de Bibliotecas de Computación Matricial sobre Procesadores Multinúcleo y GPUs Técnicas SuperEscalares en la Paralelización de Bibliotecas de Computación Matricial sobre Procesadores Multinúcleo y GPUs Enrique S. Quintana-Ortí quintana@icc.uji.es High Performance Computing & Architectures

Más detalles

Intel XeonPhi Workshop

Intel XeonPhi Workshop Intel XeonPhi Workshop Elena Núñez-González Unidad Informática Científica - CIEMAT Madrid, 11 de Febrero de 2015 Evento Lugar, Fecha Índice Introducción MIC Intel Xeon Phi Arquitectura Intel Xeon Phi Entorno

Más detalles

Métricas de Rendimiento

Métricas de Rendimiento Métricas de Rendimiento DISEÑO DE SISTEMAS DIGITALES EL-3310 I SEMESTRE 2008 6. RENDIMIENTO DE SISTEMAS COMPUTACIONALES (1 SEMANA) 6.1 Definición de rendimiento en términos computacionales 6.2 Medición

Más detalles

Dr.-Ing. Paola Vega Castillo

Dr.-Ing. Paola Vega Castillo EL-3310 DISEÑO O DE SISTEMAS DIGITALES Dr.-Ing. Paola Vega Castillo Información n General Curso: Diseño de Sistemas Digitales Código: EL-3310 Tipo de curso: Teórico Créditos/Horas por semana: 4/4 Requisito:

Más detalles

D.4.3.1 Definición de la infraestructura de soporte.

D.4.3.1 Definición de la infraestructura de soporte. D.4.3.1 Definición de la infraestructura de soporte. RESUMEN EJECUTIVO El proyecto CloudPYME ha analizado, desarrollado y probado tres servicios de valor añadido para las PYME de la Euroregión Galicia-Norte

Más detalles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles

Organización del Computador 1. Máquina de von Neumann Jerarquía de Niveles Organización del Computador 1 Máquina de von Neumann Jerarquía de Niveles Inicios de la computación Turing y Church sientan las bases teóricas de la computación Máquina de Turing Máquina teórica compuesta

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS... 2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA... 7 Tarea DSI 1.1: Definición de Niveles de Arquitectura... 9 Tarea DSI

Más detalles

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI

UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI UNIVERSIDAD DEL VALLE DE MÉXICO PROGRAMA DE ESTUDIO DE LICENCIATURA PRAXIS MES XXI NOMBRE DE LA ASIGNATURA: SUPERCÓMPUTO FECHA DE ELABORACIÓN: ENERO 2005 ÁREA DEL PLAN DE ESTUDIOS: AS ( ) AC ( ) APOBL

Más detalles

Supercómputo. Oscar Rafael García Regis Enrique Cruz Martínez

Supercómputo. Oscar Rafael García Regis Enrique Cruz Martínez Supercómputo Oscar Rafael García Regis Enrique Cruz Martínez 2003-I Oscar Rafael García Regis Laboratorio de Dinámica No Lineal Facultad de Ciencias, UNAM Enrique Cruz Martínez Dirección General de Servicios

Más detalles

Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015

Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015 Anexo A. Partida 2 Laboratorio Nacional de Cómputo de Alto Desempeño: Fortalecimiento de la Infraestructura 2015 CLUSTER LANCAD 2 El bien a adquirir se describe a continuación y consiste de un cúmulo de

Más detalles

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática

Tema 1 Introducción. Arquitectura básica y Sistemas Operativos. Fundamentos de Informática Tema 1 Introducción. Arquitectura básica y Sistemas Operativos Fundamentos de Informática Índice Descripción de un ordenador Concepto básico de Sistema Operativo Codificación de la información 2 1 Descripción

Más detalles

Múltiples GPU (y otras chauchas)

Múltiples GPU (y otras chauchas) Múltiples GPU (y otras chauchas) Clase 16, 21/11/2013 http://fisica.cab.cnea.gov.ar/gpgpu/index.php/en/icnpg/clases Carlos Bederián bc@famaf.unc.edu.ar IFEG-CONICET, FaMAF-UNC Motivación No desperdiciar

Más detalles

La Arquitectura de las Máquinas Virtuales.

La Arquitectura de las Máquinas Virtuales. La Arquitectura de las Máquinas Virtuales. La virtualización se ha convertido en una importante herramienta en el diseño de sistemas de computación, las máquinas virtuales (VMs) son usadas en varias subdiciplinas,

Más detalles

1 LA INFORMACION Y SU REPRESENTACION

1 LA INFORMACION Y SU REPRESENTACION 1 LA INFORMACION Y SU REPRESENTACION 1.1 Sistemas de numeración Para empezar a comprender cómo una computadora procesa información, debemos primero entender cómo representar las cantidades. Para poder

Más detalles

Diseño del Sistema de Información

Diseño del Sistema de Información Diseño del Sistema de Información ÍNDICE DESCRIPCIÓN Y OBJETIVOS...2 ACTIVIDAD DSI 1: DEFINICIÓN DE LA ARQUITECTURA DEL SISTEMA...7 Tarea DSI 1.1: Definición de Niveles de Arquitectura...9 Tarea DSI 1.2:

Más detalles

UNIDAD 1 HARDWARE DEL COMPUTADOR

UNIDAD 1 HARDWARE DEL COMPUTADOR UNIDAD 1 HARDWARE DEL COMPUTADOR 1.1 Tipos de computadoras Supercomputadoras Macrocomputadoras Minicomputadoras Microcomputadoras o PC s Tipos de Computadoras Supercomputadoras Es el tipo de computadora

Más detalles

TEMA 4. Unidades Funcionales del Computador

TEMA 4. Unidades Funcionales del Computador TEMA 4 Unidades Funcionales del Computador Álvarez, S., Bravo, S., Departamento de Informática y automática Universidad de Salamanca Introducción El elemento físico, electrónico o hardware de un sistema

Más detalles

Capítulo 5: Comparación con ScaLAPACK

Capítulo 5: Comparación con ScaLAPACK Capítulo 5: Comparación con ScaLAPACK En este capítulo se presentan dos aspectos importantes en cuanto a la validez y utilización de los aportes de esta tesis: 1) Aplicación de los principios de paralelización

Más detalles

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS

GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS GPU IMPLEMENTATIONS OF SCHEDULING HEURISTICS FOR HETEROGENEOUS COMPUTING ENVIRONMENTS MAURO CANABÉ SERGIO NESMACHNOW Centro de Cálculo, Facultad de Ingeniería Universidad de la República, Uruguay GPU IMPLEMENTATIONS

Más detalles

ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS

ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS Universidad Nacional de San Antonio Abad del Cusco Departamento Académico de Informática ALGORITMICA III Capitulo I ANALISIS DE ALGORITMOS Iván Medrano Valencia ANALISIS DE ALGORITMOS Un algoritmo es un

Más detalles

Ejemplos de optimización para Kepler. 1. Balanceo dinámico de la carga. Contenidos de la charla [18 diapositivas]

Ejemplos de optimización para Kepler. 1. Balanceo dinámico de la carga. Contenidos de la charla [18 diapositivas] Ejemplos de optimización para Kepler Manuel Ujaldón Nvidia CUDA Fellow Dpto. Arquitectura de Computadores Universidad de Málaga Contenidos de la charla [18 diapositivas] 1. Balanceo dinámico de la carga.

Más detalles

Aceleradores gráficos. Su impacto en el bus del sistema.

Aceleradores gráficos. Su impacto en el bus del sistema. Aceleradores gráficos. Su impacto en el bus del sistema. Conceptos básicos Controladora de video tradicional en modo gráfico Buffer de video en placas ISA se ubica en el rango de posiciones de memoria

Más detalles

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed

COMPUTADORES MULTINUCLEO. Stallings W. Computer Organization and Architecture 8ed COMPUTADORES MULTINUCLEO Stallings W. Computer Organization and Architecture 8ed Computador multinucleo Un computador multinúcleocombina dos o mas procesadores (llamados núcleos) en una única pieza de

Más detalles

Representación de la Información en una Computadora

Representación de la Información en una Computadora Representación de la Información en una Computadora Sistemas de Numeración El sistema de numeración que utiliza el hombre es el sistema decimal (de base 10). Lo creamos en forma natural porque tenemos

Más detalles

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente

Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente Capítulo 4. Requisitos del modelo para la mejora de la calidad de código fuente En este capítulo definimos los requisitos del modelo para un sistema centrado en la mejora de la calidad del código fuente.

Más detalles

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN

Juan de Dios Murillo Morera e-mail: jmurillo@una.ac.cr Santiago Caamaño Polini e-mail: scaamano@costarricense.cr INTRODUCCIÓN UNICIENCIA 24 pp. 83-89 2010 IMPLEMENTACIÓN DE UN SERVIDOR FTP UTILIZANDO EL MODELO CLIENTE/SERVIDOR MEDIANTE EL USO DE SOCKETS EN LENGUAJE C UNIX CON EL FIN DE MEJORAR LOS TIEMPOS DE RESPUESTA EN LA RED

Más detalles

Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP

Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP Instalación de Eclipse Galileo y depuradores compatibles con OpenMPI y OpenMP Programación Distribuida y Paralela Universidad de Granada Departamento del LSI Por: Daniel Guerrero Martínez Sergio Rodríguez

Más detalles

Planificación de proyectos

Planificación de proyectos Planificación de proyectos Introducción Características de un proyecto: Conjunto numeroso de actividades complejas. Es singular (Conjunto de sucesos y actividades que sólo se presenta una vez) Es finito

Más detalles

Extractos de la conferencia: Supercomputación y Software Libre realizada por Linalco en la Universidad de Granada

Extractos de la conferencia: Supercomputación y Software Libre realizada por Linalco en la Universidad de Granada Extractos de la conferencia: Supercomputación y Software Libre realizada por Linalco en la Universidad de Granada Copyright 2006 Linalco Consulting, S.L. Linalco Consulting, S.L., autor de este documento,

Más detalles

Instituto Tecnológico Argentino Técnico en Hardware de PC Plan THP2A03B

Instituto Tecnológico Argentino Técnico en Hardware de PC Plan THP2A03B Instituto Tecnológico Argentino Técnico en Hardware de PC Plan THP2A03B Reservados los Derechos de Propiedad Intelectual Tema: Procesadores AMD Archivo: CAP2A03BTHP0335.doc Clase Nº: 35 Versión: 1.1 Fecha:

Más detalles

High Performance Computing and Architectures Group

High Performance Computing and Architectures Group HPCA Group 1 High Performance Computing and Architectures Group http://www.hpca.uji.es Universidad Jaime I de Castellón ANACAP, noviembre de 2008 HPCA Group 2 Generalidades Creado en 1991, al mismo tiempo

Más detalles

4. Programación Paralela

4. Programación Paralela 4. Programación Paralela La necesidad que surge para resolver problemas que requieren tiempo elevado de cómputo origina lo que hoy se conoce como computación paralela. Mediante el uso concurrente de varios

Más detalles

Taller de Programación Paralela

Taller de Programación Paralela Taller de Programación Paralela Departamento de Ingeniería Informática Universidad de Santiago de Chile April 25, 2008 computacional secuencial computacional secuencial se refiere al costo computacional

Más detalles

UNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU. Microprocesadores para Comunicaciones. Paloma Monzón Rodríguez 42217126M

UNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU. Microprocesadores para Comunicaciones. Paloma Monzón Rodríguez 42217126M UNA NUEVA GENERACIÓN: HÍBRIDOS CPU/GPU Microprocesadores para Comunicaciones 2010 Paloma Monzón Rodríguez 42217126M Índice 1. Introducción... 3 2. Unidad Central de Procesamiento (CPU)... 4 Arquitectura

Más detalles

Taller de sistemas operativos PLANIFICADOR

Taller de sistemas operativos PLANIFICADOR Taller de sistemas operativos PLANIFICADOR Agenda Introducción Clases de planificación Prioridades Timeslice Prioridad dinámica Estructuras del planificador Planificador en funcionamiento Nuevo planificador

Más detalles

Práctica 6a: Interfaces Hombre-Máquina RT

Práctica 6a: Interfaces Hombre-Máquina RT ITESM Campus Monterrey Depto. de Ing. Eléctrica Laboratorio de Teleingeniería Práctica 6a: Interfaces Hombre-Máquina RT Objetivo: Comprender y elaborar un programa en WinCC flexible. Realizar y configurar

Más detalles

Memoria Principal. Departamento de Arquitectura de Computadores

Memoria Principal. Departamento de Arquitectura de Computadores Memoria Principal Departamento de Arquitectura de Computadores Índice Introducción. Conceptos básicos Características de los sistemas de memoria Jerarquías de memoria Memoria Principal Características

Más detalles

Arquitecturas de computadoras

Arquitecturas de computadoras Arquitecturas de computadoras Colaboratorio Nacional de Computación Avanzada (CNCA) 2014 Contenidos 1 Computadoras 2 Estación de Trabajo 3 Servidor 4 Cluster 5 Malla 6 Nube 7 Conclusiones Computadoras

Más detalles

Figura 1.4. Elementos que integran a la Tecnología de Información.

Figura 1.4. Elementos que integran a la Tecnología de Información. 1.5. Organización, estructura y arquitectura de computadoras La Gráfica siguiente muestra la descomposición de la tecnología de información en los elementos que la conforman: Figura 1.4. Elementos que

Más detalles

Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite

Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite Comparación de Dos Sistemas Distribuidos: Amoeba y Sprite Hillary Caituiro Monge Departamento de Ingeniería Eléctrica y Computadoras hillarycm@hotmail.com Resumen En este ensayo se comparan Dos Sistemas

Más detalles

CLUSTER FING: ARQUITECTURA Y APLICACIONES

CLUSTER FING: ARQUITECTURA Y APLICACIONES CLUSTER FING: ARQUITECTURA Y APLICACIONES SERGIO NESMACHNOW Centro de Cálculo, Instituto de Computación FACULTAD DE INGENIERÍA, UNIVERSIDAD DE LA REPÚBLICA, URUGUAY CONTENIDO Introducción Clusters Cluster

Más detalles

Herramienta para la construcción de un cluster y la distribución de carga entre los nodos

Herramienta para la construcción de un cluster y la distribución de carga entre los nodos Herramienta para la construcción de un cluster y la distribución de carga entre los nodos Rubén A. González García 1, Gabriel Gerónimo Castillo 2 1 Universidad Juárez Autónoma de Tabasco, Av. Universidad

Más detalles

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU

Computación de Propósito General en Unidades de Procesamiento Gráfico GPGPU Computación de Propósito General en Unidades de Procesamiento Gráfico () R. Bayá, E. Dufrechou, P. Ezzattiy M. Pedemonte Clase 1 Introducción Contenido Un poco de historia El pipeline gráfico Tarjetas

Más detalles

HPC y Supercómputo Aplicado a la Evaluación de Recursos

HPC y Supercómputo Aplicado a la Evaluación de Recursos HPC y Supercómputo Aplicado a la Evaluación de Recursos Julián Ortiz Álvaro Parra Exequiel Sepúlveda 5 Seminario de Acercamiento Tecnológico Codelco Digital: Minería del Futuro Temas Contexto ALGES Laboratorio

Más detalles

CUALIFICACIÓN OPERACIÓN DE REDES DEPARTAMENTALES PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización

CUALIFICACIÓN OPERACIÓN DE REDES DEPARTAMENTALES PROFESIONAL. Nivel 2. Versión 5 Situación RD 1201/2007 Actualización Página 1 de 16 CUALIFICACIÓN OPERACIÓN DE REDES DEPARTAMENTALES PROFESIONAL Familia Profesional Informática y Comunicaciones Nivel 2 Código IFC299_2 Versión 5 Situación RD 1201/2007 Actualización Competencia

Más detalles

Memoria central del Ordenador

Memoria central del Ordenador Memoria central del Ordenador Víctor González Núñez Nuria Cancho Díaz Josue Prieto Lentijo Grupo 7 Fundamentos de Informática II INTRODUCCIÓN: Con esta breve memoria expondremos las principales características

Más detalles

Figura 1: Ciclo de la Administración del desempeño

Figura 1: Ciclo de la Administración del desempeño 1 INTRODUCCIÓN El servicio de acceso a Internet de la Escuela Politécnica Nacional, no cubre las expectativas de los usuarios finales debido a que los tiempos de respuesta, la disponibilidad y la seguridad

Más detalles

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS

Denominación de la materia. N créditos ECTS = 36 carácter = MIXTA INGENIERIA DE COMPUTADORAS Denominación de la materia INGENIERIA DE COMPUTADORAS N créditos ECTS = 36 carácter = MIXTA Ubicación dentro del plan de estudios y duración La materia Ingeniería de Computadoras está formada por 6 asignaturas

Más detalles

Tópicos de implementación en paralelo

Tópicos de implementación en paralelo Apéndice C Esquema PGP. Implementación en un entorno paralelo. Para poder abordar eficazmente la simulación computacional de grandes problemas estructurales, es necesario utilizar estrategias numéricas

Más detalles

Capítulo 1: Introducción

Capítulo 1: Introducción Capítulo 1: Introducción El presente trabajo se ubica en el área de administración de redes inalámbricas de computadoras y tiene como objetivo crear una propuesta de solución para permitir un manejo más

Más detalles

Servicios avanzados de supercomputación para la ciència y la ingeniería

Servicios avanzados de supercomputación para la ciència y la ingeniería Servicios avanzados de supercomputación para la ciència y la ingeniería Servicios avanzados de supercomputación para la ciència y la ingeniería HPCNow! provee a sus clientes de la tecnología y soluciones

Más detalles

GUÍA DOCENTE. Computación Paralela y Arquitecturas Específicas y de Altas Prestaciones

GUÍA DOCENTE. Computación Paralela y Arquitecturas Específicas y de Altas Prestaciones GUÍA DOCENTE Computación Paralela y Arquitecturas Específicas y de Altas Prestaciones octubre de 2010 I.- DATOS INICIALES DE IDENTIFICACIÓN Nombre de la asignatura: Módulo al que pertenece Carácter: Titulación:

Más detalles

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es)

Microsoft HPC. V 1.0 José M. Cámara (checam@ubu.es) Microsoft HPC V 1.0 José M. Cámara (checam@ubu.es) Introducción Microsoft HPC (High Performance Computing) es la solución de Microsoft a la computación de alto rendimiento. Está enfocado principalmente

Más detalles