Cómputo paralelo usando MPI: Simulaciones de N-cuerpos en la física

Slides:



Advertisements
Presentaciones similares
IBD Plan 90 y 2003 Clase 10.
Advertisements

¿De qué vamos a hablar hoy? Estrategia ágil vs. estrategia tradicional Scrum: ciclo de proyecto, roles Planificación ágil Seguimiento de un proyecto.
Algoritmos y Programas
Campo de Acción de las Tecnologías de la Información Rogelio Ferreira Escutia.
1.3. PROGRAMACION PARALELA
LENGUAJES PARALELOS Chang y Smith (1990) clasificación:
Intoduccion a la Arquitectura y Organizaciòn del Computador
Grupo Nº 1 Carlos Maldonado # 20 Carlos Bolívar # 3 Carlos Sarmiento # 39 Alejandro Herrada # 19 Daniel Cequea #9.
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
Programando con OpenMP*
Instrumentación Virtual con LabVIEW
PROGRAMACIÓN PARALELA Tema 3: Rutinas básicas de comunicación
Inferencia de modelos de redes reguladoras de genes usando algoritmos evolutivos. Luis Enrique Ramírez Chávez Asesores: Dr. Carlos Artemio Coello Coello.
Razonamiento algorítmico
SISTEMAS OPERATIVOS Un Sistema operativo (SO) es un software que actúa de interfaz entre los dispositivos de hardware y los programas de usuario.
CIFRADO DE FLUJO.
PROGRAMACIÓN PARALELA Tema 5: Análisis de algoritmos paralelos
Resolución de Problemas
Investigación cuantitativa
Tecnologías Cliente / Servidor Capitulo III Richard Jiménez V. clienteserver.wordpress.com.
TRABAJO PRÁCTICO Nº 5 UNIVERSIDAD DE BUENOS AIRES
H.-J. Götze IfG, Christian-Albrechts-Universität Kiel
Computación PROGRAMACIÓN.
El Diseño de Algoritmos Paralelos
OTTO EL ROBOT SICI-3011 Preparado por: Prof. Nelliud D. Torres.
Datos de entrada: Proceso: Datos de salida: Inicio 1.
La Luna La luna es el astro o el cuerpo celeste más cercano a nuestro planeta y su único satélite natural es un cuerpo que se desplaza alrededor de la.
Cómputo paralelo usando MPI: Simulaciones de N-cuerpos en la física
ProParCurso 13/14 1Computadores Paralelos 2Programación basada en paso de mensajes 3Técnicas básicas de programación paralela Compulsiva, Divide y Vencerás,
La ley de los grandes números
Reducción de datos Por Elizabeth León.
Iris Espinoza, Robinson Rivas, Iván Saavedra
Sesión 15.1 Rectas y planos en R3.
Sesión 15.1 Rectas y planos en R3.
Enrutamiento con un protocolo de Link-State
Ejemplo: Creación y mutación de procesos
Arreglos (vectores, matrices, ….)
Cátedra Pragma BPM II © PRAGMA S.A.. Cátedra Pragma BPM II © PRAGMA S.A.
Definición Los Algoritmos Genéticos son métodos adaptativos que pueden usarse para resolver problemas de búsqueda y optimización. los Algoritmos Genéticos.
Recurrencia Programación II 3-4 de febrero de 2009.
Entradas FF Sincrónicas y Asincrónicas
Scheduling and Mapping Introducción Marco de referencia Módulos independientes Tareas con precedencia sin costo Precedencia de tareas y retardos en la.
Aplicaciones de Algoritmos Genéticos
Algoritmos de ordenación
Cómputo paralelo usando MPI: Simulaciones de N-cuerpos en la física
Proceso de información en la computadora
Sistemas Distribuidos
Tres Algoritmos Paralelos para Multiplicación Matriz Vector
PROGRAMACIÓN PARALELA Tema 4: Metodología de la programación
Diseño y Mantenimiento de un cluster para la dinámica de fluidos
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Analisis de Rendimiento.
Communicating Sequential Processes Presentación realizada por : Alberto Calixto Simon Ivan Olmos Pineda.
MPISistemas Distribuidos1 MPI Un estándar de paso de mensajes para Clusters y Workstations Communications of the ACM, July 1996 J.J. Dongarra, S.W. Otto,
1 Paralelización del algoritmo de segmentación CM Martíno García Hernández UAM-I Noviembre 2007.
UNIVERSIDAD NACIONAL DEL NORDESTE
PRESENTADO POR LEIDY RODRÍGUEZ JOHANNA VALERO CAMILO VELANDIA MERCADEO.
Tipos de Paralelismo Paralelismo de datos: cada procesador ejecuta la misma tarea sobre diferentes conjuntos o subregiones de datos Paralelismo de tareas:
Modelos de Pase de Mensajes
SEGURIDAD EN SISTEMAS DE POTENCIA
DISTRIBUCIONES DE MUESTREO
PROGRAMACIÓN PARALELA Modelos de programación paralela Modelos computacionales Paradigmas de programación paralela Programación en memoria compartida:
Ejemplos del Diseño de Algoritmos Paralelos (Transparencias de McGraw-Hill Modificadas)
Nuestra herramienta mental más importante para competir con la complejidad es la abstracción. Por tanto, un problema no deberá considerarse inmediatamente.
Modelo OSI Surgimiento del Modelo OSI ¿Que es el Modelo OSI?
Por: Mario Felaco Mercedes Martinez Sistemas Operativos III Ene-Mar 2007.
Metodología de la programación
Clasificación de software
Microsoft Office Project INTRODUCCIÓN A LA GESTIÓN DE PROYECTOS Microsoft Office Project 2010.
Programa Visual Basic Giuliano Woloszanowski 2B Pc: 24.
Lab. 8: Métodos directos e iterativos para sistemas de Ec. lineares Algoritmos paralelos Glen Rodríguez.
Transcripción de la presentación:

Cómputo paralelo usando MPI: Simulaciones de N-cuerpos en la física M.A. Rodríguez-Meza Instituto Nacional de Investigaciones Nucleares Correo electrónico: mar@nuclear.inin.mx http://www.astro.inin.mx/mar Paralelo vs serial 18/08/09 UAEH

Concepto de secuencia Dia – noche nos levantamos – desayunamos – vamos a trabajar – comemos – regresamos a trabajar – nos vamos al antro - ... Hablamos secuencialmente En cualquier parte de la naturaleza y en la vida humana, las actividades se desarrollan y expresan a si mismas a través del principio secuencial. Es natural, por lo tanto, que los algorítmos y programas de cómputo se hayan formulado de acuerdo al concepto de secuencia. De hecho el concepto de algorítmo, antes del nacimiento de las computadoras fue definido como una secuencia finita de operaciones. En cualquier parte de la naturaleza y en la vida humana, las actividades se desarrollan y expresan a si mismas a través del principio secuencial. Es natural, por lo tanto, que los algorítmos y programas de cómputo se hayan formulado de acuerdo al concepto de secuencia.

¿Dónde comenzo todo? Era del hielo: Edad de piedra Edad de bronce El oscurantismo: Bill Gates y Microsoft La manzana, pero no de Newton El renacimiento: Linux y GNU

Serial Vs. Paralelo: ¿Qué vemos a nuestro alrededor? Las colas Restaurant COUNTER 2 COUNTER COUNTER 1 Q Please

Pero ... eso es sólo una parte de la historia La actividad humana y la ley natural no sólo son secuenciales sino altamente paralelas. La acción no es sólo secuencial sino que hay acción en todas partes. El paralelismo es tan importante como lo secuencial. Los individuos son secuenciales pero los individuos son parte de organizaciones o de colectividades, actuando en paralelo. Lo mismo es cierto en la naturaleza Las leyes de la naturaleza muchas veces se expresan como campos físicos, funciones definidas en todos lados a un tiempo dado. Por lo tanto, una descripción completa de la actividad humana y de la acción en la naturaleza requiere de los dos conceptos, paralelismo y secuencialidad.

El concepto básico de la programación en paralelo El proceso: una secuencia de operaciones que pueden ser realizadas por procesador individual. Intercambio de información entre procesos paralelos. Sincronización entre procesos. t x

El arte de la programación de procesos paralelos Rank Sort Computation: Procesos: Proceso secuencial Proceso paralelo UNSORTED LIST RANK 15 4 10 3 39 7 8 2 22 6 4 0 19 5 6 1 Clústers: Memoria compartida Memoria distribuida Procesos de gobierno Procesos en un restaurant

Patrones o categorias Paralelismo de datos. Un número grande de datos es sujeto a un proceso idéntico o similar. (RC-Catalogo de galaxias) Partición de los datos. El espacio de datos es particionado naturalmente en regiones adjacentes, cada una de las cuales es operada en paralelo por un procesador diferente. Algorítmo relajado. Cada proceso paralelo cálcula de una manera auto-suficiente sin sincronización o comunicación entre procesadores. El ordenamiento por rango en paralelo es un ejemplo de un algorítmo relajado. Iteración sincrónica. Cada procesador realiza el mismo cálculo iterativo en una porción diferente de los datos. Sin embargo, el procesador debe ser sincronizado al final de cada iteración. Replicated workers. Un pool central de tareas similares es mantenida. Hay un número grandes de trabajadores que sacan tareas del pool, llevan a cabo el cálculo requerido, y posiblemente agreguen una nueva tarea al pool. Todo el cálculo termina cuando el pool se vacia. Pipelined computation. Los procesos son arreglados en alguna estructura regular tal como un anillo o malla bidimensional. Los datos entonces fluyen a través de toda la estructura del proceso, con cada proceso realizando cierta fase del cálculo total.

Degradation sources Memory contention. Excessive sequential code. Process creation time. Communication delay. Synchronization delay. Load imbalance.

Problema de N-cuerpos

Paralelizando la evolución de un sistema de N-cuerpos Ring topology PROCESS 1 PROCESS 2 PROCESS 3 PROCESS 4 PROCESS 5 TO 1 A A B B C C D D E E A E B A C B D C E D A D B E C A E C A C B D C E D A E B A B B C C D D E E A

Protocolo Message-Passing Interface (MPI) pnbody: Funciones MPI_Bcast MPI_Finalize MPI_Barrier MPI_Allreduce MPI_Allgather MPI_Sendrecv MPI_Reduce MPI_Send MPI_Recv MPI_Ssend MPI_Abort MPI_Gather MPI_Init MPI_Comm_Rank MPI_Comm_size pnbody: Parámetros ThisTask NTask Ptask Tipos MPI_Status