Вы находитесь на странице: 1из 49

Cap 1

Programacin Paralela en Sistemas de Informacin


Parallel Programming Techniques & Applications Using Networked Workstations & Parallel Computers, by B. Wilkinson & M. Allen, Profesor: Diego A. Aracena Pizarro

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.1

La demanda por velocidad de clculo


De la demanda continua por mayor velocidad de clculo en sistemas informticos posibles actualmente Las reas que requieren gran velocidad de clculo son el modelado y la simulacin numrica en problemas cientficos y de ingeniera. Los clculos deben realizarse en un "plazo razonable".

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.2

Problemas de Gran Desafio


Uno que no pueda ser resuelto en un perodo razonable de tiempo con las computadoras de hoy. Obviamente, una ejecucin de 10 aos siempre no es razonable. Ejemplos Modelado de estructuras grandes de ADN Prediccin meteorolgica mundial Modelado del movimiento de cuerpos astronmicos.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.3

El pronstico del tiempo


Modelo Atmosfrico dividido en celdas tridimensionales. Clculos repetidos de cada celda hasta que converjan al modelo de tiempo

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.4

Ejemplo de Pronsticos Global del Tiempo


Supongamos que toda la atmsfera mundial dividida en celdas del tamao de 1 milla 1 milla 1 milla a una altura de 10 millas (10 celdas de altura)- cerca de 5 108 celda. Supongamos que cada clculo requiere 200 operaciones de punto flotante. En un paso de tiempo, 1011 floating point operaciones necesarias. Para predecir el tiempo ms de 7 das, utilizando intervalos de 1 minuto, un operativo de la computadora en 1Gflops (109 operaciones de punto flotante / s ) toma106 sec. o sobre 10 dias. Para realizar el clculo en 5 minutos requiere operativo del ordenador en el 3,4 TFLOPS(3.4 1012 operaciones de punto flotante por segundo).

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.5

Modelado de movimientos de cuerpos astronmicos


Cada cuerpo es atrados uno por otro cuerpo de las fuerzas gravitacionales. Movimiento de cada cuerpo previsto por el clculo de la fuerza total de cada cuerpo. Con N cuerpo, N - 1 fuerzas para calcular para cada cuerpo, o aprox. N2 calculos. (N log2 N por un algorithmo aprox. eficiente.) Despus de determinar las nuevas posiciones de los cuerpos, los clculos de repetidas.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.6

Una galacia podria tener, digamos, 1011 estrellas. Si cada calculo se hace en 1 ms (extremely figura optimistica), tomaria 109 aos para una iteracin usando algoritmos N2 y casi un ao para una iteracin usando algoritmo aproximado eficiente de N log2 N.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.7

Astrophysical N-cuerpo por simulacin Scott Linssen (estudiante de pregrado UNC Charlotte).
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.8

Computacin Paralela
Usando ms de una computadora o un equipo con ms de un procesador, o un procesador con ms de un ncleo, o un ncleo con ms de un pipeline, escalar o VLIW para resolver un problema. Motivos Normalmente el clculo ms rpido - idea muy simple - de que los ordenadores n operando simultneamente y puede lograr el resultado N veces ms rpido - no ser N veces ms rpido, por diversas razones. Otros motivos son: la tolerancia a fallos, mayor cantidad de memoria disponible, ...

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.9

Background
Los ordenadores paralelos - los ordenadores con ms de un procesador - y su programacin - la programacin en paralelo - ha existido por ms de 40 aos

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.10

Gill escribe en1958: ... Por lo tanto, no hay nada nuevo con la idea de programacin paralela, para su aplicacin en los computadores. El autor no puede creer que no habrn dificultades algunas insuperables al aplicarlas en computadoras. No es de esperar que las tcnicas de programacin se apliquen para operar toda la noche. Gran parte de experimentar que queda por hacer. Despus de todo, las tcnicas que se utilizan comnmente en la programacin de hoy en da slo se ganaron a costa de considerables esfuerzos de varios aos. De hecho, el advenimiento de la programacin paralela puede hacer algo para revivir el espritu pionero en la programacin, de lo que parece en la actualidad que se degenere en una ocupacin ms bien aburrida y rutinaria...
Gill, S. (1958), Parallel Programming, The Computer Journal, vol. 1, April, pp. 2-10.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.11

Factor Speedup
Execution time using one processor (best sequential algorithm) = ts S(p) = Execution time using a multiprocessor with p processors tp

donde ts es el tiempo de ejecucin en un nico procesador y tp es el tiempo de ejecucin en un multiprocesador. S(p) ganancia de velocidad mediante el uso de multiprocesador. Utilice mejor algoritmo secuencial con el sistema de procesador nico. Detrs de algoritmo para la aplicacin paralela puede ser (y por lo general) diferentes.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.12

factor Speedup tambin puede ser planteado en trminos de medidas de clculo:


Number of computational steps using one processor Number of parallel computational steps with p processors

S(p) =

Tambin puede ampliar la complejidad tiempo para clculos en paralelo.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.13

Maximum Speedup
Aumento de velocidad mxima es generalmente p con procesadores p (speedup linear). Es posible obtener speedup superlinear (mayor que p) pero por lo general una razn especfica, como: De memoria adicional en el sistema multiprocesador Algoritmo Nondeterministic

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.14

Maximum Speedup
Amdahls law
ts fts Serial section (a) One processor (b) Multiple processors (1 - f)ts Parallelizable sections

p processors

tp

(1 - f)ts /p
1.15

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

factor Speedup viene dada por:


ts p S(p) = = fts + (1 f )ts /p 1 + (p 1)f

Esta ecuacin se conoce como ley de Amdahls

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.16

Speedup vs nmero de procesadores


20 16 12 8 4 f = 0%

f = 5% f = 10% f = 20% 4 8 12 16 20 Number of processors, p

Incluso con un nmero infinito de procesadores, maximo speedup se limita a 1/f . Ejemplo: Con slo 5% de fraccin serial, el maximo speedup es 20,

independientemente del nmero de procesadores


Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.17

Superlinear Speedup ejemplo


- Busqueda
(a) Busqueda secuencial en cada sub-espacio
Start Time ts t s/p Sub-space search xts/p t

Solution found

x indeterminate
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.18

(b) Busqueda Paralela en cada sub-espacio

Solution found
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.19

Speed-up viene dado por

Sp) (

x t s + t -- p = ---------------------------t

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.20

En el peor de los casos, la bsqueda secuencial es cuando la solucin se encuentra en ltimo sub-espacio. Luego la versin paralela ofrece mas beneficio, i.e.

Sp) (

----------- t + t 1 p s p --------------------------------------- = t as t tends to zero

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.21

En paralelo, el peor de los casos es cuando la solucin se encuentra en el primer sub-espacio en la bsqueda secuencial, i.e.

Sp) (

==t ----1 t

El Speedup depende del sub-espacio que tiene la solucin, pero podra ser alto, tendiente al nmero de sub-espacios.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.22

Tipos de Computacin Paralela


Dos tipos principales: Multiprocesadores de memoria compartida Multicomputadores de memoria Distribuida
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.23

Multiprocesador de Memoria Compartida

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.24

Computador Convencional
Consta de un procesador ejecutando un programa almacenado en una memoria principal:
Main memory Instructions (to processor) Data (to or from processor) Processor

Cada localizacin de memoria principal, ubicada por su direccin. Con direcciones desde 0 a 2b 1, cuando hay b bits (dgitos binarios) en la direccin.
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.25

Shared Memory Multiprocessor System


Manera natural de ampliar el modelo uniprocesador - varios procesadores conectados a mltiples mdulos de memoria, tal que cada procesador pueda accesar cualquier mdulo de memoria:
One address space Memory modules

Interconnection network

Processors

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.26

Vista simplificada del multiprocesador de memoria compartida

Processors

Shared memory

Bus

Ejemplos: Dual Pentiums Duo Core Quad Pentiums


Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.27

Quad Pentium de Memoria Compartida


Processor
L1 cache L2 Cache Bus interface

Processor
L1 cache L2 Cache Bus interface

Processor
L1 cache L2 Cache Bus interface

Processor
L1 cache L2 Cache Bus interface

Processor/ memory bus I/O interface Memory Controller

I/O bus

Shared memory

Memory
1.28

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

Usando: Threads descomposicin en secuencias paralelas individuales (hilos), cada una puede acceder a variables externas al hilo. Ejemplo Pthreads Lenguaje de programacin con preprocesador compilador de directivas para declarar variables compartidas y especificar paralelismo. Ejemplo OpenMP - industry standard necesita compilo OpenMP Lenguaje de programacin con sintaxis para declarar variables compartidas y especificar el paralelismo. Ejemplo UPC (Unified Parallel C) necesita compilo UPC. Lenguaje de programacin paralelo con sintaxis para expresar paralelismo - compilador crea cdigo ejecutable para cada procesador (poco comn ahora) Lenguaje de programacin secuencial y pregunta la paralelizacin sugerida por el compilador para convertirlo en cdigo ejecutable paralelo. ya no existe
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

Programando Multiprocesadores de Memoria Compartida

1.29

Computadores completos conectados a travs de mallas de interconexin:


Interconnection network Messages Processor

Multicomputador Paso de Mensaje

Local memory

Computers

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.30

Redes de Interconexin
Limitadas y pequeas interconexiones Mallas de 2- y 3-dimensiones Hypercube (no muy comn ahora) Usando Switches: Crossbar Arboles Networks de interconexin Multietapas

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.31

Arreglo bi-dimensional (mesh)


Links Computer/ processor

Tambin tridimensional - utilizado en algunos sistemas de alto rendimiento (HPC).


Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.32

Hipercubo Tridimensional
110 100 111 101

010 000 001

011

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.33

Hypercubo 4-dimensiones
0110 0100 0101 0111 1100 1110 1101 1111

0010 0000 0001

0011 1000

1010 1001

1011

Hypercubes popular al final de los 80s ya no


Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.34

Crossbar switch
Memories

Processors

Switches

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.35

Arbol
Root Links Switch element

Processors

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.36

Multistage Interconnection Network


Ejemplo: Omega network
2 2 switch elements (straight-through or crossover connections) 000 001 010 011 Inputs 100 101 110 111
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

000 001 010 011 Outputs 100 101 110 111


1.37

Hacer una memoria principal de un grupo de computadores interconectados como una sola memoria con espacios de direccin nicos. Donde se puede utilizar tcnicas de programacin con memoria compartida.
Interconnection network Messages Processor

Memoria Distribuida Compartida

Shared memory Computers


Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.38

Taxonomia de Flynns
Flynn (1966) crea una clasificacin para los equipos basados en flujos de instruccin y flujos de datos:
Simple Instruccin Simple Dato (SISD) computer

Single processor computer - single stream of instructions generated from program. Instructions operate upon a single stream of data items.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.39

Multiple Instruction Stream-Multiple Data Stream (MIMD) Computer


Multiprocesador de propsito general - cada procesador tiene un programa independiente y un flujo de instrucciones es generada por cada programa en cada procesador. Cada instruccin opera sobre datos diferentes. Tanto multiprocesadores de memoria compartida y de paso de mensajes descritos hasta ahora se encuentran en la clasificacin MIMD.
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.40

Single Instruction Stream-Multiple Data Stream (SIMD) Computer


Diseado especialmente - un flujo de instrucciones para un solo programa, pero existen mltiples flujos de datos. Cada procesador ejecuta la misma instruccin en sincronismo, pero con diferentes datos. Desarrollados debido a un nmero importante de aplicaciones que operan sobre todo a los conjuntos de datos diferentes.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.41

Multiple Program Multiple Data (MPMD) Structure


En esta clasificacin MIMD, cada procesador ejecuta su propio programa:

Program Instructions Processor

Program Instructions Processor

Data
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

Data
1.42

Single Program Multiple Data (SPMD) Structure


nico Programa ejecutado en cada procesador, aunque de forma independiente y no en sincronismo. Programa fuente construido de manera que partes del programa son ejecutadas por ciertas computadoras y no otros, dependiendo de las cractersticas del equipo.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.43

Networked Computers as a Computing Platform


Red de computadores se convirtieron en una alternativa atractiva en relacin a los costosos supercomputadores y sistemas paralelos de computacin de alto desempeo de principio de los1990s. Varios proyectos iniciales. Notables: Proyecto Berkeley NOW (network of workstations). Proyecto NASA Beowulf.

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.44

Ventajas Claves :
Estaciones de trabajo de alto rendimiento y PCs fcilmente disponibles a bajo costo. Los ltimos procesadores pueden ser fcilmente incorporados al sistema a medida que estn disponibles. El software existente puede ser utilizado o modificado.
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.45

Herramientas de Software para Clusters


Sobre la base de paso de mensajes en computacin paralela: Parallel Virtual Machine (PVM) - desarrollado a finales de 1980's. Se hizo muy popular. Message-Passing Interface (MPI) - estandar definido en 1990s. Ambos ofrecen un conjunto de bibliotecas a nivel de usuario por paso de mensajes. Uso de los lenguajes habituales de programacin (C, C++, ...).

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.46

Clusters Beowulf *
Un grupo de computadores interconectados para lograr un alto desempeo a bajo costo. Normalmente mediante interconexiones existentes - Ethernet de alta velocidad, Fast y Gigas, con sistema operativo Linux o NT. * Beowulf viene del nombre del proyecto en la NASA Cluster Goddard Space Flight Center.
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.47

Cluster Interconectados
Originalmente fast Ethernet en clusters de bajo costo Gigabit Ethernet camino facil de upgrade

Ms especializados/HPC
Myrinet - 2.4 Gbits/sec - desventajas: nico vendedor cLan SCI (Scalable Coherent Interface) QNet Infiniband interface inportante que puede ser integrada en las siguientes generaciones PCs
Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.48

Cluster dedicado con un nodo maestro


Dedicated Cluster Compute nodes Master node Up link Switch
2nd Ethernet interface

User

External network

Programacin Paralela en Sistemas de Informacin Diego A. Aracena Pizarro

1.49

Вам также может понравиться