Computacion de Alto Performance



Documentos relacionados
Implementación de un Cluster de Computadoras con software libre para Computación Científica en Jicamarca

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

MPI es un estándar de programación en paralelo mediante paso de mensajes que permite crear programas portables y eficientes.

Programación en Paralelo con MPI en Clusters Linux

UNIVERSIDAD CARLOS III DE MADRID DEPARTAMENTO DE INFORMÁTICA INGENIERÍA EN INFORMÁTICA. ARQUITECTURA DE COMPUTADORES II 19 de junio de 2007

Arquitectura: Clusters

CLUSTER FING: ARQUITECTURA Y APLICACIONES

CLUSTER FING: PARALELISMO de MEMORIA DISTRIBUIDA

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

Capítulo 5. Cliente-Servidor.

:Arquitecturas Paralela basada en clusters.

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

General Parallel File System

Grids. Departamento de Supercómputo - DGSCA UNAM

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

Programación en Entornos Paralelos: MPI

Unidad 1: Conceptos generales de Sistemas Operativos.

Arquitectura de sistema de alta disponibilidad

Preliminares. Tipos de variables y Expresiones

Cómputo de Alto Desempeño en Intel: OSCAR, Solución en Software para Cómputo en Clusters

4. Programación Paralela

Arquitecturas de computadoras

Proyecto Grid Computing

INTRODUCCIÓN. Que es un sistema operativo? - Es un programa. - Funciona como intermediario entre el usuario y los programas y el hardware

La Pirámide de Solución de TriActive TRICENTER

Message Passing Interface (MPI)

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

Multipedidos es un sistema de ventas on-line que permite gestionar pedidos por internet en tiempo real de manera económica, simple y eficaz.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

OBJETIVOS DE APRENDIZAJE

Linux Week PUCP. Computación de Alto Rendimiento en Linux.

Computación Tercer Año

Paradigma de paso de mensajes

Organización del Centro de Cálculo

SISTEMAS DE INFORMACIÓN II TEORÍA

Introducción al Cluster

Módulos: Módulo 1. Hardware & Arquitectura de sistemas - 20 Horas

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

Microsoft SQL Server Conceptos.

A continuación resolveremos parte de estas dudas, las no resueltas las trataremos adelante

Introducción a la Computación Distribuida y Condor

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

LOTE 1: PLATAFORMA DE CÓMPUTO DE ALTO RENDIMIENTO PARA CÁLCULO CIENTÍFICO Y PARELELO BASADO EN CLUSTER DE COMPUTADORES.

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

Facultad de Ingeniería ISSN: Universidad Pedagógica y Tecnológica de Colombia. Colombia


LX20 Transmisor universal GPRS

Novedades en Q-flow 3.02

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

ING. YURI RODRIGUEZ ALVA

Procesamiento Paralelo

Plataformas paralelas

El gasto total elegible de la BBPP, Centro de Supercomputación es de ,11. La ayuda FEDER, es el 80%, ,48

Anexo 4 Documento de Arquitectura

Workflows? Sí, cuántos quiere?

Software Computacional y su clasificación

Descripción. Este Software cumple los siguientes hitos:

Capacidad de procesamiento del compilador Python para el Sistema Operativo Windows y Linux Palabras Clave:

Almacenamiento virtual de sitios web HOSTS VIRTUALES

Status Enterprise Guía de Usuario. Parte 7 Servidor Status

Pruebas y Resultados PRUEBAS Y RESULTADOS AGNI GERMÁN ANDRACA GUTIERREZ

.NET y J2EE VALORACIÓN Y COMPARACIÓN DE LOS ELEMENTOS DE LAS DOS PLATAFORMAS. Definiciones...2 C# y Java...3 Similitudes...4 Ventajas...

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

CLASIFICACIÓN DE LAS COMPUTADORAS. Ing. Erlinda Gutierrez Poma

Capítulo 5. Análisis del software del simulador del sistema de seguridad

INFORME TÉCNICO PREVIO DE EVALUACIÓN DE SOFTWARE

Base de datos II Facultad de Ingeniería. Escuela de computación.

GUÍA DE ADMINISTRACIÓN SALA DE SISTEMAS

Análisis de aplicación: Virtual Machine Manager

Resumen General del Manual de Organización y Funciones

SIEWEB. La intranet corporativa de SIE

CURSO: APACHE SPARK CAPÍTULO 2: INTRODUCCIÓN A APACHE SPARK.

Centro de Investigación y Desarrollo en Ingeniería en Sistemas de Información (CIDISI)

NTRODUCCION. "Tipos de Computadoras" Tipos de Computadoras

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

Audit for Printers.

Diseño de Base de Datos

Open Source Uso de hipergate como Intranet

La nueva arquitectura del paquete AMORE (A MORE Flexible Neural Network)

RODRIGO TAPIA SANTIS com) has a. non-transferable license to use this Student Guide

Unidad 1: Conceptos generales de Sistemas Operativos.

CAPÍTULO 3: Resultados

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

Suite Open Source de CRM y GroupWare Características Funcionales

Análisis de aplicación: Cortafuegos de la distribución clearos

Nombre del documento: ProgramadeEstudiode asignaturadeespecialidad. Referencia a la Norma ISO9001: Página 1 de 7

Es el conjunto de programas y procedimientos ejecutados en un computador, necesarios para hacer posible la realización de una tarea específica.

Recursos HELP DESK Biblioteca 2012

Introducción Componentes Básicos Concurrencia y Paralelismo Ejemplos Síntesis Lecturas Recomendadas. Arquitectura de Computadoras

CAPÍTULO 1 Instrumentación Virtual

Descripción Plataforma Cloud del proyecto CloudPYME

Determinación del nivel de influencia

Transcripción:

Computacion de Alto Performance Abraham Zamudio Abraham Zamudio Computacion de Alto Performance 1/47

Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH 2 MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI recv 5 Ejemplos Abraham Zamudio Computacion de Alto Performance 2/47

Definicion Técnicas, investigación e infraestructura entorno a problemas con alta demanda de recursos computacionales. Comprende: High Performance Computing (HPC) Hardware: almacenamiento, procesamiento, redes... Software: sistemas de archivos, programación paralela... Aplicaciones : cálculos complejos, simulación, minería... Abraham Zamudio Computacion de Alto Performance 3/47

Definicion Supercomputación: Máquinas de gran escala, muchos CPUs y mucha memoria Abraham Zamudio Computacion de Alto Performance 4/47

Definicion Computación cluster: Múltiples máquinas en red funcionando como una sola Abraham Zamudio Computacion de Alto Performance 5/47

Definicion Rendimiento se mide en operaciones de punto flotante por segundo (FLOPS) La supercomputadora más rápida del planeta a junio de 2013 es Tianhe-2, una computadora desarrollada por la Universidad Nacional de Tecnología de Defensa de China (NUDT) y ubicada en el Centro Nacional de Supercomputación en Guangzho, República Popular China, tiene un rendimiento de 33,86 petaflops (33.860.000.000.000.000 cálculos de coma flotante por segundo) superando en casi el doble al supercomputador Cray Titan, del Oak Ridge National Laboratory de Estados Unidos, que desde noviembre de 2012 mantenía la corona. Abraham Zamudio Computacion de Alto Performance 6/47

Definicion En la actualidad las máquinas más grandes operan en el orden de petaflops (www.top500.org) Abraham Zamudio Computacion de Alto Performance 7/47

Definicion : Estadisticas Top500.org Procesadores Abraham Zamudio Computacion de Alto Performance 8/47

Definicion : Estadisticas Top500.org Paises Abraham Zamudio Computacion de Alto Performance 9/47

Definicion : Estadisticas Top500.org Vendedores Abraham Zamudio Computacion de Alto Performance 10/47

Definicion : Estadisticas Top500.org Areas Abraham Zamudio Computacion de Alto Performance 11/47

Definicion : Estadisticas Top500.org Sistema Operativo Abraham Zamudio Computacion de Alto Performance 12/47

Definicion : Estadisticas Top500.org Conectividad Abraham Zamudio Computacion de Alto Performance 13/47

Definicion : Estadisticas Top500.org Conectividad Abraham Zamudio Computacion de Alto Performance 14/47

Definicion : Tipos de Computadoras Taxonomía de Flynn La taxonomía de Flynn es una clasificación de arquitecturas de computadores propuesta por Michael J. Flynn a en 1972. Es la clasificación más extendida del paralelismo: a http://arith.stanford.edu/ flynn/ Distingue entre instrucciones y datos Estos pueden ser simples o múltiples Abraham Zamudio Computacion de Alto Performance 15/47

Definicion : Tipos de Computadoras Taxonomía de Flynn - SISD Una instrucción por unidad de tiempo Trabaja sobre una sola variable (datos) Podría utilizar pipelining Ejemplo:Computador con CPU de un núcleo Abraham Zamudio Computacion de Alto Performance 16/47

Definicion : Tipos de Computadoras Taxonomía de Flynn - SIMD Todos los procesadores ejecutan la misma instrucción Ejemplo:GPUs, IBM Cell (PS3) Podrían utilizar datos o variables diferentes Requieren distribución y sincronización Abraham Zamudio Computacion de Alto Performance 17/47

Definicion : Tipos de Computadoras Taxonomía de Flynn - MISD Maquina poco común Múltiples procesadores trabajan sobre los mismos datos Algunos usos posibles: Sistemas tolerantes a fallas y Criptografía Abraham Zamudio Computacion de Alto Performance 18/47

Definicion : Tipos de Computadoras Taxonomía de Flynn - MIMD Cada procesador ejecuta diferentes instrucciones sobre diferentes datos Se pueden construir a partir de componentes SIMD Computadores con múltiples procesadores y cada procesador con múltiples núcleos Abraham Zamudio Computacion de Alto Performance 19/47

Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH 2 MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI recv 5 Ejemplos Abraham Zamudio Computacion de Alto Performance 20/47

Que es el Paralelismo Computacional Considera tu aplicacion computacional favorita UN procesador se puede demorar N horas!!!! Abraham Zamudio Computacion de Alto Performance 21/47

Que es el Paralelismo Computacional Porque no usar N procesadores? El concepto es simple : Paralelismo = Usar muchos procesadores para resolver un problema Abraham Zamudio Computacion de Alto Performance 22/47

Porque usar Computo Paralelo? Limites de una CPU Memoria disponible Performance La computacion paralela permite Resolver problemas que no se podria con una CPU Resolver problemas que no se pueden resolver en un tiempo razonable Abraham Zamudio Computacion de Alto Performance 23/47

Porque usar Computo Paralelo? Se pueden ejecutar : Problemas Grandes. Menores Tiempos de procesamiento. Correr simulaciones con resoluciones muy pequeñas. Analizar muchos casos. Modelar modelos fisicos con un realismo sorprendente. Abraham Zamudio Computacion de Alto Performance 24/47

Ejemplo : Pronostico del Tiempo Abraham Zamudio Computacion de Alto Performance 25/47

Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH 2 MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI recv 5 Ejemplos Abraham Zamudio Computacion de Alto Performance 26/47

Nodos Abraham Zamudio Computacion de Alto Performance 27/47

Resource Manager - Torque TORQUE es un administrador de recursos Open Source que provee control sobre los trabajos y nodos pertenecientes a un cluster. Torque esta basado en OpenPBS (Version 2.3.12) e incorpora escalabilidad, tolerancia a fallos y parches con caracteristicas extendidas facilitadas por NCSA, OSC, El Departamento de Energia de los Estados Unidos, Sandia, PNNL, University of Buffalo, TeraGrid, y muchas otras organizaciones orientadas a la Computacion de Alto Rendimiento, ademas de asignar recursos en base a peticiones como pueden ser: Arquitectura del procesador, memoria RAM, cantidad de procesadores, tiempo total de ejecucion en los procesadores y de toda la tarea (walltime),etc. Esta version puede ser libremente modificada y redistribuida sujeto a las restricciones de la licencia incluida. Abraham Zamudio Computacion de Alto Performance 28/47

Resource Manager - Torque Troque provee mejoras sobre el estandar de OpenPBS en las siguientes areas : Tolerancia a Fallos Se han agregado chequeos y manejos de condiciones de fallo Reparacion de muchos errores Script de soporte para chequear el estado o salud de los nodos Interfaz de planificacion Interfaz de consultas extendidas proveendo al planificador con informacion mas confiable y exacta Interfaz de control extendidad permitiendo al planificador mayor control sobre el comportamiento del trabajo y sus atributos Permite la recoleccion de estadisticas sobre los trabajos terminados Abraham Zamudio Computacion de Alto Performance 29/47

Resource Manager - Torque Troque provee mejoras sobre el estandar de OpenPBS en las siguientes areas : Escalabilidad Servidor significamentemente mejorado para el modelo de comunicacion MOM Habilidad para manipular grandes clusters Habilidad para manejar trabajos grandes (sobre 2000 procesadores) Habilidad para soportar grandes servidores de mensajes Usabilidad Extensiones de manejo de bitacoras Bitacoras mas entendibles Abraham Zamudio Computacion de Alto Performance 30/47

Scheduler - MAUI MAUI CLUSTER SCHEDULER es un planificador de trabajos Open Source usado en clusters y supercomputadoras. En él se pueden definir politicas de asignacion de recursos, como atributos de las colas, logrando una gestion mas efectiva con caracteristicas tales como: qué proceso corre, cúando y dónde, logrando así una mejor utilización de todos los recursos. Abraham Zamudio Computacion de Alto Performance 31/47

Message Passing Interface - MPI Las bibliotecas de paso de mensajes son herramientas que posibilitan el desarrollo de aplicaciones paralelas en maquinas con memoria distribuida. La funcion de una biblioteca de paso de mensajes es permitir que procesos en maquinas diferentes puedan cambiar informacion a travez de una red de interconexion. Abraham Zamudio Computacion de Alto Performance 32/47

Message Passing Interface - MPI MPI es un estandar adoptado para el desarrolo de una biblioteca de comunicacion a travez de paso de mensajes, siendo este estandar largamente utilizado para la exploracion del paralelismo en arquitecturas caracterizadas por poseer una memoria distribuida. Una de las implementaciones del estandar es MPICH2. Abraham Zamudio Computacion de Alto Performance 33/47

Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH 2 MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI recv 5 Ejemplos Abraham Zamudio Computacion de Alto Performance 34/47

Message Passing Interface CHameleon MPICH2 fue diseñado para ser una implementación ampliamente portátil de alto rendimiento del estandar Message Passing Interface (MPI) (MPI-1 y MPI-2). MPICH2 esta pensado para proporcionar una implementación de MPI eficientemente, compatible con diferentes plataformas de computación y comunicación incluyendo clústers de computadores, redes de alta velocidad (Myrinet de 10 Gigabit Ethernet, InfiniBand, Quadrics) y sistemas de computación patentados (Blue Gene, Cray, SiCortex). Abraham Zamudio Computacion de Alto Performance 35/47

Estructura generica de un programa MPI Incluir ficheros de cabecera MPI Definiciones y prototipos de funciones especificas de MPI Definir variables Inicializar el entorno MPI Cada procesador llama a una rutina MPI de inicializacion int main(int argc, char *argv[]) Funciones generales, llamadas a funciones MPI Cerrar comunicaciones MPI Cada procesador llama a una rutina MPI de finalizacion MPI Finalize(); Abraham Zamudio Computacion de Alto Performance 36/47

MPI Init Inicializa la biblioteca de MPI y debe ser llamada antes de cualquier otra rutina MPI. En C MPI Init ( &argc, &argv ); En Fortran call MPI INIT(integer error) Abraham Zamudio Computacion de Alto Performance 37/47

MPI Finalize Termina el ambiente de ejecución de MPI. Cualquier llamada a otra rutina de MPI posterior a esta fallará. En C MPI Finalize(); En Fortran CALL MPI Finalize (integer error) Abraham Zamudio Computacion de Alto Performance 38/47

MPI Comm size Determina el número de procesos en un comunicador. El comunicador representa a un grupo de procesos que pueden intercambiar mensajes entre si dentro de un contexto. Por default el que se emplea es el comunicador universal MPI COMM WORLD. En C MPI Comm size(mpi COMM WORLD,&numproc); En Fortran CALL MPI Comm size ( &MPI COMM WORLD, nprocs, integer error ) Abraham Zamudio Computacion de Alto Performance 39/47

MPI Comm rank Determina el rango de un proceso dentro de un comunicador. El rango es un número entre cero y el total de los procesos menos uno. En C CALL MPI Comm rank ( &MPI COMM WORLD, myrank, integer error ) MPI Comm rank(mpi COMM WORLD,&miproc); En Fortran Abraham Zamudio Computacion de Alto Performance 40/47

MPI Send Se utiliza para enviar datos punto a punto (Bloqueante) En C MPI Send( buffer, cantidad, tipo dato, p destino,etiqueta, comunicador ); Abraham Zamudio Computacion de Alto Performance 41/47

MPI Send void *buffer Puntero al mensaje a enviar int cantidad Numero de elementos de enviar MPI Datatype Tipo de Dato Tipo de elementos a enviar int p destino ID del proceso destino int Etiqueta Etiqueta para marcar mensajes MPI Comm Comunicador Comunicador usado Abraham Zamudio Computacion de Alto Performance 42/47

MPI recv Se utiliza para recibir datos punto a punto (Bloqueante). En C MPI Recv( buffer, cantidad, tipo dato, p fuente,etiqueta, comunicador, status); Abraham Zamudio Computacion de Alto Performance 43/47

MPI Rcvd void *buffer Puntero al mensaje a recibir int cantidad Numero de elementos de recibir MPI Datatype Tipo de Dato Tipo de elementos a recibir int p fuente ID del proceso fuente int etiqueta Filtro para saber que mensajes recibir MPI Comm Comunicador Comunicador usado MPI Status status Status del mensaje Abraham Zamudio Computacion de Alto Performance 44/47

Indice 1 Algunos Aspectos Teoricos 2 Paralelismo Computacional 3 Linux Cluster Hardware Software 4 MPICH 2 MPI Init MPI Finalize MPI Comm size MPI Comm rank MPI Send MPI recv 5 Ejemplos Abraham Zamudio Computacion de Alto Performance 45/47

#include <mpi.h> #include <stdio.h> int main(int argc, char *argv[]) { int np, p; MPI_Init( &argc, &argv ); MPI_Comm_size( MPI_COMM_WORLD, &np ); MPI_Comm_rank( MPI_COMM_WORLD, &p ); printf("soy el proceso %i de un total de %i \n", p, np ); MPI_Finalize(); } Abraham Zamudio Computacion de Alto Performance 46/47

Gracias por su atencion