Sei sulla pagina 1di 50

Introducción al Procesamiento Paralelo

índice

2.2. Concepto de paralelismo


2.3. Necesidad del paralelismo
2.4. Historia de la computación y tendencias actuales
2.5. El rendimiento
2.6. Clasificación de sistemas paralelos
2.7. Paralelismo en sistemas monoprocesador
2.8. Estructuras paralelas
^^^^ Introducción al Procesamiento Paralelo
^^Q» 1. Concepto de paralelismo

Según Kai Hwang y Fayé A. Briggs:

4 el procesamiento paralelo es una forma eficaz de


procesamiento de información que favorece la explotación
de los sucesos concurrentes en el proceso de computación.

4 concurrencia implica paralelismo, simultaneidad y


solapamiento.
^^^^ Introducción al Procesamiento Paralelo
^^Q» 1. Concepto de paralelismo


sucesos paralelos:
^aquellos que pueden darse en diferentes recursos durante el
mismo intervalo de tiempo
• sucesos simultáneos:
^aquellos que se producen en el mismo instante de tiempo
• sucesos solapados:
4los que se producen en intervalos de tiempo
superpuestos
^^S^ Introducción al Procesamiento Paralelo
"^¡S^ 1. Concepto de paralelismo

1.1. Nivel de aplicación software


^Q¡^ Introducción al Procesamiento Paralelo
1. Concepto de paralelismo

1.2. Granularidad, planificación y comunicación


4 granularidad: tamaño de la tarea computable 4 planificación:
asignación de recursos a las tareas 4 comunicación:
sincronización de tareas dependientes
aumento de la carga en programa o
comunicación trabajo
( j ob)
y
planificación Paralelismo de grano grueso

Explotado por el diseñador del algoritmo o por el programador


módulo proceso

Paralelismo de y grano medio


función rutina tarea (task) Explotado por el programador con ayuda del compilador

Paralelismo de grano fino


Explotado por el compilador o por el hardware

mayor grado de T paralelismo


^^^^ Introducción al Procesamiento Paralelo
^^Q» 1. Concepto de paralelismo

1.3. Niveles de implementación: realización hardware

nivel técnicas de
implementación
paralelismo a nivel - segmentación
de procesador - división funcional
- procesadores vectoriales
estru paralelismo en - memoria compartida
ctura multiprocesadores - memoria distribuida
s
paral
elas
paralelismo en - clusters
multicomputadores
0 - sistemas distribuidos
^^S^ Introducción al Procesamiento Paralelo
í^5^ 2. Necesidad del paralelismo

2.9. Limitación en la velocidad de conmutación


^existe una limitación física dada por la velocidad de transmisión en
el silicio (3- 107 m/s). Sea una pastilla de 1 cm de lado. Para una
operación en serie, máxima potencia de cálculo es: 3. 10- ops/s= 3
GFLOP
2.10. Capacidad de integración restringida
^existe un límite en la capacidad de integración de transistores en
una oblea de silicio y por tanto en la "inteligencia" de un circuito
^^S^ Introducción al Procesamiento Paralelo
í^5^ 2. Necesidad del paralelismo
^^S^ Introducción al Procesamiento Paralelo
í^5^ 2. Necesidad del paralelismo

• Procesamiento de datos generados por un


4 elproyecto SETI@home busca vida extraterrestre a través de la radioastronomía.
Utiliza el mayor radiotelescopio del mundo, el Observatorio de A recibo en Puerto
Rico, con un diámetro de 300 m. Este telescopio escanea todo el cielo visible cada
6 meses

4 las señales significativas son almacenadas (35Gbyte cada día)


4 trabaja
con un cluster de procesadores en paralelo formado por todos los
computadores conectados a Internet
los datos se dividen en partes de 0.25MBytes y se distribuyen por todo el
mundo. El software de análisis se prepara como si fuera un salvapantallas
Introducción al Procesamiento Paralelo
2. Necesidad del paralelismo

100 MFLOPS 1 SFLOPS 10 GFLOP5100 SFLOP5 1 TFLOPS

Computational Performance Requirements


^^gg^ Introducción al Procesamiento Paralelo
«5¡J5§& 3. Historia de la computación
3.1. Primera generación (1945-1954)
4 tecnología y arquitectura
4 válvulas de vacío y memoria a base de relés; la interconexión estaba realizada por cables
(programa)
4 una única CPU con contador de programa y acumulador; sólo realizaban operaciones en
coma fija
4 software y aplicaciones
4 el lenguaje de programación es el ensamblador o el lenguaje máquina, permiten un único
usuario,las operaciones en memoria y entrada salida se realizan a través CPU
4 máquinas representativas
4 ENIAC (Electronic Numerical Integrator and Calculator)
4 John Von Neumann ayudo a definir un computador de programa almacenado EDVAC 4
EDSAC (Electronic Delay Storage Automatic Calculator)
4 el primer computador comercial fue el UNIVAC I en 1951 del que se construyeron 48 sistemas
4 IBM lanza su primer computador IBM 701 en 1952
Introducción al Procesamiento Paralelo
3. Historia de la computación

3.2. Segunda generación (1955-1964)


4 tecnología y arquitectura
4 transistores, la memoria es de núcleos de ferrita y los circuitos
están implementados en placas de circuito impreso
4 operan en punto flotante
4 disponen de procesadores específicos de entrada salida 4 se
introducen los accesos multiplexados a memoria
4 software y aplicaciones
4aparecen los lenguajes de alto nivel como FORTRAN, Algol,
COBOL
4 máquinas representativas 4
IBM 7030 en 1962
4 LARC de Univac (Livermore Atomic Research Computer) en 1959
4 CDC 1604 en 1960
^^S^ Introducción al Procesamiento Paralelo
í^5^ 3. Historia de la computación

3.3. Tercera generación (1965-1974)


4 tecnología y arquitectura
4 circuitos integrados de media y alta escala de integración
montados sobre circuitos integrados multicapa
4se comienza a usar la microprogramación, los pipe-line y la
memoria cache

4 software y aplicaciones
4 aparecen los sistemas operativos de tiempo compartido

4 máquinas representativas 4 IBM


360/370 4 CDC 6600/7600 4 TI-
ASC de Texas Instrument 4 PDP
8 de Digital
Introducción al Procesamiento Paralelo
3. Historia de la computación

3.4. Cuarta generación (1975-1990)


4 tecnología y arquitectura
4 se usan circuitos integrados de alta y muy alta escala de
integración (VSI/LVSI). Las memorias utilizadas son memorias de
semiconductor. Se introduce el paralelismo tanto intrínseco
(computadores vectoriales), como extrínseco (multiprocesadores).
4 software y aplicaciones
4 sistemas operativos multiprocesador y se desarrollan entornos y
compiladores para el procesamiento paralelo

4 máquinas representativas
4 VAX 9000 de Digital 4
CRAY X-MP 4 IBM 3090 4
BBN TC 2000
^^S^ Introducción al Procesamiento Paralelo
í^5^ 3. Historia de la computación

3.5. Quinta generación (1991-...)


4 tecnología y arquitectura
4circuitos integrados de ultra alta escala (ULSIA/HSIC) y
tendencia al desarrollo de arquitecturas escalables
4 software y aplicaciones
4 desarrollo de aplicaciones para procesamiento paralelo y
masivamente paralelo

4 máquinas representativas
4 VPP 500 de Fujitsu 4
CRAYMMP 4 Intel Paragon 4
Earth Simulator 4 MareNostrum

*Blue Gene
Introducción al
Procesamiento Paralelo
«^3^ 3. Historia
de la computación

The Blue Gene Project

In December 1999, IBM Research


announced a 5 year, $100M US,
effort to build a petaflop scale
supercomputer to attack problems
such as protein folding.
The Blue Gene project has two primary
goals:
* Advance the state of the art of
biomolecular simulation.
► Advance the
Introducción al
Procesamiento Paralelo
«^3^ 3. Historia
de la computación
state of the art in computer
design and software for
extremely large scale
systems.
^^S^ Introducción al Procesamiento Paralelo
,^S ¡^ 3. Historia de la computación
Introducción al Procesamiento Paralelo
3. Historia de la computación
^^^^ Introducción al Procesamiento Paralelo
3. Historia de la computación
IBM BlueGene\L at LLNL
En la actualidad dispone 65.536 procesadores (el proyecto final
es de 131.072).
Se distribuyen en nodos sin disco duro formados por 2
procesadores.
Cada procesador posee 256MB RAM. Dispone de nodos
adicionales (1.024) destinados a I/O. Potencia máxima 134
TFLOPS (el proyecto final prevee una potencia de 1 PFLOPS)
Red de interconexión 3-D torus, y Gigabit Ethernet.
Introducción al Procesamiento Paralelo
3. Historia de la computación
MareNostrum en BSC
Dispone de 4.564 procesadores IBM PowerPC, y memoria de 9
Tbytes.
Es el único supercomputador de proposito general del mundo.
Su sistema operativo es Linux.
Potencia máxima 27.8 TFLOPS
Red de interconexión Myrinet.
^^S^ Introducción al Procesamiento Paralelo
,^S ¡^ 3. Historia de la computación

HARDWARE SOFTWARE
^^S^ Introducción al Procesamiento Paralelo
í^5^ 3. Historia de la computación

Problemas de escalabilidad

• ¿Cómo se pueden usar eficientemente más de 100.000


procesadores?
• Todos los algoritmos actuales no "escalan" correctamente en
sistemas formados por más de 10.000 procesadores (elevada
comunicación entre procesadores).
• La próxima generación de supercomputadores en la escala
de PFLOPS será completamente inútil ya que el rendimiento
caerá drásticamente.
^^S^ Introducción al Procesamiento Paralelo
3. Historia de la computación

Tolerancia a fallos

• ¿Cómo sobrevivir en un computador formado por 100.000


procesadores?
• El porcentaje de fallos crece con el tamaño del sistema.
• El tiempo medio entre fallos puede ser de unas pocas horas
o unos pocos minutos.
• La solución actual a estos problemas se basa en
mecanismos de checkpoint/restart.
• Chequear 100,000 procesadores almacenando información
en un servidor continuamente no resulta eficiente.
^^S^ Introducción al Procesamiento Paralelo
,^S ¡^ 3. Historia de la computación

3.8. The new generation (1984- ??!!)

^Computación cuántica
^^S^ Introducción al Procesamiento
Paralelo
í^5^ 3. Historia de la
computación
3.8. The new generation (1984- ??!!)

^Computación cuántica
El modelo "clásico" tiene problemas.
En 1984 R.P. Feynman: "Es imposible
simular un sistema cuántico con una
máquina de Turing".
Existen también problemas clásicos que
no pueden ser resueltos en tiempo
"razonable" (polinómico): Factorización
(problema NP-completo)
^^gg^ Introducción al Procesamiento Paralelo
«^¡¡^ 3. Historia de la computación

3.8. The new generation (1984- ??!!)

^Computación cuántica
• La minituarización llevará inevitablemente a utilizar sistemas que
funcionan con un único electrón.
Introducción al Procesamiento Paralelo
4. El rendimiento

4.1. La ley de Amdahl (¿Cuánto más rápido puede


ejecutarse un programa en paralelo? )
4 "una mejora significativa de rendimiento sólo se consigue
si se acelera el caso común"
4 aceleración (speed-up) que se define como la relación
entre tiempo empleado en procesar en serie y tiempo en
paralelo. W + W,
W
n W

W
Wl + n
+

4 Sea F fracción de cálculo en serie, máximo


speedup: 1/(F+(1-Fpon). Si F=10%, speedup max=10
x x tiempo ' » I I tiempo
de ejecución w n

w
w n w w
w
n
Introducción al Procesamiento Paralelo
4. El rendimiento

w w
no de procesadores 1 2 3 45 no de procesadores
^^^^ Introducción al Procesamiento Paralelo
^» 4. El rendimiento

4.2. Factores que influyen en el rendimiento

T = Ic x CPI x r
4Ic (n° de instrucciones del programa o recuento) 4CPI (ciclos
por instrucción) 4r (ciclo de reloj)

T = Ic x (p + m x k) x r
4p indica el número de ciclos del procesador para
decodificación y ejecución de la instrucción
4m nos indica el número de referencias a memoria
4k nos da la relación en ciclos que existe entre las
operaciones de acceso a memoria y operaciones del
procesador
^^^g^ss Introducción al Procesamiento Paralelo
""^§3* 4. El rendimiento
^^^^ Introducción al Procesamiento Paralelo
^» 4. El rendimiento

4.3. Rendimiento y productividad (continuación)


Algunas expresiones analíticas:
4 rendimiento expresado en millones de instrucciones por
unidad de tiempo
Ic Ic /
_________c MIP _________c__________ __
S Tx 10
6 L xCPI xr x 106 CPIx 106

* si C es el número de ciclos total del programa

C
CPI
Ic

MIPS fxI
6
C x 10
^^^g^ss Introducción al Procesamiento Paralelo
""^§3* 4. El rendimiento

4.3. Rendimiento y productividad (continuación)

* la productividad (throughput) da idea del número de


programas que el sistema puede ejecutar por unidad de
tiempo

Jjr 1 MIPS x 106 /


W p =- = =
T
-
J
^^^^ Introducción al Procesamiento Paralelo
^» 4. El rendimiento

4.3. Rendimiento y productividad (continuación)

4 el rendimiento también se puede expresar en millones de


operaciones en coma flotante por unidad de tiempo
(MFLOPS)

4 sólo cuenta las operaciones de coma flotante olvidando las


demás

4 tiene sentido en máquinas dedicadas al cálculo


matemático intensivo
^^^^ Introducción al Procesamiento Paralelo
^» 4. El rendimiento

4.3. Rendimiento y productividad


4rendimiento teórico o de pico: es el máximo rendimiento
que se puede alcanzar con el computador suponiendo que
somos capaces de suministrarle las instrucciones y datos
necesarios para conseguirlos
4rendimiento real: es el que se obtiene en un programa
determinado
4rendimiento sostenido: es el más indicativo. Representa la
media de rendimiento para diversas tareas. Se suele utilizar
un conjunto de programas de benchmark para calcularlo
^^S^ Introducción al
Procesamiento Paralelo
í^Sl^ 5.
Clasificación de sistemas
paralelos
Sugerencia de clasificación:

computadores
^^S^ Introducción al Procesamiento Paralelo
í^Sl^ 5. Clasificación de sistemas paralelos

• flujo de control:
4las instrucciones se van ejecutando según el orden en el
que se encuentran en memoria
• flujo de datos:
4el flujo de ejecución es conducido por los datos: una
instrucción será ejecutada cuando los operandos estén
disponibles
• reducción:
4la ejecución se realiza por demanda: una instrucción será
ejecutada cuando otra necesite sus resultados
4son una clase de las de flujo de datos
^^S^ Introducción al Procesamiento Paralelo
í^Sl^ 5. Clasificación de sistemas paralelos

Taxonomía de Flynn:
^^S^ Introducción al Procesamiento Paralelo
í^Sl^ 5. Clasificación de sistemas paralelos

5.1. Tipos de paralelismo


4 paralelismo implícito: se programa en lenguaje secuencial y
el compilador se encarga de paralelizar y asignar recursos
4pequeño aprovechamiento (depende de la inteligencia del
compilador)
4el trabajo del programador es fácil
4aprovecha todo el código secuencial existente

4 paralelismo explícito: se usan dialectos paralelos de


programación
4mejor aprovechamiento de las posibilidades paralelas de la
máquina
4más trabajo para el programador
^^S^ Introducción al Procesamiento
Paralelo
«5¡^ 5. Clasificación de sistemas

paralelos

5.1. Tipos de paralelismo (continuación)


^^S^ Introducción al Procesamiento Paralelo
í^(¡S^ 6. Paralelismo en sistemas monoprocesador

.1. División funcional


número de
procesador unidades unidades funcionales
funcionales
CDC-6600 10 1 suma 2 incremento 1 lógica
1 suma entera 1 desplazamiento 1
2 multiplicación 1 bifurcación
división
IBM 360/91 2 1 ALU de coma fija
1 ALU de coma flotante (dividida en suma-resta y
multiplicación-división )
Pentium Pro 6 1 interface de memoria
2 generación de direcciones 2
enteros
1 coma flotante
Nx686 4 1 generación de direcciones
2 enteros
1 coma flotante
MIPS R10.000 4 2 enteros
2 coma flotante
Alpha 21064 4 2 enteros
2 coma flotante
PowerPC620 3 1 carga/almacenamiento
1 enteros
1 coma flotante
^^S^ Introducción al Procesamiento Paralelo
í^(¡S^ 6. Paralelismo en sistemas monoprocesador

.2. Segmentación

4 consiste en el fraccionamiento de las fases de


realización de una función de modo que cada una de las
subfunciones resultantes se ejecuta en un tiempo
notablemente más corto que toda la función y permite el
solapamiento, en diferentes fases, del procesamiento
^^S^ Introducción al Procesamiento Paralelo
í^(¡S^ 6. Paralelismo en sistemas monoprocesador

.3. Procesadores vectoriales


4es un tipo especial de SEGMENTACIÓN adaptada al
procesamiento de vectores
Asuele utilizarse en cálculo matemático o en bucles desenrollados
^genera un deficiente aprovechamiento de recursos en
computación escalar

REGISTROS VECTORIALES
UNIDAD CAUCE VECTORIAL

DE
CONTROL CAUCE ESCALAR REGISTROS ESCALARES E/S

BANCOS DE REGISTROS
^^S^ Introducción al Procesamiento Paralelo
í^(¡S^ 6. Paralelismo en sistemas monoprocesador

.4. Computadores matriciales


^procesan cada componente sobre una unidad funcional
independiente
4son máquinas SIMD

UNIDAD DE U.F. U.F.


CONTROL
MEMORIA E/S
^^S^ Introducción al Procesamiento Paralelo
í^(¡3^ 7. Estructuras paralelas

7.2. Sistemas multiprocesadores 4


memoria compartida

cach?

ES
^^S^ Introducción al Procesamiento Paralelo
í^(¡3l^ 7. Estructuras paralelas

7.2. Sistemas multiprocesadores (continuación) 4


memoria distribuida

UDNIDAUDNIDA UNIDAD
UNIDAD
DE "1 D ~
CONTROL
UNIDAD DE
C
DE DE
ONTC ONLTCRONLTROL DE 1
R CONTROL
COMA
U NIDA UNIDAD DE UNIDAD DE
FLOTANTE UD
caché COMA
ACOMACOMA FLOTANTE
MEMORIA E/S
F OTAF NOTTEAFLNOTTEANT caché
E MEMORIA E/S
écachécaché
ME MOM MEMORIA E/S
REI

III
Introducción al Procesamiento Paralelo
7. Estructuras paralelas

7.2. Sistemas multiprocesadores (continuación)


4 la topología de la red de interconexión influye
decisivamente en la sincronización de las tareas
^Q¡^ Introducción al Procesamiento Paralelo
7. Estructuras paralelas 4

7.2.1. Rendimiento de los sistemas multiprocesadores


ganancia de velocidad

1024 512 256 128 64 32 16 8 4

2
^^S^ Introducción al Procesamiento Paralelo
'^QBS» 8. Máquinas de flujo de datos

4 la ejecución está gobernada por un grafo de


dependencias
4 los datos se representan por símbolos
4 la disponibilidad de los operandos permite la ejecución de
las operaciones a=(b+1)*(b-c)

Potrebbero piacerti anche