Computadoras de Alto Rendimiento (HPC)

Slides:



Advertisements
Presentaciones similares
Grid Computing Rogelio Ferreira Escutia. 2 Computación Grid, febrero 2010 Definición La computación grid.
Advertisements

Sistema Operativo Un Sistema Operativo es el software encargado de ejercer el control y coordinar el uso del hardware entre diferentes programas de aplicación.
LENGUAJES PARALELOS Chang y Smith (1990) clasificación:
Aplicación de la tecnología Grid: Portal de recursos de supercomputación José Ruedas Sánchez Instituto de Astrofísica de Andalucía Consejo Superior de.
Carlos Rojas Kramer Universidad Cristóbal Colón
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
La computadora Una computadora es una máquina capaz de efectuar una secuencia de operaciones mediante un programa, de modo que se realice un procesamiento.
Introducción al software
Tecnología Cliente Servidor
REDES DE COMPUTADORAS LINA MARCELA HERRERA P ASIGNATURA:OFIMATICACARRERA: TECNOLOGIA EN INFORMATICA APLICADA UNIVERSIDAD CATOLICA MANIZALES JUNIO 2 / 2004.
S.O. Multiusuario, red. Servicio: Cliente/Servidor, p2p
SISTEMAS OPERATIVOS (SO)
HERRAMIENTAS INFORMATICAS
Mejoras a las Máquinas Von Neumann
Bioinformática FJS.
Universidad Centroamericana
INTRODUCCION A LOS SISTEMAS OPERATIVOS
PROCESAMIENTO PARALELO.  Organización lógica ◦ Visión que tiene el programados  Capacidad de expresar tareas paralelas (Estructura de control)  Método.
Elemento Lógico (Software)
Introducción a la Computación Paralela Germán Larrazábal Departamento Computación, FACYT, Universidad de Carabobo, Venezuela
Curso de Computación Científica en Clusters
Procesamiento paralelo
OMAR SANCHEZ ROBLES HECTOR PEREZ GARCIA. “Sistemas de cómputo compuesto por un gran número de CPU´s conectados mediante una red de alta velocidad”, Tanenbaum.
INSTITUTO TECNOLÓGICO DE CD. GUZMÁN
CONCEPTES AVANÇATS DE SISTEMES OPERATIUS Departament d’Arquitectura de Computadors (apunts de l’assignatura en format transparència) Beowulf Vs Clusters.
Clusters Presentado por : Manuel Alejandro ahumada trochez Yenny carabali.
Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 24 de Abril de 2004.
Introducción al modelo Cliente-Servidor Carlos Rojas Kramer Universidad Cristóbal Colón.
EL SISTEMA OPERATIVO.
Desarrollo de aplicaciones para ambientes distribuidos
Características de un sistema operativo
LOS SISTEMAS OPERATIVOS
Un sistema de gestión de bases de datos: Es un conjunto de programas que permite a los usuarios crear y mantener una base de datos. Por tanto, el SGBD.
ConceptoDefiniciónCaracterísticas (palabra clave) Ejemplo/Aplicación Sistema operativo Es el software que permite al usuario interactuar con la computadora.
SISTEMAS OPERATIVOS.
INTRODUCCIÓN. Motivación “Procesamiento distribuido significa dividir una aplicación en tareas y poner cada tarea en la plataforma donde pueda ser manejada.
Despliegue de la aplicación Web
Clasificación de las Computadoras
TEMA 10. SISTEMAS OPERATIVOS DISTRIBUIDOS
14 de diciembre de 2005 Universidad de Murcia1 Modelos de computadores paralelos Domingo Giménez Departamento de Informática y Sistemas Universidad de.
Arquitecturas Paralelas
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
PORTADA PRESENTADO A: ING EN AUTOMATICA INDUSTRIAL FABIO ANDRES LASSO POR: BAYRON DARYAN OSORIO PARQUE IMFORMATICO CARLOS ALBAN POPAYAN -CAUCA.
Introducción (Motivación y Historia). Programación paralela Consiste de programar en un lenguaje que permite al usuario a indicar la manera en que partes.
Introducción a los SOs.
Redes de Area Local, LAN Una red de área local es una red de datos de alta velocidad que cubre un área geográfica relativamente pequeña. Típicamente conecta.
Agenda  Introducción  Relevamientos de tecnologías Objetivos de la fase de relevamiento de tecnologías Principales tecnologías disponibles -OpenMosix,
Escuela Normal “Profr. Darío Rodríguez Cruz”
Almacenamiento virtual de sitios web “HOSTS VIRTUALES”
Modelo de 3 capas.
Por: Ernesto Y. Soto Rivas G
Cluster de Computadores de Alto Desempeño con Acceso Remoto Santiago Iturriaga Damián Pintos Paulo Maya.
Cluster de Computadores de Alto Desempeño con Acceso Remoto
Cloud Computing July Palma L..
ARQUICTECTURA DE SERVIDORES
Clasificación Computador
ARQUITECTURA ALTERNATIVA DE SERVIDORES SISTEMAS OPERTIVOS DE RED En un sistema operativo de red los usuarios saben que están conectados a la red y que.
Son los atributos de un sistema que son visibles para un programador, es decir aquellos atributos que impactan directamente en la ejecución lógica de un.
* UNIVERSIDAD TECNOLOGICA DE PUEBLA TECNOLOGIAS DE LA INFORMACION Y COM. AREA REDES Y TELECOMUNIC IONES ADMINISTRACION DE SERVIDORES «ARQUITECTURA DE COMPUTADORAS»
ARQUITECTURAS DE LOS SERVIDORES El computador tiene 2 aspectos para entender su funcionamiento al nivel de programación: Almacenamiento Procesamiento Para.
BASE DE DATOS DISTRIBUIDAS
SISTEMAS OPERATIVOS Son un conjunto de programas destinados a permitir la comunicación entre el usuario y en computador y gestionar sus recursos.
SISTEMAS OPERTIVOS DE RED Los usuarios están conectados a la red y que pueden compartir recursos. Cada equipo ejecuta con sus propios recursos su propio.
Clasificación de las Computadoras
PROCESADOR.- El procesador es el cerebro del sistema, encargado de procesar toda la información. Básicamente, es el "cerebro" de la computadora. Prácticamente,
Instituto de Ciencias y Humanidades Tabasco. El software Coordinar el uso del hardware Coordinar el uso del hardware Ejercer el control Programas de aplicación.
Actualización del Superordenador Virtual Gallego Valencia, 12 Abril Carlos Fernández Sánchez Responsable Técnico de Sistemas
Conociendo el modelo Cliente-Servidor
Al seleccionar una red es importante conocer los elementos que la componen, entre estos elementos contamos con: el equipo de cómputo que se estará utilizando.
Transcripción de la presentación:

Computadoras de Alto Rendimiento (HPC) Ing. Sergio Chirino Tejeda

El cálculo computacional o cálculo científico es una actividad de la Ciencia que construye modelos matemáticos y aplica técnicas numéricas para resolver problemas científicos, de ciencias sociales, problemas de ingeniería, etc. Estos modelos requieren gran cantidad de cálculos y son a menudo ejecutados en supercomputadores o plataformas de computación distribuida.

Aplicaciones Economía. High Performance Technical Computing (HPTC). Física cuántica, predicción climática, investigación del clima, modelamiento molecular. Simulaciones físicas de aviones en túneles de viento, simulación de detonación de armas nucleares e investigación de la fusión nuclear. Economía. Data warehouses. Aplicaciones line-of-business (LOB). Procesamiento de transacciones.

Paralelización La computación paralela o procesamiento en paralelo consiste en acelerar la ejecución de un programa mediante su descomposición en fragmentos que pueden ejecutarse de forma simultánea, cada uno en su propia unidad de proceso. Por regla general los problemas no pueden dividirse perfectamente en partes totalmente independientes y equilibradas. Existen partes que deben realizarse en serie, y en ocasiones las tareas necesitan interaccionar entre ellas. Todo ello reporta una disminución en la capacidad. En raras ocasiones un cálculo en n ordenadores acelera en n veces. computador paralelo :un conjunto de elementos de proceso independientes que operan de forma conjunta para resolver problemas de elevado coste computacional en un tiempo razonable

Speedup Ley de Amdahl: Si llamamos f a la fracción del programa que no se puede dividir en tareas paralelas, el tiempo de computación necesario para ejecutar el programa en M procesadores tp(M) será: relación entre el tiempo que necesita un procesador (ts) y el tiempo que necesitan M procesadores idénticos para realizar el mismo trabajo. La aceleración no crece linealmente con el número de procesadores, sino que tiende a saturarse.

Paralelización Para utilizar la paralelización en un entorno de cálculo es necesario programarla específicamente. Existen varios estándares para realizarlo, por ejemplo: Para sistemas de memoria compartida: POSIX Threads. OpenMP. Para sistemas de memoria distribuida (modelo de paso de mensajes): MPI. PVM.

Memoria Compartida POSIX Threads: es un estándar de POSIX para hilos de ejecución concurrentes. Las librerías que lo implementan suelen llamarse Pthreads, y normalmente se usan en sistemas UNIX, aunque también existen las implementaciones para Windows. OpenMP es más fácil de implementar que MPI pero suele ser menos eficiente. Como se trata de un sistema de memoria compartida, sólo pueden utilizarse los procesadores de un único nodo. Así, para calcular el sumatorio de diez términos 𝑠= 𝑁=1 10 𝑎𝑁 podemos dividir el problema en dos sumatorios de cinco términos y mandarlo a dos procesadores que actúen de forma concurrente. La variable a es una constante que se encuentra almacenada en el mismo espacio de memoria al que acceden las dos ejecuciones concurrentes.

Memoria Distribuida MPI es más difícil de implementar pero ofrece un mejor rendimiento. Permite usar muchos nodos diferentes puesto que no se comparte el espacio de memoria. PVM es una librería para el cómputo paralelo en un sistema distribuido de computadoras. Está especialmente diseñado para permitir que una red de computadoras heterogénea comparta sus recursos de cómputo (como el procesador y la memoria RAM) para disminuir el tiempo de ejecución de un programa al distribuir la carga de trabajo en varias computadoras. Para calcular el sumatorio anterior, tal como se muestra en la figura, todos los procesadores ejecutan una copia del programa, realizando comunicaciones periódicas para intercambiar resultados, y accediendo cada uno a su espacio de memoria para leer las distintas copias de la constante a.

HPC Evolución Tradicionalmente propietarios, fuertemente integrados y costosos. Última década: HPC abarató costos usando clústeres. Clústeres: desde 6.6% hasta 87.4% en el Top 500 desde 2000 hasta 2008. Los desafíos de HPC son similares a los de la computadora personal en su época.

Supercomputación Registros vectoriales. Esta tecnología, creada por Seymour Cray, permite la ejecución de muchas operaciones aritméticas en paralelo. Los procesadores vectoriales forman parte de los supercomputadores tradicionales, como la Cray-27. MPP (Massively Parallel Processors, Procesadores Masivamente Paralelos). Consiste en la utilización de cientos o miles de microprocesadores estrechamente coordinados. Se trata de un único computador con múltiples CPUs comunicadas por un bus de datos. Clústeres. Es una forma de computación distribuida en la que se utiliza un conjunto de ordenadores de uso general interconectados por redes locales Grid. Es un nuevo modelo de computación distribuida en el cual todos los recursos de un número indeterminado de computadoras son englobados para ser tratados como un único superordenador de manera transparente. Para almacenar la gran cantidad de información necesaria para la investigación, procesarla y visualizarla, se precisa una gran potencia de cálculo. La supercomputación es la herramienta que provee de esa potencia de cálculo al proyecto de investigación. Existen gran variedad de tecnologías y configuraciones, y por tanto, más de una clasificación posible. La siguiente división es una de ellas: El término grid se refiere a una infraestructura que permite la integración y el uso colectivo de ordenadores de alto rendimiento, redes y bases de datos que son propiedad y están administrados por diferentes instituciones. Su propósito es facilitar la integración de recursos computacionales heterogéneos.

Clúster de cálculo En un clúster de cálculo muchas computadoras individuales interactúan entre sí como si de una sola máquina se tratase. Las tareas se dividen en tareas más pequeñas que llamaremos subtareas y que puedan realizarse de forma paralela en varios ordenadores, reduciendo el tiempo de cálculo necesario. Las aplicaciones paralelas escalables requieren buen rendimiento; redes de comunicaciones escalables, de baja latencia y que dispongan de gran ancho de banda; y acceso rápido a archivos.

Ventajas Utilizan hardware disponible en el mercado y de bajo coste. Su sistema de comunicación se basa en redes de área local rápidas. Son sistemas escalables, de manera que pueden ampliarse fácilmente. Además puede sustituirse fácilmente cada computador defectuoso sin afectar al grupo, lo cual hace que se gane en disponibilidad. Pueden utilizar software de libre distribución, abaratando aún más los costes.

Tipos de clúster En función de que cada computador del clúster esté o no exclusivamente dedicado a él, podemos clasificar los clústeres en: Beowulf (dedicado): Agrupa varios nodos minimalistas conectados placa a placa, que se dedican exclusivamente para tareas del clúster. NOW (no dedicado): Los equipos son computadores completos que pueden dedicarse a otras tareas distintas de las del clúster y que se comunican normalmente mediante un switch (conmutador) central. En base a sus características podemos clasificar los clústeres: HPC - High Performance Cluster, Clúster de Alto Rendimiento. HAC - High Availability Cluster, Clúster de Alta Disponibilidad. HTC - High Throughput Cluster, Clúster de Alta Eficiencia.

Beowulf Los nodos se conectan por medio de una red privada, y sólo el "nodo maestro" es visible desde el exterior. El nodo maestro está reservado para accesar, compilar y manejar las aplicaciones a ejecutar. Se puede configurar con cualquiera de la siguientes variantes: Stand alone: Cada nodo tiene su propio sistema operativo. Diskless: El sistema operativo reside en un solo nodo, por lo general en la máquina maestra.

Componentes Hardware Front-end, también llamado servidor de gestión. Desde el front-end se distribuyen las tareas y trabajos a los nodos del clúster. Debido a que todos los nodos de cálculo dependen de él para recibir trabajos es conveniente dotarle de una infraestructura de Alta Disponibilidad o utilizar elementos hardware redundantes. Nodos de computación. Red de interconexión. Se suele utilizar redes Ethernet Gigabit ya que presenta un coste muy competitivo.

Componentes Software Sistema Operativo. El más utilizado es Linux, en sus distintas distribuciones. Herramientas para programación paralela. Incluye herramientas de desarrollo en distintos lenguajes, librerías para la paralelización como MPI y PVM. Software de gestión de colas, herramientas de administración y monitorización. Software específico de cálculo.

Funcionamiento Un usuario se conecta al front-end y lanza un cálculo (trabajo). El front-end envía el trabajo a los nodos de computación solicitados. Los nodos ejecutan las operaciones y al terminar enviarán los resultados de nuevo al front-end. El front-end se encarga de presentar el resultado final al usuario.