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

12
Cómputo paralelo usando MPI: Simulaciones de N-cuerpos en la física M.A. Rodríguez-Meza Instituto Nacional de Investigaciones Nucleares reo electrónico: [email protected] p://www.astro.inin.mx/mar Paralelo vs serial 1 18/08/09 UAEH

description

M.A. Rodr íguez -Meza Instituto Nacional de Investigaciones Nucleares. Cómputo paralelo usando MPI: Simulaciones de N- cuerpos en la física. Correo electr ónico : [email protected] http:// www.astro.inin.mx /mar. Paralelo vs serial. Concepto de secuencia. Dia – noche - PowerPoint PPT Presentation

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

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

UAEH 1

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

M.A. Rodríguez-MezaInstituto Nacional de Investigaciones Nucleares

Correo electrónico: [email protected]://www.astro.inin.mx/mar

Paralelo vs serial18/08/09

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

2

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.

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

3

¿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

3.1415* 2.7723453 /234.4567 sin(3.1415 /4)

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

Serial Vs. Paralelo: ¿Qué vemos a nuestro alrededor?

QPlease

COUNTER

COUNTER 1

COUNTER 2

• Las colas

• Restaurant

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

5

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.

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

6

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

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

7

El arte de la programación de procesos paralelos

Procesos:– Proceso secuencial– Proceso paralelo

Clústers:Memoria compartidaMemoria distribuida

Rank Sort Computation:

UNSORTED

LIST RANK

15 4

10 3

39 7

8 2

22 6

4 0

19 5

6 1

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

8

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.

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

9

Degradation sources

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

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

10

Problema de N-cuerpos

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

11

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 C B E C

A C B D C E D A E B

A B B C C D D E E A

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

12

Protocolo Message-Passing Interface (MPI)

• pnbody:– Funciones

1. MPI_Bcast2. MPI_Finalize3. MPI_Barrier4. MPI_Allreduce5. MPI_Allgather6. MPI_Sendrecv7. MPI_Reduce8. MPI_Send9. MPI_Recv10. MPI_Ssend11. MPI_Abort12. MPI_Gather13. MPI_Init14. MPI_Comm_Rank15. MPI_Comm_size

pnbody: Parámetros

1. ThisTask2. NTask3. Ptask

Tipos1. MPI_Status