La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 22 de Mayo de 2004.

Presentaciones similares


Presentación del tema: "Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 22 de Mayo de 2004."— Transcripción de la presentación:

1 Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 22 de Mayo de 2004

2 COMPUTACIÓN PARALELA III

3 ARQUITECTURA DE DUCTOS RECONFIGURABLES ~> Multiprocesador ~> SIMD (instrucción única, datos múltiples) ~> Síncrona

4 Ducto transmitiendo Ducto Procesador Puerto LR-MESH Mesh Reconfigurable Lineal ~> 10 combinaciones por cada procesador

5 Ducto transmitiendo Ducto Procesador Puerto R-MESH Mesh Reconfigurable ~> 15 combinaciones por cada procesador

6 Ducto dirigido Procesador Puerto de salida Puerto de entrada DR-MESH Mesh Reconfigurable Dirigido

7 MESH RECONFIGURABLE (+ características) ~> Se asume que el retardo en ducto es O(1). ~> Los buses se conectan/desconectan según las necesidades, en base a decisiones locales. ~> La colisión se genera en el ducto. ~> El ducto se comporta como una herramienta computacional, en la PRAM era la ALU de cada procesador. ~> Se asume que cada procesador conoce su índice.

8 CICLO DE MÁQUINA 1. Cada procesador configura sus conexiones internas 2. Los procesadores escriben en los ductos 3. Los procesadores leen de los ductos 4. Cada procesador realiza una operación interna Los procesadores realizan los subpasos anteriores con base en decisiones locales.

9 Modelo AModelo B O(1) u.t. Modelo AModelo B O(1) u.t. T(n)>O(1) u.t. PODER COMPUTACIONAL

10 Poder Computacional Factibilidad de construcción DR- MESH R-MESH LR-MESH + + - - DR – Mesh R - Mesh N  N O(N  N) LR - Mesh O(N  N) O(1) u.t. O(N 2 ) u.t. Peor caso

11 FUNCIÓN OR Arreglo Lineal Reconfigurable 00 000011 Bus Splitting

12 0000 00 1 1 Configuran conexiones FUNCIÓN OR Arreglo Lineal Reconfigurable

13 000 00011 Escrituras en los ductos FUNCIÓN OR Arreglo Lineal Reconfigurable

14 Lecturas de los ductos 0000 00 1 1 FUNCIÓN OR Arreglo Lineal Reconfigurable

15 REDUCCIÓN PARALELA 43829105 123 56847 65 109

16 43829105 123 56847 65 9 43829105 123 56847 65 9 4+338+229+110+55 1235 68 4 7 6+55 109 REDUCCIÓN PARALELA Arreglo Lineal Reconfigurable

17 123 56847109 123 56847 9 1235 68 4 7 9 73 2 155115 73102 155115 7+10310210+515511+05 REDUCCIÓN PARALELA Arreglo Lineal Reconfigurable

18 123 56847109 123 56847 9 1235 68 4 7 9 17310215155115 17310215155115 17+15310215155115 REDUCCIÓN PARALELA Arreglo Lineal Reconfigurable

19 123 56847109 123 56847 9 1235 68 4 7 9 32310215155115 32310215155115 32+11310215155115 REDUCCIÓN PARALELA Arreglo Lineal Reconfigurable

20 123 56847109 43310215155115 REDUCCIÓN PARALELA Arreglo Lineal Reconfigurable

21

22 CARACTERÍSTICAS DE CALAFIA ~> 8 procesadores ultraSPARC III 900 Mhz con 8 MB de cache (Rendimiento total 14.4 Gflops) ~> Memoria Principal: 8 GB ~> Dispositivo de almacenamiento: Sun StorEdge D240 Media con: DVD-ROM, DAT y 2 Discos de 18 GB c/u ~> Discos externos de alta velocidad: Sun StorEdge T3 Array de 324 GB (total) ~> Interconexion del sistema: Sun Fireplane 9.6 GB/seg ~> Dispositivo de E/S: 2 modulos con 8 ranuras PCI c/u ~> Componentes redundantes: Fuente de poder, ventiladores, tarjeta controladora, Interface de red 10/100 Fast Ethernet

23 < --- Sun StorEdge D240 < --- Sun StorEdge Array T3 < --- Sun Fire 4800

24 OPCIONES DE COMPILACIÓN Opciones de compilado por default % cc fuente.c -o ejecutable Esto genera un ejecutable de 32 bits genérico para plataformas SPARC. Máximo desempeño Si se desea obtener un mejor desempeño en la ejecución secuencial del programa se puede usar: -fast -xarch=v8plusb (Para 32 bits) -fast -xarch=v9b (para 64 bits)

25 PASOS PARA PARALELIZAR UN PROGRAMA 1. Optimizar en un solo procesador. 2. Identificar los ciclos mas significativos que sean de mas peso en el cómputo. 3. Determinar que los resultados sean los correctos en la ejecución secuencial. 4. Elegir modelo: OpenMP, MPI, Directivas Sun. 5. Paralelizar. 6. Verificar. 7. Pruebas. 8. Repetir los pasos 5, 6 y 7.

26 Como calafia es un sistema de memoria compartida propicia que los compiladores (C y fortran) puedan distribuir de manera automática o explícita las iteraciones de los ciclos de un programa sobre varios procesadores mediante la inserción de directivas (o pragmas) dentro del código fuente (paralelismo de grano fino). # Paralelización implícita # Paralelización explícita

27 calafia.cicese.mx login: dfajardo password: ******

28 MPI (Message Passing Interface) Qué es? Es la primer biblioteca de paso de mensajes estándar y portable. Está formada por una colección de rutinas que facilitan la comunicación entre procesadores en programas paralelos. Qué ofrece? ~> Estandarización ~> Portabilidad ~> Potencialidad

29 FUNCIONES BÁSICAS Las funciones de MPI se utilizan en fortran y C. El formato en C es: rc = MPI_Xxxxx(parámetros) donde, ~> rc es una variable tipo entero que tiene valor de 0 ó 1, dependiendo del éxito o fracaso de la función. ~> Las x's representan el nombre de la subrutina. ~> La primer letra debe ser mayúscula.

30 TIPO DE DATOS PREDEFINIDOS

31 PASOS PARA CREAR UN PROGRAMA EN MPI 1. Inicializar la comunicación 2. Comunicar para compartir datos entre procesos 3. Finalizar el ambiente paralelo MPI tiene 125 funciones. Sin embargo un usuario podría comenzar a programar utilizando solamente 6 de ellas.

32 Inicializar la comunicación ~> MPI_Init() Inicializa el ambiente de programación MPI. ~> MPI_Comm_size() Al invocar esta función retorna el número de procesos. ~> MPI_Comm_rank() Regresa como resultado el número de cada procesador Comunicar para compartir datos entre procesos ~> MPI_Send() Esta función permite enviar un mensaje. ~> MPI_Recv() Esta rutina de MPI permite recibir un mensaje

33 Finalizar el ambiente paralelo ~> MPI_Finalize() Se finaliza el ambiente paralelo que provee MPI. Después de esta llamada ninguna rutina puede ser empleada, excepto MPI_Init.

34 COMPILANDO Y EJECUTANDO Los programas se compilan empleando un script llamado mpcc (o mpCC para C++) que llama a C con librerias propias de MPI. $ mpicc hola.c -o hola Para ejecutar el archivo se define el número de procesadores al momento de ejecutar un programa. $ hola -proc 4 ó $ mpirun -np 4 hola

35 ESTRUCTURA BÁSICA DE UN PROGRAMA CON MPI Todo programa MPI debe contener al menos las siguientes rutinas y estructura: Incluir archivo cabecera de mpi programa principal inicio MPI_Init()Inicializa las bibliotecas de MPI MPI_Comm_size(MPI_COMM_WORLD, numproc)Determina el número de procesos en que se esta ejecutando el programa dentro del comunicador (MPI_COMM_WORLD) por default. MPI_Comm_rank(MPI_COMM_WORLD, procid)Determina el ID (rango) del proceso dentro del comunicador. print("Soy el proceso: ", procid, "de", numproc)Imprime mensaje MPI_Finalize()Finaliza MPI fin

36 NUESTRO PRIMER PROGRAMA MPI!!! (HOLA MUNDO) #include main(int argc, char*argv[]){ int nprocs; // # de procesadores int rango; // rango de cada procesador MPI_Init(&argc, &argv); // Inicializa ambiente paralelo // # de procesadores y su rango MPI_Comm_rank(MPI_COMM_WORLD, &rango); MPI_Comm_size(MPI_COMM_WORLD, &nprocs); if(nprocs<2){ printf("Los procesadores deben ser mas de uno \n"); exit(1); } else printf("Hola mundo paralelo desde la tarea %d\n",rango); MPI_Finalize(); return 0; }

37 OTRO EJEMPLO... /* Programa que lee un entero de la terminal y lo distribuye a todos los procesos. Cada proceso imprime su rango y el valor que recibe. Esto se repite mientras no exista un valor negativo */ #include main(int argc, char *argv[]){ int rank, value; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); do{ if(rank==0) // Si soy el proceso maestro scanf("%d",&value); // Realizar un broadcast del valor a los otros procesos MPI_Bcast(&value, 1, MPI_INT, 0, MPI_COMM_WORLD); printf("El proceso %d obtuvo el valor: %d\n",rank,value); }while(value>=0); MPI_Finalize(); return 0; }


Descargar ppt "Sistemas Operativos II MC. Daniel Fajardo Delgado INSTITUTO TECNOLÓGICO DE CD. GUZMÁN 22 de Mayo de 2004."

Presentaciones similares


Anuncios Google