Sei sulla pagina 1di 68

TcnicasdeComputacinCientfica

ParteII:IntroduccinalParalelismo

FIM2008/9

VicenteMartn v0.1a

Temario

IdeasGeneralesSobreParalelismo. HerramientasdeProgramacinParalela.

OpenMP. MPI:MessagePassingInterface. UPC:UnifiedParallelC HPF:HighPerformanceFortran.

ArquitecturasParalelas

Variosprocesadorescooperansimultneamente enlaejecucindeunproceso.

Puedencompartirunnicoespaciodedirecciones. Cadaprocesadorpuedeteneraccesoexclusivoasu propioespaciodedirecciones.Siotroprocesador requiereunaposicindeterminadasucontenidoes enviadoatravsdealgntipodered.Nohayacceso directo.

Arquitecturas:Taxonoma

Muchasclasificaciones.Unadelasmstpicasesla deFlynn:

Clasificacinsegnelnmerodeflujosde datos/instrucciones.

SISD:Flujodeinstrucciones/datosnicos(eg:ordenador secuencial.Vectoriales...segnopiniones) SIMD:nicodeinstrucciones/mltiplededatos(eg:ordenador vectorial,conjuntosdeinstruccionesSSEoAltivec.CM1) MISD:Mltipledeinstrucciones/nicodedatos(C.mmp, procesadoressistlicos.Todosexperimentales) MIMD:Mltipledeinstruccionesydatos(eg:Lagranmayora deordenadoresparalelosylamsimportantedesdenuestro puntodevista)

Clasificacinde Arquitecturas paralelas

Ejemplo:ccNUMA

SiliconGraphicsOrigin2000:Cadaplaca contienedosprocesadoresquecompartenuna memoriajerarquizadalocal.Lascachesdetodos losprocesadoressemantienencoherentes(cc). Elespacioglobaldetodalamquinaesnico. Elaccesoabancosdememoriasituados fsicamenteenprocesadoresremotossehacea travsdeunareddeinterconexin.Elpeor tiempodeaccesoalamemorialocalesde318 ns,enelpeorcasodeunamquinacon64 nodosesde1067ns.

Ejemplo:Multicomputador

EnlaIBMSP2cadanodoesunaestacindetrabajoconsupropioespaciodedirecciones bajoelcontrolexclusivodesupropiosistemaoperativo.Elaccesoaunaposicindememoria pertenecienteaotronodorequierelacomunicacindedosSOindependientesconunpasode mensajesexplcito,enestecasoayudadoporHWespecfico:elHighPerformanceSwitch

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

Isnotgridcomputing:asdefinedbysomesortofvirtual supercomputer IsnotUtilitycomputing:Asdefinedbyofferinga computingresourceasifitwasacommonutility(e.g.: electricity) Isnotautonomiccomputing:Asdefinedbyselfmanaged resources.

Butitsharescharacteristicsfromthethree.someexamples: BitTorrent,Skype,volunteercomputing(Seti@homeis nowseenascloudcomputing...)


See:http://en.wikipedia.org/wiki/Cloud_computing

IdeasGeneralesSobreParalelismo

Yaconocemoslataxonomademquinas paralelas.Desdenuestropuntodevistaslonos importa:

Sielsistemaesunmultiprocesadoroun multicomputador(espaciodedireccionescompartido odistribuido) Silostiemposdeaccesoamemoriasonuniformeso no(UMAvs.NUMA)

Multiprocesadorvs.Multicomputador

Latendenciaesintentarproveeralusuarioconun entornoqueescondaenlamedidadeloposiblelas diferenciasarquitecturales:NmerodeCPU,tiempos deaccesoamemoria,existenciaonodevariosespacios dedirecciones... Estdistanteelmomentoenquestopuedaconseguirse sinmermasimportantesenelrendimiento,demomento hayalgunasconsideraciones(aproximadas)que diferencianelcomportamientodeunmulticomputador deldeunmultiprocesador.

Losmultiprocesadoresmanejanmejorelcambiode proceso.Estoesimportantesilosprocesossongrandes yestnejecutndoseenvariasCPUs.

UnMulticomputadoresmsadecuadoparacorrerunslo trabajograndehastasufinalizacinoparacorrermultitudde trabajosmspequeosquequepanbienenlamemorialocal (throughput) Unnododeunmultiprocesadortieneaccesosinproblemasa todalamemoriadelamquina(i.e.procesosdecualquier tamao),noocurrelomismoconunnododeun multicomputador.

Unmulticomputadornecesitarpasoexplcitode mensajes,aunquealgunacapaSWlooculte. Esmsdifcilparticionarunmultiprocesador.

Top5del
Multicomp. Con32768 procesadores PPCa0.7GHz incluidosenun ASICque integracasi todo.Redpropia (Toro3D+ rbol).Linux

Multicomputadorde20 multiprocesadoresNUMA de512CPUs(Itanium2)cada uno.Infiniband.Linux.

Top500
Multicomp. con640nodos multiprocs de8CPUS vectoriales NECSX8por cada.Red propietaria (12.3GB/s entrenodos)

Multicomputadorde1024nodos Multicomputadorde2268nodos tetraprocesadoresSMP(Itanium2). biprocesadoresSMP(PPC970). Myrinet.Linux(config.con1781nodos) Quadrics.Linux.

Rendimiento:Generalidades

Laimportanciadelavelocidaddeaccesoamemoria vieneexpresadaporelhechodequelaprincipaldivisin demquinasseaUMANUMA:Lalocalidaddedatos serunfactorclaveenelrendimiento.Asque analizaremosprimeroelefectodelascomunicaciones: Definiciones(dbiles):

Tiempotpicorequeridoparaunaoperacingenrica t calc (eg.:a=bc) Tiempotpicorequeridoparacomunicarunapalabra t com entredosnodos

T calc :Tiempodeclculoempleadoporunpaso completodeunalgoritmoenunnodo(Ej.: Actualizacindetodoslospixelsasociadosaun procesadorenunalgoritmogrfico).Engeneral: T calc= x t calc


asignadosalprocesadorporladescomposicindelsubdominio (granularidad)

dondexdependerdelalgoritmoydelnmerodeelementos,n,
T com :Tiempodecomunicacionesusadoduranteel mismopaso. T com= y t com

denuevo,ydependedelalgoritmoydelnmerodeelementosn.

fc :Cargafraccionaldecomunicaciones (communicationoverhead).Cocienteentreeltiempo dedicadoalascomunicacionesyelempleadoenclculo. y t com f c= = T calc x t calc

T com

fc t com /t calc DependedelHWatravsdelaraznqueesun nmerofijoparaunHWdado.Valorestpicosentre1y200. fc Nodependedirectamentedelnmerodeprocesadores: lohaceindirectamenteatravsden.

Lacargafraccionaldecomunicacionestieneunarelacin directaconlatopologadelproblema/algoritmo.Parauna dimensintopolgicad,tenemostpicamente:


t com f c = 1/ d t calc n C

Cdependedelalgoritmo,valorestpicosentre0.1y10.

Ejemplosded:

Problemasunidimensionales,problemasfsicosconfuerzasde largoalcance:d=1. Inversindematrices,autovalores,convoluciones:d=2 Matricesdispersasenproblemasdeelementosfinitos2D:d=3


t com C FFT: f c ~ log n t calc

Ademsdelascomunicacioneshayotrascargasporlas quenoseobtienenlosvaloresderendimientoideales:

Algoritmonoptimo:puedenohaberunalgoritmo paralelotaneficientecomoelsecuencial. CargaadicionaldelSWparalelo:Costesextraenla implementacinparalela.Ej.:Clculosymemoria asociadasaladescomposicindeldominio. Equilibradodecarga:Migracindetareasocambios decontextonecesariospararepartireltrabajoentrelos nodos.

Estascontribuciones,correctamenteexpresadasson aditivas.

Factordeaceleracin(speedup)S:Cocienteentreel tiempodeclculoenunamquinasecuencialyel mismoclculoenunaparalela:


S= T sec T conc

Definimoscomoeltiempoempleadoporuna T conc N mquinaparalelaconNnodos.Normalmente estaremosinteresadosen:


S N = T conc 1 T conc N

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

fc Suponemosademsqueesinicialmentepequeo(no seconsideraraunaimplementacinparalelasifuesede otromodo). Decirquemantenemosnfijoequivaleadecirque aumentamoseltamaodelproblemaamedidaque aadimosprocesadores.

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

Laeleccindeladivisindeldominiopuede afectaralassobrecargasdemaneraimportante. Ejemplo:Algoritmosequilibradosdevecinos prximosen2D.

Tenemosundominiobidimensionalcuadradocon Repartiremosgruposdenpuntosnodalesacadaunode losNprocesadores. Elalgoritmoslorequiereconocervaloresenpuntos contiguos.Cmodividimoseldominio?

puntosnodales. nN = nN nN

Lacantidaddecomunicacionesserproporcionala lalongituddelafronteraentresubdominios. Consideramosdosposibilidades:


Nrectngulosde nN n Ncuadradosde n n

Lalongituddefrontera,paraNgrandeser:

Casorectangular: l rec = N nN CasoCuadrado: l cua=2N n

Elcocientedelacantidaddecomunicacionesenlos doscasos:
l rec l cua

N =
2

Siusamosunadescomposicinrectangularharemos, aproximadamente,vecesmscomunicacionesquesi N lausamoscuadrada.Noslosermenoseficiente, tambinsermenosescalable.

Amdahl,Gustafsonyescalabilidad

En1967Amdahlconsiderquesiunprogramatiene unaparteintrnsecamentesecuencial,s,yotra paralela,p(cons+p=1)enNprocesadoresentonces elfactordeaceleracinmximosera:


1 s p S= = p p s s N N

Segnesto,sitenemos1024procesadoresylaparte secuencialesdeun0.5%elfactordeaceleracin mximoqueconseguiremosesde168!!...Un5%de partesecuencialnoslodejaenmenosde20...

wikipedia

Contraesto,Gustafson(1988)arguyquesyp,no eranconstantescuandoseparalelizabayquelo correctoerausars'yp',losvaloresmedidosenel sistemaparalelo.Segnestounsistemasecuencial quesustituyeraalparalelotardaras'+p'N,conloque tendramosunfactordeaceleracin:

s ' p' N S= =N 1N s ' s ' p ' Queseparecealascurvasdetamaodesubdominiofijo quetenamos...

Lasdossonsimplificaciones,laescalabilidadhayque estudiarlaparaunaimplementacindeunalgoritmo dadoenunamquinadada.

Principiosde Diseo

MetodologaPCAM (Foster):Partition, Communicate, Agregate,Map.

Particin+Comunicacin:

Desdeelpuntodevistaalgortmico. Rendimientoycostedeimplementacinenun hardwaredado.

Aglomeracin+Asignacin(Map):

Particin.
Exponerlasposibilidadesdeejecucinparalela:Preferible ungrannmerodetareas(descomposicionesdegrano fino)>Mayorflexibilidaddeagrupacinposterior.

Dospuntosdevista:

Descomposicindeldominio:Primerosedetermina unparticindelosdatos,asociandodespuslos clculosaestos. Descomposicinfuncional:Primerosedescompone elclculoyluegoseasocianlosdatosnecesariopara realizarelclculo.

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.

Sialgunatarearealizamuchasms comunicacionesquelasdems,laescalabilidad serdifcil. Evitarlascomunicacionesglobalesenfavordelas locales. Lascomunicacionesdebenpoderserhechas concurrentemente. Lacomputacinasociadaadiferentestareasdebe poderserrealizadaconcurrentemente.

Aglomeracin.

Unirtareasconvistasalaejecucineficienteenuna mquinareal. Reducirloscostesdecomunicacin:Incrementarla granularidaddelcmputoydelascomunicaciones.Posible duplicacindedatosy/oclculoparadisminuirlas comunicaciones. Noaglomerarmstareasquelasestrictamente necesarias:Disponerdetareassuficientesesclaveparala escalabilidad. Lareutilizacindecdigo(secuencial)existenteolaunin dediferentesfasesdelproblemaquerequierandiferentes descomposicionesdebeserconsideradaahora.

Aglomeracin:PuntosClave.

Laaglomeracindebereducirloscostesde comunicacin. Laduplicacindeclculo/datosdebereportar beneficiosynocomprometerlaescalabilidad: Asegurarse. Cadatareadebeteneruncosteen clculo/comunicacionessimilarysunmero escalarconeltamaodelproblema. Cumpliendoloanterior,cuantasmenostareas,mejor.

Asignacin(Map).

Sloenelcasodemulticomputadores (consideracionesaplicablesenelcasode multiprocesadoresNUMA).Buscamosminimizarel tiempodeejecucin. Situartareascapacesdeserejecutadas concurrentementeendiferentesprocesadores. Situartareasquesecomunicanfrecuentementeenel mismoprocesador. Silaasignacinnopuedeserestticahabrque equilibrarlacarga.

Equilibradodecarga.

Algoritmoscentralizados:Unnodoconocelacarga asociadaatodoslosdemsyreparteeltrabajo existenteentreellos.Tambin,algoritmos Master/Worker.

Desventaja:excesivascomunicaciones,sobrecargadel procesoMaster>compromisoparalaescalabilidad.

Algoritmoslocales:Cadanodocompensasucarga coninformacinsobresusvecinos.

Desventaja:Cambiosrepentinosdecargaendiferentes fasesdelalgoritmonosonbienseguidos.

Asignacin:PuntosClave.

ContrastarunaimplementacinSPMDconotra basadaencreacin/destruccindinmicadetareas. Enunesquemadeequilibradodecarga centralizado,asegurarsequeelMasternose convertirenuncuellodebotella. Enunesquemadeequilibradolocal,asegurarseque loscambiosenlosesquemasdecargaalolargodel cmputonosonbruscos.

HerramientasdeProgramacinParalela

Comomuestradelasmssignificativas,por uso/estandarizacin/filosofanoscentraremos en:


HighPerformanceFortran:HPF MessagePassingInterface:MPI OpenMultiProcessing:OpenMP

Antesdetratarcadaunoconmsdetalle, veremossusideasbsicasyalgnejemplo simple.

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.

Paraobtenerunaideadelostresparadigmas,de sufilosofa,complejidadyrendimiento,los siguientesprogramascalculanelvalordela integralusandounasumaderectngulos:


=0

4 1 x
2

dx

EnelcasodeHPFsedanvariasdeclaracionesdela funcin,todascorrectas,paraestudiareldistinto rendimientodecadauna(enelejemplosloseusa una,inlined)

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:

B.Wilkinson.ComputerArchitecture,DesignandPerformance.Prentice Hall1996. CommunicationsoftheACMvol.35,No.81992(monogrfico) R.W.HockneyyR.C.Jesshope.ParallelComputersII,AdamHilger 1988. G.Foxetal.SolvingProblemsonConcurrentComputersVol.I.Prentice Hall,1988.

I.Foster,DesigningandBuildingParallelPrograms.ConceptsandTools forParallelSoftwareEngineering.AddisonWesley,1995(versinweben http://www.mcs.anl.gov/dbpp) J.Dongarraed.SourcebookofParallelComputing.MorganKaufmann, 2003.

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

A.J.vanderSteen.OverviewofRecentSupercomputers(13thedition, 2003).NetherlandsNationalComputingFacilitiesFoundation,2004. M.S.Schmalz.OrganizationofComputerSystems.UniversityofFL 2001.http://www.cise.ufl.edu/~mszz/CompOrg/ J.LaudonyD.Lenoski.TheSGIOrigin:AccNUMAHighlyScalable Server.SiliconGraphicsInc.1998. J.Ammon.HypercubeConnectivitywithinccNUMAArchitecture. SiliconGraphicsInc.1998.

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

M.Barriosetal.ScientificApplicationsinRS/6000SPEnvironments. IBMRedbooks1999. S.GoedeckeryA.Hoisie.PerformanceOptimizationofNumerically IntensiveCodes.SIAM2001. C.HalloyyK.Wong.MaximizingMegaflops.JointInstitutefor ComputationalScience,2001. http://www.jics.utk.edu/SEPSCOR/Module2/index.htm

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:

TheOpenMPArchitectureReviewBoard.OpenMPFortran ApplicationProgramInterfaceVersion2.0Noviembre2000. http://www.openmp.org AA.VV.OpenMP:AProposedIndustryStandardAPIfor SharedMemoryProgramming,1997.http://www.openmp.org

AA.VV.RS/6000ScientificandTechnicalComputing:Power3 IntroductionandTuningGuide.IBMRedbooks,1998. http://www.redbooks.ibm.com AA.VV.OpenMP,aParallelProgrammingModelforShared MemoryArchitectures.EdinburghParallelComputingCentre, 1998.http://www.epcc.ed.ac.uk/epcctec/documents

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

Potrebbero piacerti anche