Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ParteII:IntroduccinalParalelismo
FIM2008/9
VicenteMartn v0.1a
Temario
IdeasGeneralesSobreParalelismo. HerramientasdeProgramacinParalela.
ArquitecturasParalelas
Variosprocesadorescooperansimultneamente enlaejecucindeunproceso.
Arquitecturas:Taxonoma
Muchasclasificaciones.Unadelasmstpicasesla deFlynn:
Clasificacinsegnelnmerodeflujosde datos/instrucciones.
Ejemplo:ccNUMA
SiliconGraphicsOrigin2000:Cadaplaca contienedosprocesadoresquecompartenuna memoriajerarquizadalocal.Lascachesdetodos losprocesadoressemantienencoherentes(cc). Elespacioglobaldetodalamquinaesnico. Elaccesoabancosdememoriasituados fsicamenteenprocesadoresremotossehacea travsdeunareddeinterconexin.Elpeor tiempodeaccesoalamemorialocalesde318 ns,enelpeorcasodeunamquinacon64 nodosesde1067ns.
Ejemplo:Multicomputador
RedesdeInterconexin/Topologas
Lasconexionesdelos procesadoresconlos bancosdememoriase puedenrealizarde muydiversosmodos. Siempreacabansiendo uncompromisoentre elnmerodeconexiones (coste),elanchode bandayelnmero mximodesaltos (dimetro)quese pretendeobtener/tolerar.
Steen03
MssobreTopologas
Anchuradebiseccin: nmeromnimode conexionesacortar paraobtenerdos sistemasiguales (+/unnodo). Anchodebandaen biseccin:Anchode bandaatravsdelos nodoscortadosal obtenerlaanchura debiseccin. ElnmerodeCPUsen estagrficaestareferida aunaSGIOrigin2000 (4CPUspornodo)
Ammon98
Algunosejemplos.
Ambosmultiprocesadores:Memoriacompartida
SGIOrigin2000[Laudon98] CrayT3D
AlgunasRedesTpicas.
SCI:ScalableCoherentInterface.EstndarANSI en1992.Estructuraenanillode1,2o3 dimensiones.Escapazdemantenerlacoherencia entrelascachesdelosprocesadoresqueconecta, demaneraquepodrasustituiraunbusdeun multiprocesador,aunquesuusoenclusterses slocomoconexinentrenodos.Puedeserla baseparaimplementarunamemoriacompartida virtual.320MB/spingpong,latenciasde12 microsegundos.mensajescortos.
QsNet:Quadrics.Evolucindelasredesde interconexindelasMeikoComputingSurface. UsadasdespuesenlasAlphaserverSC.Fattree.Se componedeunswitch(de16o128puertos)y tarjetasadaptadorasPCIX.QsNetII(2003)alcanza hasta1.3GB/s(300MB/sQsNetI).Latenciasde35 microsegs. Myrinet:Myricom.Switchde8a256puertos(hasta 16crossbarcompletos,despusredClos)ytarjetas PCIXenlosnodos.230MB/s(pingpong).7 microsegs.enmensajescortos.
Infiniband.Especificacinde2001.Puedeser usadaparaconexionesentresubsistemasoentre procesadores.Precioalto,peroseesperaque,porsu versatilidadyalsernopropietario,seextienday abarate.Especificacionesparaconexionesdecobre yfibraptica.Defineunlinkbsicode312.5MB/s yotrosdosdevelocidad4xy12x(3.75GB/s).Dos tiposdeadaptadores(quesepuedenconectar directamente)yswitchesde8128puertosy4x. Pingponga850MB/s,7microsegundosen mensajescortos.
Parmetrostpicos.
RDMA:RemoteDirect MemoryAccess VAPI:VerbBasedAPI, interfazSWparaInfiniband GM:(Glenn'sMessages?) Capadebajoniveldepaso demensajesenMyrinet. ElanLib:librerade comunicacionesparaQuadrics
Liuetal.MicrobenchmarkPerformancecomparisonofHighSpeedClusterInterconnects,IEEEMicro, JanFeb.2004,pag.42.
900MB/seg.lmiteporPCIX Infinibandpermitebastantems
Liuetal.MicrobenchmarkPerformancecomparisonofHighSpeedClusterInterconnects,IEEEMicro, JanFeb.2004,pag.42.
Top500networkfamily
GRID Computing
Capabilitycomputing vs.Capacitycomputing
Dongarra04
GridComputing
Thompson
CloudComputing
IdeasGeneralesSobreParalelismo
Multiprocesadorvs.Multicomputador
Latendenciaesintentarproveeralusuarioconun entornoqueescondaenlamedidadeloposiblelas diferenciasarquitecturales:NmerodeCPU,tiempos deaccesoamemoria,existenciaonodevariosespacios dedirecciones... Estdistanteelmomentoenquestopuedaconseguirse sinmermasimportantesenelrendimiento,demomento hayalgunasconsideraciones(aproximadas)que diferencianelcomportamientodeunmulticomputador deldeunmultiprocesador.
Top5del
Multicomp. Con32768 procesadores PPCa0.7GHz incluidosenun ASICque integracasi todo.Redpropia (Toro3D+ rbol).Linux
Top500
Multicomp. con640nodos multiprocs de8CPUS vectoriales NECSX8por cada.Red propietaria (12.3GB/s entrenodos)
Rendimiento:Generalidades
dondexdependerdelalgoritmoydelnmerodeelementos,n,
T com :Tiempodecomunicacionesusadoduranteel mismopaso. T com= y t com
denuevo,ydependedelalgoritmoydelnmerodeelementosn.
T com
Cdependedelalgoritmo,valorestpicosentre0.1y10.
Ejemplosded:
Ademsdelascomunicacioneshayotrascargasporlas quenoseobtienenlosvaloresderendimientoideales:
Estascontribuciones,correctamenteexpresadasson aditivas.
ElvaloridealdeSesN.
Eficiencia:Aceleracinganadaporprocesador.
S = N
Elvaloridealdesera1.
ConclusionesPrcticas
Sitenemosunaineficienciaacumulada:
f = f c f SW f eq...
podemosescribir:
T conc N = T sec N 1 f
dedonde S= N
1 f
f conloquesiespequeo. S~ N 1 f
Centrndonosenlacargadecomunicaciones:
f c =gn t com t calc
dondeg(n)esunafuncindeltamaode subdominio,n.
SepuedeverelcomportamientodeS(N)endos casoslmite.
fc Tamaodesubdominio,n,fijo:serconstante S~C N
Tamaodeproblemafijo:nserinversamente proporcionalalnmerodenodos:
fc Ahoranopodremossuponerqueesconstantey pequeosegnaadimosprocesadores.
Asumimosque,adems,vienedadaporlaexpresin tpicadeunproblemacondimensionalidadd:
1 n~ N
Elfactordeaceleracinqueda:
S= N 1 C t com 1 1 1/ d t calc N
Factordeaceleracinenlosdoscasoslmite.
SubdivisindelDominioyComunicaciones
puntosnodales. nN = nN nN
Nrectngulosde nN n Ncuadradosde n n
Lalongituddefrontera,paraNgrandeser:
Elcocientedelacantidaddecomunicacionesenlos doscasos:
l rec l cua
N =
2
Amdahl,Gustafsonyescalabilidad
wikipedia
Principiosde Diseo
Particin+Comunicacin:
Aglomeracin+Asignacin(Map):
Particin.
Exponerlasposibilidadesdeejecucinparalela:Preferible ungrannmerodetareas(descomposicionesdegrano fino)>Mayorflexibilidaddeagrupacinposterior.
Dospuntosdevista:
Particin:PuntosClave.
Heursticamente,paradisponerdemayorflexibilidadenfases posteriores,laparticindebedefinirdelordendediezveces mstareasqueprocesadores. Silaparticinexigeredundanciaendatosoclculos,puede noserescalable. Equilibrarlacargaentreprocesadoresdespussermsfcil silastareassondetamaoparecido. Paranocomprometerlaescalabilidad,problemasmayores debenproducirmstareas,notareasmayores. Enestafaseesbuenoconsiderartantasparticiones alternativascomosepuedan.
Comunicacin.
Losclculosarealizarporunatarearequerirndedatos asociadosalamismayaotrastareas>Comunicaciones. Clasificaremoslascomunicacionesenvariostipos: Estructurada/Noestructurada:Latareaysusvecinosforman unaredestructurada(Ej.:unaredcartesiana)/Noestructurada (grafoarbitrario). Esttica/Dinmica:Unatareasecomunicaconlas mismas/distintastareasdurantelaejecucindelprograma. Sncrona/Asncrona:Paresdeproductores/consumidores cooperan/nocooperanenlasoperacionesdecomunicacin.
Comunicacin:PuntosClave.
Aglomeracin.
Unirtareasconvistasalaejecucineficienteenuna mquinareal. Reducirloscostesdecomunicacin:Incrementarla granularidaddelcmputoydelascomunicaciones.Posible duplicacindedatosy/oclculoparadisminuirlas comunicaciones. Noaglomerarmstareasquelasestrictamente necesarias:Disponerdetareassuficientesesclaveparala escalabilidad. Lareutilizacindecdigo(secuencial)existenteolaunin dediferentesfasesdelproblemaquerequierandiferentes descomposicionesdebeserconsideradaahora.
Aglomeracin:PuntosClave.
Asignacin(Map).
Sloenelcasodemulticomputadores (consideracionesaplicablesenelcasode multiprocesadoresNUMA).Buscamosminimizarel tiempodeejecucin. Situartareascapacesdeserejecutadas concurrentementeendiferentesprocesadores. Situartareasquesecomunicanfrecuentementeenel mismoprocesador. Silaasignacinnopuedeserestticahabrque equilibrarlacarga.
Equilibradodecarga.
Desventaja:excesivascomunicaciones,sobrecargadel procesoMaster>compromisoparalaescalabilidad.
Algoritmoslocales:Cadanodocompensasucarga coninformacinsobresusvecinos.
Desventaja:Cambiosrepentinosdecargaendiferentes fasesdelalgoritmonosonbienseguidos.
Asignacin:PuntosClave.
HerramientasdeProgramacinParalela
HPF
Lenguajedeprogramacincompletoparaprogramacin tipoparalelismodedatos(modeloSPMD). Objetivos:Buenrendimiento,portabilidad, compatibilidadconellenguajebase(f95).Tantoen mquinasdememoriacompartidacomodistribuida. Entraenformadedirectivas(salvointrnsecosnuevos) enelprogramafuente. Especificacin1.0en1993.La2.0en1997.Lamayora deimplementacionessonsubsetde1.1 Procesodecompilacinmuycomplejo,rendimiento difcildeprever.Futuroincierto.
MPI
Estndardefactodelmodelodepasodemensajes.Acordadopor empresas,universidadesyotroscentrosdeinvestigacin. Orientado,sobretodo,amulticomputadores.(Loquenoquiere decirquenohayaimplementacionesenmultiprocesadores) Versin1.0en1994,2.0en1997.SeaadeI/Oparalela,creacin ydestruccindinmicadetareas,etc. Elprogramadortienequeocuparsedecasitodo:MPIaisladelas partesmsprximasalHW,peronodelalgicadelpasode mensajes. BindingsparaF77,C,C++,f90(concaveats...)inclusoJava, Python...
OpenMP
Especificacinde1998.Versin2.0(f90)en2000,C C++en2002.Versin2.5(f90/C/C++)en2005. Acordadoporunaseriedefabricantesdehardware. APIdestinadoamquinasdememoriacompartida. Entraenelprogramafuenteenformadedirectivasde compilacin. BindingsparaF77,f90,CyC++ Permiteunaparalelizacinincremental.Ocupaun lugarintermedioentreelaltoniveldeHPFyelbajo niveldeMPI.
Ejemplos.
4 1 x
2
dx
ProgramIntegral
OMP
!ElmetododelasumadeRiemannenversionOpenMP Integer(Kind(1))::n,i Real(Kind(1.D0))::w,x,suma,pi,a Integer::InitialClock,FinalClock,TicksPerSecond Print*,'Numerodeintervalos=' Read*,n w=1.0d0/n suma=0.0d0 CallSystem_Clock(InitialClock) !$OMPPARALLELDOPRIVATE(x),SHARED(w),REDUCTION(+:suma) Doi=1,n x=w*(i0.5D0) suma=suma+f(x) EndDo CallSystem_Clock(FinalClock,TicksPerSecond) Print*,'Segundos:',Float(FinalClockInitialClock)/(Float(TicksPerSecond)) Pi=w*suma Print*,'Pi=',Pi End
ProgramIntegral !ElmetododelasumadeRiemannenversionHPF Integer(Kind(1))::n,i Real(Kind(1.D0))::w,x,suma,pi,a Real(Kind(1.D0)),Allocatable::Puntos(:),funcion(:) Integer::InitialClock,FinalClock,TicksPerSecond !HPF$PROCESSORSP(4) !HPF$DISTRIBUTE(BLOCK)ONTOP::Puntos,Funcion Print*,'Numerodeintervalos=' Read*,n Allocate(Puntos(n)) Allocate(funcion(n)) w=1.0d0/n suma=0.0d0 Print*,'***FORALL+IntrinsecoSUM' CallSYSTEM_CLOCK(InitialClock) !HPF$INDEPENDENT ForAll(i=1:n)funcion(i)=4.0D0/(1.0D0+(w*(i0.5D0))**2) suma=SUM(funcion) CallSYSTEM_CLOCK(FinalClock) Print*,'Segundos:',& Float(FinalClockInitialClock)/Float(TicksPerSecond) Pi=w*suma Print*,'Pi=',Pi
HPF
CONTAINS !Funcionpura.RecibeUNESCALARy !devuelveUNESCALAR. PUREREAL(Kind(1.D0))FUNCTIONf(a) Real(Kind(1.D0)),INTENT(IN)::a f=4.0D0/(1.D0+a*a) EndFUNCTIONf !Funcionpura.RecibeUNVECTORydevuelve !otroVECTOR. PUREFunctionfv(a) Real(Kind(1.D0)),Dimension(:),Intent(IN)::a Real(Kind(1.d0)),Dimension(Size(a))::fv fv=4.0D0/(1.D0+a*a) EndFunctionfv EndPROGRAMIntegral
programmain include"mpif.h" doubleprecisionPI25DT parameter(PI25DT=3.141592653589793238462643d0) doubleprecisionmypi,pi,h,sum,x,f,a doubleprecisionstarttime,endtime integern,myid,numprocs,i,ierr cfunctiontointegrate f(a)=4.d0/(1.d0+a*a) callMPI_INIT(ierr) callMPI_COMM_RANK(MPI_COMM_WORLD,myid,ierr) callMPI_COMM_SIZE(MPI_COMM_WORLD,numprocs,ierr) 10if(myid.eq.0)then print*,'Enterthenumberofintervals:(0quits)' read(*,*)n endif cbroadcastn starttime=MPI_WTIME() callMPI_BCAST(n,1,MPI_INTEGER,0, &MPI_COMM_WORLD,ierr) ccheckforquitsignal if(n.le.0)goto30 ccalculatetheintervalsize h=1.0d0/n sum=0.0d0
MPI
do20i=myid+1,n,numprocs x=h*(dble(i)0.5d0) sum=sum+f(x) 20continue mypi=h*sum ccollectallthepartialsums callMPI_REDUCE(mypi,pi,1,MPI_DOUBLE_PRECISION, &MPI_SUM,0,MPI_COMM_WORLD,ierr) cnode0printstheanswer. endtime=MPI_WTIME() if(myid.eq.0)then print*,'piis',pi,'Erroris',abs(piPI25DT) print*,'timeis',endtimestarttime,'seconds' endif goto10 30callMPI_FINALIZE(ierr) stop end
Bibliografa
Arquitecturas,nocionesgenerales:
I.Foster,C.Kesselman(Eds.)TheGRID:BlueprintforaNew ComputingInfrastructure.MorganKaufmannPublishers.(Elcaptulo2 estenhttp://www.globus.org/research/papers/chapter2.pdf TheGlobusProject.http://www.globus.org UKGridSupport.http://www.gridsupport.ac.uk R.Thompson.GridNetworking. http://www.owenwalcher.com/grid_networking.htm D.JonesyS.Smith.OperatingSystems.CentralQueenslandUniversity, 1997.http://infocom.cqu.edu.au G.Welleinetal.Itanium1/Itanium2FirstExperiences.HPCServices RegionalesRechenzentrumErlangen,2003. J.Morris.ComputerArchitecture.1998. http://ciips.ee.uwa.edu.au/~morris/Courses/CA406 CrayX1SystemOverview(S234622),enhttp://www.cray.com
Optimizacin:
B.AlpernyL.Carter,SIAMShortCourseonPerformance Optimization.http://www.research.ibm.com/perfprog K.R.Wadleigh,I.L.Crawford.SoftwareOptimizationforHigh PerformanceComputing.HewlettPackardProfessionalBooks, PrenticeHallPTR(2000) CursosenU.CornellTheoryCenter http://www.tc.cornell.edu/Services/Edu/TopicsyEdinburghParallel ComputerCentrehttp://www.epc.ed.ac.uk/computing Anderssonetal.RS/6000ScientificandTechnicalComputing:Power3 IntroductionandTuningGuide.IBMRedbooks.1998. http://www.redbooks.ibm.com S.Behlingetal.ThePower4ProcessorIntroductionandTuning Guide.IBMRedbooks.2001.http://www.redbooks.ibm.com
Otros:
Top500.http://www.top500.org
HighPerformanceFortran:
A.K.Ewingetal.WritingParallelProgrammeswithHigh PerformanceFortran.EdinburghParallelComputingCentre. http://www.epc.ed.ac.uk/epcctec/courses.html C.H.Koelbeletal.TheHighPerformanceFortranHandbook. ScientificandEngineeringComputationSeries,TheMIT Press,1994. AA.VV.HighPerformanceFortranLanguajeSpecification. HighPerformanceFortranForum,1997. http://www.crcp.rice.edu/HPF AA.VV.HPFTutorial.HewlettPackard2001. http://www.hp.com/techservers/tutorials3/hpf.html ThePortlandGroup.HPFparaunagranvariedadde plataformas.Manualesenlnea:http://www.pgroup.com
OpenMP:
MPI:
W.Groppetal.UsingMPI:PortableParallel ProgrammingwiththeMessagePassingInterface. ScientificandEngineeringComputationSeries.TheMIT Press,1994.TambinconMPI2,1999. M.Sniretal.MPI:TheCompleteReference,Vol.1:The MPICore.W.Groppetal.Vol.2:TheMPI2Extensions. ScientificandEngineeringComputationSeries.TheMIT Press,1998 TheMPIStandardspagehttp:/wwwunix.mcs.anl.gov/mpi Netlib:TheNetLibraryhttp://www.netlib.org/mpi CursosenEPCChttp://www.epcc.ed.ac.uk IMPI:InteroperableMPI.http://impi.nist.gov/IMPI