Académique Documents
Professionnel Documents
Culture Documents
Tiempo secuencial
El tiempo de ejecucin de un programa secuencial dependede:
tamaodelaentrada, compilador, mquina, programador,...,
sinosolvidamosdevaloresconstantesdependientesdel sistema(porejemploelcostedeunaoperacinaritmtica enlamquinadondeejecutamoselprograma)podemos considerareltiempofuncindeltamaodelaentrada: t(n). El tiempo desde que empieza la ejecucin del programa hastaqueacaba.
Computacin2 3 Comunicacin2 1
t(n,p)=ta(n,p)+tc(n,p)=7(sisehaceporseparado) treal(n,p)=ta(n,p)+tc(n,p)+toverhead(n,p)=8
t(n,p)=ta(n,p)+tc(n,p)=15 treal(n,p)=ta(n,p)+tc(n,p)tsolapamiento(n,p)=14
Tiempo de ejecucin
Overheaddebidoa: sincronizacin, puestaenmarchadelosprocesos, sobrecargadelareddecomunicacin, ... Sesueleconsiderar: t(n,p)=ta(n,p)+tc(n,p)+to(n,p)ts(n,p) Minimizareltiempodeoverhead. Maximizarelsolapamiento.
Secuencial:t(n)=n1
Suma de n nmeros
Paraleloconn/2procesadores,comomnimot(n)/(n/2)=2
EncadaPi,i=0,1,...,n/21 inicio=2*i desplazamiento=1 activo=true parak=1,2,...,logn siactivo a[inicio]=a[inicio]+a[inicio+desplazamiento] desplazamiento=desplazamiento*2 finsi siimoddesplazamiento<>0 activo=false finsi finpara
Suma de n nmeros
Pasos:logn Trabajoadicional(overhead):
Comprobacindesielprocesadortrabaja, Usodelasvariables, Actualizacindelasvariables.
Cadaprocesadortienedosvalores,ayb
EncadaPi,i=0,1,...,n/21 desplazamiento=1 activo=true parak=1,2,...,logn1 siactivo a=a+b desplazamiento=desplazamiento*2 siimoddesplazamiento<>0 activo=false enviaraaidesplazamiento/2 enotrocaso recibirenbdei+desplazamiento/2 finsi finsi finpara sii=0 a=a+b finsi
P0 01 P2 45
P1 23 P3 67
P0 11 P2 95
P1 53 P3 137
P0 15 P2 913
P1 53 P3 137
P0 65 P2 2213
P1 53 P3 137
P0 622 P2 2213
P1 53 P3 137
P0 2822 P2 2213
P1 53 P3 137
Pasos:logn
Trabajoadicional(overhead):
Coste de comunicaciones
Sondelossiguientesrdenes: Comunicacinvecinos Comunicacintodos hipercubo logp/2 logp/2 malla 2*p logp/2 anillo p1 logp/2 red p1 Adems,laredpuedeestarcongestionadaalhaber muchosmensajesporhabermuchosprocesadores. Problemas:
Problemadepococosteynoapropiadopararesolveren paralelo, granularidadpequea,slocomoayudaparadisearun programaperonocomoprogramafinal.
Cdigosecuencial:
Tiempodecreacindeprocesos:
Comunicaciones:
Enmemoriadistribuida,estiempoadicionalalaritmtico. Puedenimplicartrabajodeprocesadoresintermedios.
Tiempodesincronizacin:
Granularidad de la computacin
Usodemuchosprocesadoresnoesrealista:
Nodispondremosdetantosprocesadores. Aunquedispongamosdeelloshaycadadelasprestaciones.
Interesaprogramacinparalelacuandoelparalelismoes degranogrueso.
EncadaPi,i=0,1,...,p1 suma=0 paraj=i*n/p,...,(i+1)*n/p1 suma=suma+a[j] finpara sincronizacin a[i]=suma inicio=i*2 desplazamiento=1 siimod2=0 activo=true enotrocaso activo=false finsi parak=1,2,...,logp1 siactivo a[inicio]=a[inicio]+a[inicio+desplazamiento] desplazamiento=desplazamiento*2 finsi siimoddesplazamiento<>0 activo=false finsi finpara
EncadaPi,i=0,1,...,p1 suma=0 paraj=0,...,n/p1 suma=suma+a[j] finpara siimod2=0 recibirenbdei+1 activo=true enotrocaso enviarsumaai1 activo=false finsi desplazamiento=2 parak=1,2,...,logp2 siactivo suma=suma+b desplazamiento=desplazamiento*2 siimoddesplazamiento<>0 activo=false enviarsumaaidesplazamiento/2 enotrocaso recibirenbdei+desplazamiento/2 finsi finsi finpara sii=0 suma=suma+b finsi
Speed-up
S(n,p)=t(n)/t(n,p) Qut(n)? Eldelmejoralgoritmosecuencialqueresuelveel problema,peroculeselmejoralgoritmosecuencial? dependedeltamaodelaentrada,distribucindelosdatos, mquina,...,ypuedenoconocerse. Eldelmejoralgoritmosecuencialconocido.Perodepende delosmismosparmetrosanteriores. Tiempodeejecucinenunprocesadordelalgoritmo paralelo.Peropuedequeelmejoresquemaparaparalelizar noseabuenoensecuencial. Eltiempodeejecucindeunalgoritmosecuencial razonablementebueno.Habrqueindicarculseusa.
Speed-up
Eficiencia
2000
3000
4000
5000
Coste
5comunicaciones
Paraunsistemaparalelointeresaquelasprestacionessesigan manteniendoenciertamedidaalaumentareltamaodesistema.
Nosepuedeseguirmanteniendolasprestacionesmanteniendo eltamaodelproblemafijoyaumentandoelnmerode procesadores. Setratardemantenerlasprestacionesalaumentareltamao delsistemaperoaumentandoeltamaodelproblema.Los sistemas(fsicosolgicos)quecumplenestosedicen escalables. Laideaes,paraundeterminadoprograma,sercapacesde determinarsienelfuturo,cuandoaumenteelnmerode procesadoresyeltamaodeproblemasquesequierenresolver, seseguirnmanteniendolasprestaciones.
Escalabilidad
Funcin de isoeficiencia
Da idea de cmo debe crecer la entrada del problema enfuncindelnmerodeprocesadoresparamantenerla eficienciaconstante.
to(n,p)=p*t(n,p)t(n) t(n,p)=(to(n,p)+t(n))/p E(n,p)=t(n)/(to(n,p)+t(n)) t(n)=(E(n,p)/(1E(n,p))*to(n,p)=K*to(n,p) Para obtener cmo debe crecer n en funcin de p para mantener la eficiencia constante basta comparar el tiempo secuencialconlafuncinoverheaddelparalelo.
8 16
8 16
anillosincomunicaciones 16 directasyenred
Todosescalables.Unosmsqueotros.
Estudio experimental
Puedenconsistiren: Estudiarelprogramacompleto. Estudiar el comportamiento en los distintos procesadores:balanceodelacarga?sincronizacin?... Dividir el programa en partes para estudiarlas por separado.