Introduccion a la Programacion Paralela y sus taxonomias

MarcosMamaniLaqui 0 views 45 slides Sep 15, 2025
Slide 1
Slide 1 of 45
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45

About This Presentation

Introduccion a la Programacion Paralela, las taxonomicas o clasficiaciones que existen dentro del mismo.


Slide Content

Programación Concurrente y Paralela
Otoño 2022
NRC: 60898
Introducción
Taxonomía
Paradigmas
Diseño y Comportamiento

Introducción:
Objetivodelparalelismo:Conseguirejecutarunprograma
inicialmentesecuencialenmenostiempoutilizandoparaello
variosprocesadores.
Idea:Dividirunproblemagrandeenvariosmáspequeñosy
repartirlosentrelosprocesadoresdisponibles.
Problemas:Estrategiadediseñoadecuada,elementosno
paralelizables,repartodetrabajoentrelosprocesadores.
Programación Paralela

Programación Paralela
Introducción:
Tiempo en
paralelo
Tiempo en
Secuencial
1 procesador
4 procesadores
tiempo
EsquemaIdealdelaparalelización
Suponiendoquetodoslosprocesadoresllevanacaboelmismo
tipoynúmerodeoperaciones,eltiempodeejecucióndeun
programaparalelosería:t/ncont=tiempodeejecución
secuencialyn=númerodeprocesadoresdisponibles

Introducción:
EsquemaREALdelaparalelización
Existendependenciassecuencialesentrelasvariablesdel
programa,portantolaunidaddeparalelizaciónsonlas
entidadesqueencapsulaninstruccionesynolasinstrucciones
porsímismas.
Tiempo en
paralelo
Tiempo en
Secuencial
1 procesador
4 procesadores
tiempo
Programación Paralela

Introducción:
FactorSpeedUpoAceleración:
•Esunamedidacomparativadelrendimientodeunsistema
multiprocesadorrespectodeunsistemamonoprocesador.
•Midequétanefectivaeslaparalelizacióndeunprogramafrente
asuversiónsecuencial.
Programación Paralela

Introducción:
FactorSpeedUpoAceleración:
•Tsec:Tiempodeejecucióndelprogramasecuencial
•Tpar:Tiempodeejecucióndelprogramaparalelo
Programación Paralela
SpeedUp=
T
sec
T
par

Introducción:
FactorSpeedUpoAceleración:
CONSIDERACIONES:
1.Sedebeutilizarelmejoralgoritmosecuencialconocido(del
problemaaresolver).
2.Deberáserportantoelalgoritmosecuencialmásrápidoque
puedaejecutarseenunsoloprocesador.
3.Elalgoritmoutilizadoparalaprogramaciónparalelasueleser
diferente.
Programación Paralela
SpeedUp=
T
sec
T
par

Introducción:
EjemplodeSpeedUp:
Suposiciones:
•Setienen4procesadoresparalaejecuciónparaleladela
aplicación
•Tpar=3hrs.
•Tsec=8hrs.
Programación Paralela
SpeedUp=
8hrs
3hrs
=
2.66
hrs
SpeedUpIdeal=4hrs

Introducción:
EjemplodeSpeedUp:
¿Quétanrealista(bueno)esesteSpeedUp?
Consideraciones:
1.Tiempoutilizadoenparalelizarelprograma
2.Calidaddelcódigofuente
3.Naturalezadelalgoritmoimplementado
4.Porcióndecódigointrínsecamentesecuencial(quétan
paralelizableeselalgoritmo)
SpeedUp=
8hrs
3hrs
=
2.66
hrs
Programación Paralela

Introducción:
EjemplodeSpeedUp:
¿Quétanrealista(bueno)esesteSpeedUp?
RESPUESTA:ElmáximospeedUpquesepuedealcanzarconla
implementaciónparaleladeundeterminadoalgoritmovienedada
porlallamadaLeydeAmdahl.
SpeedUp=
8hrs
3hrs
=
2.66
hrs
Programación Paralela

Ley de Amdahl:
EslacotasuperioralSpeedUpquecomomáximopuedealcanzar
unprogramaejecutándoseenparalelo,suponiendoqueentodo
programahayunafraccióndecódigoquenosepuedeparalelizar
Programación Paralela
Seaf=fraccióndelcómputoquenopuedeserdivididaentareas
concurrentes
Seap=elnúmerodeprocesadores
S(p)=elfactordespeedUpmáximodadoporlaleydeAmdahly
sedefinecomo:

Ley de Amdahl:
Programación Paralela
S(p)=
p
1+(p-1)f
f+[(1-f)/p]
S(p)=
1

Ley de Amdahl:
Ejemplo:Setieneunprogramaconunafraccióndecódigo
paraleloequivalenteaun75%ylaaplicaciónseejecutautilizando
4procesadores
Seaf=0.25
Seap=4
Programación Paralela
S(4)=
4
1+(4-1)0.25
= 2.28

Ley de Amdahl:
Ejemplo:Setieneunprogramaconunafraccióndecódigo
paraleloequivalenteaun75%ylaaplicaciónseejecutautilizando
4procesadores
Seaf=0.25
Seap=4
Programación Paralela
= 2.28
0.25+[(1-0.25)/4]
S(4)=
1
SpeedUp<= S(p)

Ley de Amdahl:
Programación ParalelaLey de Amdahl
0
2
4
6
8
10
12
14
16
18
20
4 8 12 16 20
Número de procesadores P
Factor de cota superior de
SpeedUp S(P)
f=0
f=0.05
f=0.10
f=0.20

Ley de Amdahl:
LacotasuperiordelSpeedUpmejoraamedidaqueseaumentael
númerodeprocesadores
Conunnúmeroinfinitodeprocesadores,elmáximospeedUpque
sepuedealcanzarestalimitadopor1/f
Programación Paralela
limS(p)
p →
=
1
f

Ciclos por instrucción (CPI):
Esunamedidautilizadaparareflejarlacalidaddeusodel
procesadorporpartedeunprograma
Programación Paralela
# instrucciones
CPI=
# ciclos
Siporcadacicloseejecutaunainstrucción,elCPI=1locualse
considerabueno
Losprocesadoressuperescalaresejecutanmásdeunainstrucción
deunprogramaporciclo,esdecir,0<CPI<=1

TAXONOMÍA:
Losmultiprocesadoresseclasificandeformagenéricaen:
-MultiprocesadoresdeMemoriaCompartida
-MultiprocesadoresdeMemoriaDistribuida
-MultiprocesadoresdeMemoriaCompartidaDistribuida
Programación Paralela

CPU Memoria CPU Memoria
RED DE INTERCONEXION
CPU Memoria CPU Memoria
TAXONOMÍA:
MultiprocesadoresdeMemoriaDistribuida:Computadoradonde
lamemoriadelsistemaestadistribuidaentretodoslos
procesadoresdelsistema,usandodelpasodemensajesparala
comunicaciónentrelosprocesadores
Programación Paralela

Memoria
CPU CPU
RED DE INTERCONEXION
CPU CPU
Mem
CPU CPU
RED DE INTERCONEXION
CPU CPU
Mem Mem Mem
Fig. I.5. (a) Modelo NUMA Fig. I.5. (b) Modelo UMA
TAXONOMÍA:
MultiprocesadoresdeMemoriaCompartida:Multicomputadoras
dondetodoslosprocesadoresaccedenatodalamemoria.Silos
procesadoresaccedenalamemoriaenuntiempouniforme,
entoncessetieneelmodeloNUMA,delocontrario,estaremos
conunmodeloUMA.
Programación Paralela

Memoria
Switch local
I/O
CPU CPU
Nodo
Memoria
Switch local
I/O
CPU CPU
Nodo
RED DE INTERCONEXION GLOBAL
TAXONOMÍA:
MultiprocesadoresdeMemoriaCompartidaDistribuida:
Computadoradondelamemoriaestafísicamenterepartidaentre
losnodosdelsistemacompuestopor2procesadoresc/uysolo
hayunespaciodedireccionesytodoslosprocesadoresaccedena
todalamemoria.
Programación Paralela

Clasificaciónde Michael Flynn:
Programación Paralela
MIMD
SIMD
Mybrid
MISD
Multiprocesadores
Procesadores de Arrays
Procesadores de Vector Pipeline
Procesadores de Vector Pipeline
Arrays Sistólicos
Máquinas SIMD-MIMD
Máquinas MIMD-SIMD
Multicomputadores
Máquinas de flujos de datos

Arquitectura SISD(Simple InstructionStream, Simple Data
Stream):
Programación Paralela
Procesador
Instrucciones
Datosde
Entrada
Datosde
Salida
La ArquitecturaSISD

Arquitectura SISD(Simple InstructionStream, Simple Data
Stream):
Programación Paralela
1.SebasaenelmodelodeVon-Neumman
2.CuentaconunCPUqueejecutaunainstrucciónalaveze
instancíaunitemdedatosalavez
3.Utilizaunregistrosimplellamadocontadordeprograma(CP)
parallevarelconteoserialdelasinstrucciones
4.Lasinstruccionessonejecutadasatravésdelciclo-fetchdela
máquinaenordenserial

Arquitectura SISD(Simple InstructionStream, Simple Data
Stream):
Programación Paralela

Arquitectura SIMD(Simple InstructionStream, MultipleData
Stream):
Programación Paralela
Flujo de
Instrucción
Procesador
A
Flujo de
Entrada de
Datos A
Flujo de Salida de
Datos A
Flujo de
Entrada de
Datos B
Flujo de
Entrada de
Datos C
Procesador
B
Procesador
C
Flujo de Salida de
Datos B
Flujo de Salida de
Datos C
La Arquitectura SIMD

Arquitectura SIMD(Simple InstructionStream, MultipleData
Stream):
Programación Paralela
1.TodoslosCPUsrecibenlamismainstrucciónaejecutarpor
partedelaCUperooperancondistintosconjuntosdedatos.
2.Distribuyenelprocesamientosobrehardwaregrande
3.Operanconcurrentementeconmuchosdatosdistintos
4.Realizanelmismocálculoentodosloselementosdedatos

Arquitectura SIMD:
Programación Paralela
MasParMP-1ILLIAC-IV

Arquitectura MISD(MultipleInstructionStream, SingleData
Stream):
Programación Paralela
Flujo de
Instrucciones A
Procesador
A
Flujo de
Entrada de
Datos
Procesador
B
Procesador
C
Flujo de
Salida de
Datos B
La Arquitectura MISD
Flujo de
Instrucciones B
Flujo de
Instrucciones C

Arquitectura MISD(MultipleInstructionStream, SingleData
Stream):
Programación Paralela
1.Arquitecturadecomputadoraqueejecutavariosprogramas
distintosparaelmismoconjuntodedatos
2.Sepuedentenercomputadorasquerequierendedistintas
unidadesdeprocesamientoquerecibendistintasinstrucciones
paraoperarsobrelosmismosdatos
3.Sepuedentenercomputadorastalesqueelflujodedatos
circulasobreunaseriedeelementosdeprocesamiento
4.Ejemplodeellosonlosarraysistólicosopipeline(cauces)

Arquitectura MISD:
Programación Paralela
NECNehalemCluster

Arquitectura MIMD(MultipleInstructionStream, MultipleData
Stream):
Programación Paralela
Flujo de
Instrucciones A
Procesador
A
Flujo de
Entrada de
Datos A
Procesador
B
Procesador
C
Flujo de
Salida de
Datos B
La Arquitectura MIMD
Flujo de
Instrucciones B
Flujo de
Instrucciones C
Flujo de
Entrada de
Datos B
Flujo de
Entrada de
Datos C
Flujo de
Salida de
Datos A
Flujo de
Salida de
Datos C

Arquitectura MIMD(MultipleInstructionStream, MultipleData
Stream):
Programación Paralela
1.Sonsistemasmultiprocesadoresomulticomputadorasdonde
cadaprocesadortienesuunidaddecontrolyejecutasu
propioprograma
2.Distribuyenelprocesamientosobreprocesadores
independientes
3.Compartenflujosorecursosentreprocesadores
4.Sonarquitecturasutilizadasparaparalelismodegranofinoy
obtenerasímáseficiencia

Arquitectura MIMD:
Programación Paralela

Memoria
del sistema
A
Procesador
A
Procesador
B
Procesador
C
Bus de
memoria
Bus de
memoria
Bus de
memoria
MemoriadistribuidaenmáquinasMIMD
Memoria
del sistema
B
Memoria
del sistema
C
Arquitectura MIMD:
Programación Paralela

Sistema de Memoria Global
Procesador
A
Procesador
B
Procesador
C
Bus de
memoria
Bus de
memoria
Bus de
memoria
MemoriacompartidaenmáquinasMIMD
Arquitectura MIMD:
Programación Paralela

Programación Paralela
Diseño y Comportamiento:
AlgoritmosParalelos:Describencomopuederesolverseun
problemapensandoenunadeterminadaarquitecturaparalela,
medianteladivisióndelproblemaensubproblemas,comunicando
losprocesadoresydespuésuniendolassolucionesparcialespara
obtenerlasoluciónfinalysuelenbasarseenelconceptode
paradigma.
Paradigma:Esunaclasedealgoritmosqueresuelvendiferentes
problemasquetienenlamismaestructuradecontrol.
-Porejemplo:DivideyVencerás,MultiplicacióndeTuplas,
ProgramaciónDinámica,RamificaciónyPoda,etc.
-CaendentrodeláreadeTeoríadealgoritmosparalelos

Programación Paralela
Patrones de Comunicación Paralela:
LosParadigmasdefinenunametodologíadeprogramacióndentro
delaCienciaComputacionalaplicandounprocesodederivación
informalparasuprogramaciónendondeseidentificaunpatrón
decomunicaciónparalelaparalainteracciónentrelosprocesos.
Patronesdecomunicaciónparalela:
-Farmsogranjas
-PipelinesoCauces
-Treesoárboles
-Cubos
-Hipercubos
-Matricesomallas

Programación Paralela
Diseño y Comportamiento:
FarmsoGranjas:Formadasde
unconjuntodeprocesos
trabajadoresyunproceso
controlador.Lostrabajadores
seejecutanenparalelohasta
alcanzarunobjetivocomúny
elcontroladordistribuyeel
trabajoycontrolaelprogreso
delcómputoglobal.
Proceso
Trabajador
Farmcon un proceso controlador y 5 procesos trabajadores
Proceso
Trabajador
Proceso
Trabajador
Proceso
Trabajador
Proceso
Trabajador
Proceso
Controlador
Patronesdecomunicaciónparalela:

Programación Paralela
Diseño y Comportamiento:
PipelinesoCauces:Estacompuestoporunconjuntodeprocesos(llamados
stages,etapasoestados)conectados,unodetrásdeotroydondela
informaciónsigueunflujoocaucedeunoaotrostage
Patronesdecomunicaciónparalela:
P0 P1 P2

Programación Paralela
Diseño y Comportamiento:
TreesoÁrboles:Hace
quelainformaciónfluya
desdeelprocesoraíz
hacialosprocesoshojas
oviceversa,ejecutándose
enparalelolosnodosque
seencuentranenel
mismoniveldelárbol
Patronesdecomunicaciónparalela:
P0
P1 P2
P3 P4 P5 P6
P7 P8 P9 P1
0
P11 P12 P13 P14

Programación Paralela
Diseño y Comportamiento:
Cubos o Hipercubos:
Conjuntodeprocesos
interconectadosentresí
formandouncubon-
dimensionalporejemplo,dos
cubos,cadaunocon8nodos
dondecadanodosesta
formadopordosprocesos,
conectadosasuvezconotros
nodosformandoaristas.
Patronesdecomunicaciónparalela:

Programación Paralela
Diseño y Comportamiento:
MatricesoMallas:En
unamallacadaproceso
estaconectadoconsus
vecinosy todos
contribuyenentresípara
resolverencomúnun
problema,ejecutándose
enparalelo.
Patronesdecomunicaciónparalela:

Programación Paralela
Diseño y Comportamiento:
Metodologíaparadefinirunparadigma:
1.Identificarelcomportamientoparalelo(patróndecomunicación
entreprocesos)delaaplicaciónendesarrollo.
2.Elaborarunbosquejográficodesurepresentación.
3.Realizarunadefiniciónsintácticay/osemántica
4.Traducirdichadefiniciónaunprogramaenelentornode
programaciónmásadecuadoparasuimplementación
5.Verificarquelasemánticaresultantesealacorrectaprobandocon
variosejemplosdistintosdemostrandosugenericidad
6.Observarelrendimientodelasaplicaciones

Programación Paralela
Diseño y Comportamiento:
Metodologíaparadefinirunparadigma: