introduccion pvm

Embed Size (px)

Citation preview

1IndiceCURSO2010/2011COMPUTACIONPARALELACurso2010/2011Captulo1. Introduccionalosmultiprocesado-resCaptulo2. ResumendelassentenciasFortranCaptulo3. Parallel Virtual Machine: PVMCaptulo4. MultiplicacionesmatricialesCaptulo5. MetodosdirectosderesoluciondesistemaslinealesCaptulo6. Metodositerativosclasicos2 1. Introduccionalosmultiprocesadores1. INTRODUCCIONALOSMULTIPROCESADORES1.1. Introducci on.1.2. Tiposdearquitecturasparalelas.1.3. Conceptos basicos ymedidas deparalelis-mo.3 1. Introduccionalosmultiprocesadores1.1. Introducci onDEMANDAComputadorescongranpotenciadecalculo.Velocidadenlacomputacion.LIMITACIONESRestriccioneslogicos.Restriccionestecnologicos.4 1. IntroduccionalosmultiprocesadoresSOLUCIONESDetiposoftware:mejorasenlosalgoritmos.Detipohardware: mejoras enlatecnologadecomputadores(mayorrapidezdeinstruc-ciones, dispositivos electr onicos mas rapidos,. . .)Paralelismo: replicarunidadesdetratamien-todeinformaci onconel objetivoderepartirtareasentrelasmismas.AlasarquitecturasdeestetiposelasdenominaArquitecturasparalelas5 1. IntroduccionalosmultiprocesadoresAPLICACIONESModeladopredictivoysimulaciones.Disenoyautomatizaciondeproyectosdein-geniera:Aerodinamicacomputacional.Inteligenciaarticial yautomatizaci on:Procesadode imagenes, reconocimientodepatrones, comprensiondel habla, de-duccionautomatica,roboticainteligente,sistemasexpertos, . . . .Aplicacionesdedeteccionremota.Exploracionderecursos energeticos: explo-racionssmica, modeladodeyacimientos, e-nergadefusi onenplasmas, . . . .6 1. IntroduccionalosmultiprocesadoresAPLICACIONES(Cont.)Investigaci on medica: tomografa asistida porcomputador, ingeniera genetica, genoma hu-mano, . . . .Investigaci ondearmamentosydefensa.Problemasdeinvestigaci onbasica: qumica,mecanicacuantica, dinamicadeuidos, . . . .7 1. IntroduccionalosmultiprocesadoresAPLICACIONES(Enmedianasempresas)Uso de computacion de altas prestacionespara el diagnostico temprano de fallos enturbinasdegas.Control decalidaddediscos opticos defec-tuosos.ProyectoPARSAR: ProcesamientorapidoybaratodeimagenesSAR(Radardeaperturasintetica).Proyecto PCECOWATER: Modelado ecien-tedecorrientesenentornosmedioambienta-les.ProyectoHIPEROAD: Disenoaerodinamicodecoches.Proyecto STAMPAR: Diseno de troquelesparalaestampaciondechapa.8 1. IntroduccionalosmultiprocesadoresAPLICACIONES(mascercanas)Efectosespecialesdediversaspelculas(Ti-tanic).DerrotadeKasparovfrenteaDeepBlue.9 1. Introduccionalosmultiprocesadores1.2. TiposdearquitecturasparalelasArquitecturassegmentadasopipeline.Divisiondeunaunidaddeprocesoenpartesosegmentos, dotandolosderegistroscapa-cesdealmacenarresultadosintermedios.Segmentaciondeunaunidadaritmeticaenpartesquerealizanunasubfuncionsobreunpardeoperandos.10 1. IntroduccionalosmultiprocesadoresArquitecturastipoSIMDUna unica instrucci on ejecutandose sobre dis-tintosdatos.Variosprocesadoresconunaunicaunidaddecontrol.ArquitecturasMIMDDistintasinstruccionesseejecutansobredis-tintosconjuntosdedatos.Varioselementosdeprocesoycadaunoconsupropiaunidaddecontrol. Tambiendeno-minadosMultiprocesadores.11 1. IntroduccionalosmultiprocesadoresMultiproc. dememoriadistribuidaCada procesador tiene su propia memoria,inaccesiblealosdemasprocesadores.Noexistememoriacomun.Lacomunicacionseefectuamediantepasodemensajes.Multiproc. dememoriacompartidaTodos los elementos deprocesotienenac-cesoaunamemoriacomun.Cadaunopuedetenerunamemorialocal.La comunicacion se realiza a traves de lamemoriacomun.12 1. IntroduccionalosmultiprocesadoresTopologadelareddeinterconexi onFormade conectarse los distintos procesa-doresparaestablecerlacomunicacionentreellos.Debe lograr conectar el mayor numero denodosconpocosenlacespornodo,undiametropequeno,ypocos conictos deaccesoenlared.13 1. IntroduccionalosmultiprocesadoresRedcrossbarPoseeelementos deconmutacionmedianteloscualesseconectanlosnodosentres.Procesador1Procesador2ProcesadorNMemoria1 Memoria2 MemoriaNr r rr r rr r r14 1. IntroduccionalosmultiprocesadoresTopologadebusTodosloselementosestanconectadosaunbusrapidoProcesadorPCacheMem. LocalI/OProcesador2CacheMem. LocalI/OProcesador1CacheMem. LocalI/OMem. Global15 1. IntroduccionalosmultiprocesadoresTopologadeanilloCadaelementoestaconectadoalosvecinosmasproximosporunenlaceunidireccional obidirec-cional.P1P2P3PpE E E. . . E EP1P2P3PpE E E. . . E ' ' ' ' ' EAnillobidireccionalAnillounidireccional16 1. IntroduccionalosmultiprocesadoresTopologademallaCada nodo esta conectado a sus cuatro veci-nos mas pr oximos. Lamallaes abiertacuandoademas los enlaces delaperiferiaestananula-dos.P P P PP P P PP P P PP P P P17 1. IntroduccionalosmultiprocesadoresTopologadehipercuboPuedeusarseparaconectar N=2nprocesado-res. Cadaprocesador corresponde aunverticedeunhipercubondimensional yestaconecta-doaotrosi enel hipercubohayunaaristaentreloscorrespondientesvertices.PPPPET TE'c c'P PP PET TE'c c'

3-dimensionalPPPPET TE'c c'2-dimensional18 1. Introduccionalosmultiprocesadores1.3. ConceptosbasicosymedidasdeparalelismoDenicion Se llama gradode paralelismodeunalgoritmonumericoal n umerodeoperacio-nesenel algoritmoquepuedenserrealizadasenparalelo.DenicionSe llama grado medio de paralelismodeunalgoritmonumericoal numerodeopera-cionesenel algoritmoquepuedenserrealizadasenparalelodivididoporel n umerodeetapas.19 1. IntroduccionalosmultiprocesadoresDenicion Se llamaincrementode velocidad(ospeed-up) de unalgoritmoparalelocuandoseejecutasobrerprocesadoresaSr=TiempodeejecucionenunsoloprocesadorTiempodeejecucionenrprocesadoresDenicion Se llamaincrementode velocidad(ospeed-up)deunalgoritmoparalelocuandoseejecutasobrer procesadores respectoal mejoralgoritmosecuencial aSr=Tiempodeej. enunproc. del alg. secuencial masrapidoTiempodeej. enrproc. dealg. paraleloEvidentementeSrSrr20 1. IntroduccionalosmultiprocesadoresDenicion Sellamaecienciadeunaalgoritmoparalelo, respectoas mismoaEr=Srr,siendolaecienciarespectoal mejor algoritmosecuencialEr=Srr.ObviamenteErEr 1Objetivo:Conseguirlamayorecienciaoincre-mentodevelocidadposible,aunquedifcilmentesepodraobtenerel optimoEr= 1.21 2. ResumendelassentenciasFortran2. RESUMENDELASSENTENCIASFORTRAN3.1. Sentenciasdeprocedimiento.3.2. Sentenciasdeespecicacion.3.3. Sentencias de asignaciony de control deprograma.3.4. Sentenciasdecontrol deujo.3.5. Sentenciasparael control decheros.3.6. Sentenciasdeentrada/salida.3.7. Usodel compiladorg77Fortran.22 2. ResumendelassentenciasFortran3. RESUMENDELASSENTENCIASFORTRANUtilizaremoslasiguientenomenclatura:[. . .] Indicaunelementoopcional.. . .) Esunalistadevaloresnumericos.MAYUSCULAS SentenciasFortran.Las sentencias Fortran se colocaran entre lascolumnas7y72.Losespaciosenblancosseranignorados.Unalineaquecomienceconun*ounaCenlacolumna1seraignoradaporel compilador.Un* enlacolumna6indicaqueesalineaescontinuaci ondelaanterior.Algunas sentencias pueden tener una etiquetade identicaci onformadapor 1a5dgitos enlascolumnas1a5.23 2. ResumendelassentenciasFortran3.1. SentenciasdeprocedimientoPROGRAMnombre)Dene el nombre del programa que se utilizara co-mopuntodeentradaparasuejecucion.SUBROUTINEnombre)[(lista.argumentos)]El nombredeneel puntodeentradaprincipal.Lalistadeargumentosopcional puedecontenernombresdevariablesoarrays.FUNCTIONnombre)([lista.argumentos])El nombre dene el punto de entrada princi-pal. Debemos asignarleunvalor al nombrean-tesdeejecutarcualquiersentenciaRETURN.Elcontrol sedevuelveal programaquellamoalafuncioncuandoseencuentraunasentenciaRE-TURNoEND.24 2. ResumendelassentenciasFortran3.2. Sentenciasdeespecicaci onINTEGERlista.nombres)Indica que los nombres de variables, arrays o fun-ciones son de tipo entero. Deben estar separadosporcomas.REAL*4lista.nombres)REAL*8lista.nombres)SimilaraINTEGER,seusaparadenirvariablesdetipoREALensimpleprecision(REAL*4)odobleprecisi on(REAL*8).CHARACTERs)nombre, . . .)Dene una variable, array o funcion de tipo CHA-RACTERdelongituds,dondesesunaconstan-tepositiva(sinsigno).25 2. ResumendelassentenciasFortranPARAMETER(nombre) = exp.), . . .)Asignaunnombreaunaconstante.DIMENSIONnombre.array)(n1[, n2, . . .])Dene el nombre de un array y los lmites desus ndices.PuededeclararseunarraydentrodeunasentenciadedeclaraciondetipocomoIN-TEGER, REAL, etc.Lasdimensionesenel programaprincipal debenserconstantesenteras,mientrasqueenlossub-programaspuedenservariablescticiasoexpre-siones.26 2. ResumendelassentenciasFortran3.3. Sentenciasdeasignacionydecontroldeprogramanombre.variable) = expresi on)Sentenciadeasignacion:nombre.variable) es el nombre de una variableounelementode unarray. Si la expresiondela derecha es aritmetica, se evalua en primerlugar, a continuaci on se convierten al tipo denombre.variable)ypor ultimoseasignasuvaloranombre.variable).ENDSeutilizaparaindicar el nal deunaunidaddeprograma.STOPLa sentencia STOP termina la ejecucion del pro-grama, yaseael programaprincipal ounsub-programa.27 2. ResumendelassentenciasFortran3.4. Sentenciasdecontrol deujoRETURNLasentenciaRETURNhacequeel control delsubprograma vuelva al punto desde donde sellamoalasubrutinaquelaincluye.CALLnombre.subprograma)[(lista.argumentos)]Transere el control a la sub. nombre.subp.).Lalistadeargumentoscontienelosparametrosreales que puedenser, entre otros constantes,expresiones, nombresdevariables, ynombresoelementosdeunarray.GOTOnumero.sentencia)El GOTOincondicional transereel control alasentenciaetiquetadaconnumero.sentencia),quedebeserunaconstanteenteraynounava-riable.28 2. ResumendelassentenciasFortranIF(expresi on.aritmetica))s, s0, s+IFaritmeticoSeeval ualaexpresi onaritmetica, dependiendodesi el resultadoes negativo, ceroopositivo,el control setranserealassentenciascuyaeti-quetaseanlosn umeross, s0os+, respectiva-mente.IF(expresi on.l ogica))sentencia.ejecutable)IFl ogicoSi expresi on.l ogica)escierta,unavezevaluada,se ejecutara la sentencia sentencia.ejecutable);encasocontrario, el programa continua enlasentenciasiguiente.29 2. ResumendelassentenciasFortranDeniciondelaexpresionlogicaa1opa2Dondea1ya2sonexpresionesaritmeticas, va-riables, constantesocadenadecaracterescuyovalor pueda ser comparadoconotromediantelosoperadoresop siguientesOperadorlogico Signicado.EQ. Igual a.NE. Distintode.GT. Mayorque.GE. Mayoroigual que.LT. Menorque.LE. Menoroigual quequepuedensercombinadasconOperadorlogico Signicado.OR. Ologico.AND. Ylogico.NOT. Negacionlogica30 2. ResumendelassentenciasFortranIF(expresi on.l ogica))THENSi (expresi on.l ogica))escierta, laejecuciondelprogramacontin uaenlalneasiguiente;encasocontrario, el control pasa a la siguiente sentenciaELSEoELSEIF, si existe, oalaENDIF.ELSEMarca el comienzo de un camino alternativo (ca-sofalso)aunasentenciaIF(. . .)THENoELSEIF(. . .)THEN.ELSEIF(expresi on.l ogica))THENEsta sentencia es equivalente a IF(. . .)THEN, sinembargo, solamenteseejecutarasi unasenten-ciaIF(. . .)THENoELSEIF(. . .)THENdel nivelsuperiortieneunvalorfalso.ENDIFIndicael nal deunbloqueIF(. . .)THEN.31 2. ResumendelassentenciasFortranDOac=bmin, bmax[, binc]Marcael comienzodeunbloquedesentenciasque se ejecutan repetidamente en funcion de unavariabledecontrol, ac, cuyovalorinicial esbminydespuesdecadaejecucionseactualizaaac +binc(oac + 1si seomitebinc). Esteprocesoserepite hasta que la variable de control superael valor maximo, bmax. Unavezalcanzadoestevalor laejecucioncontinuaenlalineasiguientealasentenciaENDDO.ENDDOMarcael nal deunbloquedesentenciasDO.32 2. ResumendelassentenciasFortran3.5. SentenciasFortranparael control decherosOPEN(UNIT=u, FILE=nom., STATUS=est.))La sentencia OPENse utiliza para asignar unn umerodeunidadaunchero.uesunenteroqueindicaeln umerodelaunidadasociadaal chero(detresdgitosomenos).nombrees unnombrequeidenticaal chero(debeirencerradoentrecomillas).estadoes una expresi on de tipo caracter queindicaqueel cheroyaexiste(OLD)oqueelcheronoexiste(NEW).CLOSE(numero.unidad))Estasentenciaseutilizaparadesconectarun-cherodeunaunidad.33 2. ResumendelassentenciasFortran3.6. Sentenciasdeentrada/salidaREAD(num.unidad), formato))lista.entradas)Estasentencialeelos elementos delalistadeentradalista.entradas)delaunidaddeentradanumero.unidad)conlaespecicaciondeforma-toformato).WRITE(num.unidad), formato))lista.salidas)Lasespecicacionestienenel mismosignicadoqueenlasentenciaREAD.PRINTformato), lista.salidas)SentenciaWRITEabreviadadirigidaal outputstandart.num.sentencia)FORMAT(list.espec.formato))Sentenciadeespecicaciondeformato.34 2. ResumendelassentenciasFortran3.7. Usodel compiladorg77FORTRANg77[ opci on[ chero] ...ELcomandog77compilacherosfuenteFOR-TRAN.Loscherosinputpuedenserconexten-si on.f(fuente)oconextensi on.o(objeto).Lasopcionesmasimportantesson:-cS olocompila.-gProducedebuginformaci on.-wEliminaciertosmensajesdeinformacion.-IBuscaeneldirectorioloscherosINCLUDEquenoguranconel pathabsoluto.-lBusca la librera especicada, dondeseleccionael cherolib.a.-LBuscaenel directoriolosche-rosespecicadospor-l.-oNombredel cheroejecutable,enlugardea.out.-OOptimizael c odigogeneradopor el compi-lador.-O3Realizael nivel deoptimizacion-Oademasdeotrasoptimizacionesmasintensas.35 3. Parallel Virtual Machine: PVM3. PARALLELVIRTUALMACHINE: PVM4.1. ConguracionyarranquedePVM.4.2. ConsolaPVM.4.3. Ficherodeconguracionhostle.4.4. UsodelassubrutinasPVM.Control deprocesos.Informacion.Pasodemensajes.Gruposdeprocesosdinamicos.36 3. Parallel Virtual Machine: PVM4. PARALLELVIRTUALMACHINE: PVMPVMesunpaquetedesoftwarequepermiteauna colecci on de computadores hetereogeneosconectarsesobreunaredcualquieraparaapare-cer comoun unicorecursocomputacional con-currentedememoriadistribuida.El terminomaquinavirtual serausadoparade-signar elcomputador de memoria distribuida queobtenemos con PVM. Por host entenderemoscualquieradeloscomputadoresquesonusadosparacrearlamaquinavirtual.PVMproporciona las funciones necesarias pa-ra inicializar automaticamente tareas sobre lamaquinavirtual y permite acadatareacomu-nicarseysincronizarseconcualquierotratarea.Unatareaesdenidacomounaunidadcompu-tacional en PVM, analogamente a un procesoUnix. Las aplicaciones puedenser paralelizadasusandoconstruccionesusualesdepasodemen-sajes.37 3. Parallel Virtual Machine: PVM4.1. ConguracionyarranquedePVMPVMusa varias variables para arrancar y eje-cutar una aplicacion, y que cada usuariodebedenirseensu.bash prole.PVMROOT=/usr/lib/pvm3Donde actualmente se encuentra instalado PVM.PVMARCH=LINUXEl tipodearquitecturaconlaquetrabajaremosPVMDPATH=$PVMROOT/lib/pvmdDondeseencuentrapvmd.PVMTMP=/tmpDondepvmdejaalgunosarchivos.exportPVMROOTPVMDPATHPVMARCHPVMTMPExportamostodaslasvariables.38 3. Parallel Virtual Machine: PVMAdemas debemos ampliar los caminos de busque-dadelasiguienteformaPATH=$PATH:$PVMROOT/libAmpliamos el pathdondeestanlos ejecutablesdePVM.PATH=$PATH:$HOME/pvm3/bin/$PVMARCHAmpliamosel pathconel directoriopropiodon-deseencontrarannuestrosejecutables.39 3. Parallel Virtual Machine: PVM4.2. ConsolaPVMLaconsoladePVM, llamadapvm, essolamen-te unaposicionde PVMque permite al usua-riocomenzar,extraerinformacionymodicarlamaquinavirtual deformainteractiva.Cuandocomenzamos, pvmdetermina si PVMestayaejecutandose; si estonoes as ejecutaautomaticamentepvmdsobreel hostenel queestemostrabajando.Previoatodoestotenemosqueasegurarnosqueen nuestro HOMEdirectorio existe un chero.rhostsquecontendralosnombresdeloshostsquepuedenformar partedelamaquinavirtual.Lospermisosdeestearchivosedebenmodicardelamanera: chmod700.rhosts40 3. Parallel Virtual Machine: PVMUnavezquesehainicializadolaconsolaapare-cerael smbolopvm>que acepta distintos comandos por medio delstandartinput. Loscomandosmasimportantesson:addseguido de uno o mas nombres de hosta nadeestoshostsalamaquinavirtual.conf dalaconguraci ondelamaquinavirtualincluyendoel nombredehost,IDdelatareapvmd, tipodearquitecturayunavelocidadrelativa.deleteseguidodeunoomasnombresdehosteliminaestoshostsdelamaquinavirtual.halt matatodos los procesos PVMincluyendolaconsola. SalimosporcompletodePVM.41 3. Parallel Virtual Machine: PVMhelpdainformacionsobreloscomandosdeusointeractivo.ps-adatodoslosprocesosqueseencuentranenlamaquinavirtual,sulocalizacion,sun u-merodeidenticaciondetarea,yel numerodeidenticaciondetareadesupadre.quit saledelaconsolaunicamente.reset matatodos los procesos exceptolacon-solaeinicializaPVM, el cual estadispuestoparaadmitirotrotrabajo.spawncomienzaunaaplicacionPVMdeformainteractiva. Cuando se usa este comando hayquetener encuentaquenuestraaplicaci onnopuedetenerstandartinput.42 3. Parallel Virtual Machine: PVM4.3. FicherodeconguracionhostlePVMpuedeserinicializadomediantelainstruc-ci onpvmhostledondehostlees uncheroquedenelacon-guraci ondeloshostsquePVMcombinaparaformarlamaquinavirtual.El cherohostlecontienesimplementeunalis-tadenombresdehosts, unoencadalinea. Laslineas enblancosonignoradas ylas lineas queempiecencon#sonlineasdecomentarios.HayquetenerencuentaquelamaquinadesdelaqueinicialicemosPVMdebeestarenlalista.Los hosts queel usuarionodeseeanadir enlaconguraci on inicial, pero que si desee anadirposteriormente pueden ser especicados en elhostle comenzando la linea correspondiente porel smbolo&.43 3. Parallel Virtual Machine: PVM4.4. UsodelassubrutinasPVMControl deprocesoscall pvmfmytid(tid)tidIdenticadordetareadetipoentero.Valoresmenoresqueceroindicanunerror.Esta rutina hace que el procesose ejecute enPVMdesdesuprimerallamada.call pvmfexit(info)infoCodigodeestadoenterodevueltoporlaru-tina.Valoresmenoresqueceroindicanunerror.Larutinapvmfexitinformaal pvmdlocal quesuprocesohasidoabandonadoporPVM. Estarutinanomatalos procesos los cuales puedenseguirrealizandotareasporejemplodetipose-cuencial.Pvmfexitdebeserllamadaportodoslosproce-sosPVMantesdenalizar.44 3. Parallel Virtual Machine: PVMcall pvmfspawn(task,ag,where,ntask,tids,numt)task Cadena de caracteres que contiene el nombre delejecutable del procesoPVMa arrancar. La localizacionpordefectodeestosejecutableses:$HOME/pvm3/bin/$PVMARCH/nombreejecutable.agEnteroqueespecicalasopcionesspawn. Denidosenel chero$PVMROOT/include/fpvm3.hquede-beraincluirseentodoprogramaPVMmedianteel corres-pondienteinclude.Opcion Valor SignicadoPVMTASKDEFAULT 0 PVMpuedeelegircualquiermaquinaparaarrancarlatarea.PVMTASKHOST 1 whereespecicaunhostparticular.PVMTASKARCH 2 whereespecicauntipodearquitectura.PVMTASKDEBUG 4 arrancael procesobajodepurador.whereCadenadecaracteresqueespecicadondearran-carel procesoPVMolaclasedearquitectura.ntaskEnteroqueespecicael numerodecopiasdel eje-cutableaarrancar.tidsArraydeenterosdelongitudmnimantask.Enlasa-lida,el arraycontienelostidsdelosprocesosPVMarran-cadosporlallamadapvmfspawn.numt Entero que devuelve el numero actual de tareasarrancadas.45 3. Parallel Virtual Machine: PVMLoscodigosdeerrorson, entreotros:Nombre CausaposiblePvmBadParam -2 Darunargumentonovalido.PvmNoHost -6 El hostespecicadonoestaenlamaquinavirtual.PvmNoFile -7 El ejecutableespecicadopuedenoencontrarse.PvmNoMem -10 Fallalaasignaciondememoria.PvmSysErr -14 pvmdnoresponde.PvmOutOfRes -27 Fueraderecursos.call pvmfkill(tid, info)tidIdenticador de la tarea del proceso PVMquesevaamatar.infoCodigo de estado entero devuelto por larutina. Valores menores queceroindicanune-rror.Larutinapvmfkill mandaunasenal de termi-nacional procesoPVMidenticadopor tid. Sipvmfkill terminaconexito, infodevuelvecero.Si haocurridoalgunerrorentoncesdevuelveunenteromenorquecero.Pvmfkillnoestadisenadaparamataralprocesoque llama. Para matarse el mismo se llama apvmfexitseguidodestop.46 3. Parallel Virtual Machine: PVMInformaci oncall pvmfparent(tid)tidIdenticadordelatareadetipoenteroquedevuelvelarutinayquecorrespondealatareadel padredel procesoquelallama. Si el procesoquelallamanosehacreadoconpvmfspawn, entoncestid=PvmNoParent.call pvmfcong(nhost, narch, dtid, name, arch, speed, info)nhost Entero que devuelve el numero de hosts en lamaquinavirtual.narchEnteroquedevuelveel numerodediferentes for-matosdedatosquesepuedenusar.dtidEnteroque devuelve el identicador de tarea (ID)paraestehost.nameNombredel host(caracter).archTipodearquitecturadel host(caracter).speedEnteroquedevuelvelavelocidadrelativadel host.El valorpordefectoes1000.infoEnteroque devuelve uncodigode estado. Valoresmenoresqueceroindicanunerror.47 3. Parallel Virtual Machine: PVMPasodemensajesEl procesode envode unmensaje esta com-puestodetrespasosenPVM.1. Unbuer deenvodebeser inicializadopormediodeunallamadaapvmnitsend().2. El mensaje debe ser empaquetado en estebuerusandolasubrutinapvmfpack().3.El mensajecompletoseenvaaotroprocesollamandoapvmfsend()opvmfmcast()cuan-dosequiereenviaratodoslosprocesos.Serecibeunmensajeendospasos.1.Seinicializalarecepciondelmensajemedian-telallamadaapvmfrecv().2. Sedesempaquetacadaunodelos paquetesdelbuerqueserecibemediantelarutinapvm-funpack().48 3. Parallel Virtual Machine: PVMcall pvmnitsend(encoding, bud)encodingEnteroqueespecicael siguientees-quemadecodicaci ondemensajes:Valordecodicacion SignicadoPVMDATADEFAULT 0 UsodemaquinasheterogeneasPVMDATARAW 1 NocodicadoPVMDATAINPLACE 2 DatosdepositadosensusitiobudEnterodevueltoque contiene unidenti-cador del buer demensaje. Valores menoresqueceroindicanunerror.49 3. Parallel Virtual Machine: PVMcall pvmfpack(what, xp, nitem, stride, info)whatEnteroqueespecicael tipodedatosquesevaaempaquetar. Lasopcionesson:STRING 0 REAL4 4BYTE1 1 COMPLEX8 5INTEGER2 2 REAL8 6INTEGER4 3 COMPLEX16 7xpPunteroal principiodeunbloquedebytes.Puedesercualquiertipodedato,perodebeem-parejarsealcorrespondientetipodedatodesem-paquetado.nitemNumerototal deitemsparaempaquetar(noel numerodebytes).stride El stride a usar cuando empaquetamoslositems.infoCodigo de estado entero devuelto por larutina. Valoresmenoresqueceroindicanerror.Losmensajesdeberandesempaquetarseexacta-mentecomosonempaquetadosparaasegurarseunabuenarecepcion.50 3. Parallel Virtual Machine: PVMcall pvmfsend(tid, msgtag, info)tidIdenticador enterodetareadel procesodedestino.msgtagEtiquetademensajedetipoenterosu-ministradaporel usuario.msgtagdebeserma-yor oigual quecero. Estopermiteal programade usuario distinguir entre diferentes tipos demensajes.infoC odigo de estado entero devuelto por larutina. Valores menores queceroindicanune-rror.Larutinapvmfsendenvaunmensajealmacenadoenelbuer de envo activo al proceso PVM identicado por tid.msgtagseutilizaparaetiquetarelcontenidodelmensaje.La rutina pvmfsend es asncrona, es decir, la compu-tacionenel procesoemisor sereanudatanprontocomoelmensajesealmacenaensuvaparaelprocesoreceptor.51 3. Parallel Virtual Machine: PVMcall pvmfmcast(ntask, tids, msgtag, info)ntaskNumerodetareasalasqueselesenva.tids Array de longitudntaskque contiene losIDsdelastareasalasqueselesharael envo.msgtagEtiquetademensajedetipoenterosu-ministradaporel usuario.msgtagdebeserma-yor oigual quecero. Estopermiteal programade usuario distinguir entre diferentes tipos demensajes.infoCodigo de estado entero devuelto por larutina. Valores menores queceroindicanune-rror.Larutinapvmfmcast lanzaunmensajealmacenadoenel buer de envo activo a las tareas especicadas conel array tids. El contenidodel mensaje se distingue pormsgtag.pvmfmcastesasncronoyestabasadoenel arbol gene-rador de mnimopeso. Lacomputacionenlos procesosqueenvanserecobratanprontocomoel mensajeesal-macenadoenladirecciondelosprocesosreceptores.52 3. Parallel Virtual Machine: PVMcall pvmfrecv(tid, msgtag, bud)tid Identicador entero de tarea suministradoporel usuariodel procesoqueenva.msgtagEtiquetademensajedetipoenterosu-ministradapor el usuario. Estopermiteal pro-gramadeusuariodistinguir entrediferentes ti-posdemensajes.budEnteroquedevuelveel valor del identi-cador del nuevobuer receptor activo. Valoresmenoresqueceroindicanunerror.Larutinapvmfrecvbloqueaelprocesohastaquellegaunmensajeconlaetiquetamsgtagdesdetid.Un1enmsgtagotidasignacualquieretiquetademen-sajeoproceso.1.Sitid= 1ymsgtagsedeneporelusuario,entoncespvmfrecvaceptaraunmensajedel procesoquetieneunaasignacionmsgtag.2.Simsgtag= 1ytidsedeneporelusuario,entoncespvmfrecvaceptaracualquiermensajequeseenveporelprocesotid.3. Si tid= 1ymsgtag= 1, entoncespvmfrecvacep-taracualquiermensajedecualquierproceso.53 3. Parallel Virtual Machine: PVMcall pvmfunpack(what, xp, nitem, stride, info)whatEnteroqueespecicael tipodedatosquesevaaempaquetar. Lasopcionesson:STRING 0 REAL4 4BYTE1 1 COMPLEX8 5INTEGER2 2 REAL8 6INTEGER4 3 COMPLEX16 7xpPunteroal principiodeunbloquedebytes.Puedesercualquiertipodedato,perodebeem-parejarseal correspondientetipodedatoempa-quetado.nitemNumerototal deitemsparaempaquetar(noel numerodebytes).stride El stride a usar cuando desempaquetamoslositems.infoCodigo de estado entero devuelto por larutina. Valoresmenoresqueceroindicanerror.Larutinapvmfunpackdesempaquetaunarraydetiposdedatosdadosdesdeel buerreceptoractivo.54 3. Parallel Virtual Machine: PVMLafacilidadMAKEPara compilar estos programas utilizaremos la facilidadmake. El siguiente ejemplocorresponde al cherommaster1 querealizalacompilaciondelosdoscherosfuenteanterioresyseejecutamake-f mmaster1#Deniciondel directoriodondeestaranlosejecutables#XDIR=$(HOME)/pvm3/bin/$(PVMARCH)##Compiladordefortran, opcionesylibrerasF77=g77FFLAGS=-O-wFLIBS=-lfpvm3-lpvm3##PathabsolutodondeseencuentranlaslibrerasLFLAGS=-L$(PVMROOT)/lib/$(PVMARCH)#all: master1slave1#master1: master1.oshutdown.o$(F77)$(FFLAGS)-omaster1master1.oshutdown.o$(LFLAGS)$(FLIBS)mvmaster1$(XDIR)#master1.o: master1.f$(F77)$(FFLAGS)-cmaster1.f#shutdown.o: shutdown.f$(F77)$(FFLAGS)-cshutdown.f#slave1: slave1.f$(F77) $(FFLAGS) -oslave1slave1.f $(LFLAGS)$(FLIBS)mvslave1$(XDIR)55 3. Parallel Virtual Machine: PVMGruposdeprocesosdinamicosTodoprogramaqueuserutinas degrupodebeserlincadoconlalibreralibgpvm3.acall pvmfjoingroup(grupo, inum)grupoNombredel grupo.inumNumerodegrupodevueltoporlarutina.Lasubrutinapvmfjoingroupincorporalatareaquehacelallamadaal grupollamadogrupoydevuelvesunumerodentrodel grupo. Si ocurrealgunerror, inumseranegativo. El numerodegrupocomienzaenceroyvaincrementandoseenunaunidadcuandootrastareasseanadenalgrupo.56 3. Parallel Virtual Machine: PVMcall pvmvgroup(grupo, info)grupoNombredel grupo.infoC odigodeestadodevueltoporlarutina.La subrutina pvmvgroup elimina a la tarea quehacelallamadadel grupollamadogrupo.call pvmfgettid(grupo, inum, tid)grupoNombredel grupo.inumN umerodegrupo.tidN umerodeidenticaci ondetareadevuelto.Larutinapvmfgettiddael tidde unprocesoPVMidenticadopor el grupoysunumerodegrupo. Si ocurrealg unerror, tidseranegativo.57 3. Parallel Virtual Machine: PVMcall pvmfbarrier(grupo, count, info)grupoNombredel grupo.count Entero que especica el numero de miem-brosdel grupoquedebenllamarapvmfbarrierantesdecontinuar.infoCodigodeestadodevueltoporlarutina.Larutinapvmfbarrier bloqueaal procesoquehacelallamadahastaquecountmiembrosdelgrupohanllamadoapvmfbarrier,produciendo-se, entonces, unasincronizacion.call pvmfbcast(grupo, msgtag, info)grupoNombredel grupo.msgtagEtiquetademensaje.infoCodigodeestadodevueltoporlarutina.Larutinapvmfbcast envael mensaje(empa-quetadopreviamente)atodaslastareasdelgru-poespecicado, exceptoaellamisma.58 3. Parallel Virtual Machine: PVMcall pvmfreduce(func, data, count, datatype, msgtag, grupo, root, info)funcFuncionquedenelaoperacionrealizadasobrelosdatos globales. Hay unaserie de funciones predenidas:PvmMax,PvmMin,PvmSumyPvmProduct,peroca-dausuariopuededenirselaspropias.dataPunteroal iniciodeunconjuntodedatos locales.Enel output, el arraydatadel procesorootsesobrees-cribiraconelresultadodelaoperaciondereduccion.Paralosotrosprocesos,elarraydataeneloutputpuedediferirdel valorinicial.countEnteroqueespecicael numerodeelementosdeltipodatatypeenel arrayespecicadopordata. El valordecount debeser el mismoentodos los miembros delgrupo.msgtagEtiquetademensaje.grupoNombredel grupo.root Numerodel miembrodel grupoque almacenaraelresultado.infoCodigodeestadodevueltoporlarutina.La rutina pvmfbcast realiza operaciones globales talescomo maximo, mnimo, suma u otras denidas por elusuario,sobre los datossuministradospor todos los miem-brosdel grupo. Todoslosmiembrosdel grupodebenlla-marapvmfreduce,perosoloel miembroidenticadoco-morootalmacenaelresultado.Silosdemasprocesosde-benconoceresteresultadodebemandarseexplcitamentemediantepasodemensajes.59 4. Multiplicacionesmatriciales4. MULTIPLICACIONESMATRICIALES2.1. Multiplicacionmatriz-vector.2.2. Multiplicacionmatriz-matriz.2.3. Unalgoritmomatriz-matrizporbloques.60 4. MultiplicacionesmatricialesSeaAunamatriz deordenm nyxunvec-tordedimensi onn. Estableceremoslasiguientenotaci on:__a11a12 a1na21a22 a2n.........am1am2 amn__ a1 a2......am a1a2 anEsdecir, representamosporaiel vectorlai deA, i = 1, 2, . . . , majel vectorcolumnaj deA, j= 1, 2, . . . , n61 4. Multiplicacionesmatriciales2.1. Multiplicacionmatriz-vectorTenemosdosformasdeverel productoAx1. Productointernodedosvectores:Ax =__n

k=1a1kxkn

k=1a2kxk...n

k=1amkxk__=__a1 xa2 x...am x__,ai x =n

k=1aikxk2. Combinacioneslineales:Ax =x1__a11a21...am1__+x2__a12a22...am2__++xn__a1na2n...amn__=n

i=1xiai.62 4. MultiplicacionesmatricialesAlgoritmoij: (basadoenel productointerno)Fori = 1tomForj= 1tonyi=yi +aijxjAlgoritmoji: (basadoencomb. lineales)Forj= 1tonFori = 1tomyi=yi +aijxj63 4. MultiplicacionesmatricialesMatriz-vectorenparaleloAlgoritmobasadoencomb. linealesSupongamos p=n. Consideremos el siguientealmacenamientodelosdatosenlosproc.:x1a1x2a2 xnanP1P2PnTodoslosproductosxiaisonrealizadosconunperfectogradodeparalelismo.Sobre memoria distribuida la gura indica quelosdatosestanenlasmemoriaslocales.Sobrememoriacompartidalaguradebeinter-pretarsecomoasignaciondetareas.Enmemoriadistribuida, lasumadelosresulta-dosdecadaprocesadorsepuederealizarconelalgoritmodefan-inaplicadosobrevectores.64 4. MultiplicacionesmatricialesMatriz-vectorenparaleloAlgoritmobasadoenel prod. internoSupongamos p=m. Consideremos el siguientealmacenamientodelosdatosenlosproc.:a1x a2xamxP1P2PmCadaprocesadorrealizaunproductointernoconunperfectogradodeparalelismo.No hay que aplicar fan-in, ni transferencia dedatos.Lasincronizaci ons oloesnecesariaalnaldeloscalculos.65 4. MultiplicacionesmatricialesPeronormalmenteny/omseranconsiderable-mentemayoresquep.Solucion:Asignaracadaprocesadoralgunas-lasocolumnas.Enuncasoideal,parael algoritmobasadoenelproductointerno, pdebedividir am, ymplasseranasignadas acadaprocesador. Matemati-camente,Ax =__A1A2...Ap__x =__A1xA2x...Apx__,donde Aicontienemplas de A. Si Aiyxsonasignadosal procesador i, entonceslosproduc-tosA1x, A2x, . . . , Apxpuedenser realizadosconunperfectogradodeparalelismo.Si p nodivide a m(on), entonces se intentadistribuirlaslas(ocolumnas)entrelosproce-sadorestantomasproporcionalmentecomoseaposible.66 4. Multiplicacionesmatriciales2.2. Multiplicacionmatriz-matrizSeanAyBdosmatricesdeordenmnyn qrespectivamente. SeguiremosdenotandoporA Bla aibicolumna aibiEl productoABpuedeser vistocomoq multi-plicacionesmatriz-vectorAbi, i = 1, 2, . . . , q.Esdecir,AB=_Ab1Ab2 Abq_Podremosutilizar cualquieradelosdosalgorit-mosanterioresprestandoatencional almacena-mientodeloselementos.67 4. MultiplicacionesmatricialesMatriz-matrizenparaleloAlgoritmobasadoencomb. linealesSupongamos p=n. El almacenamientoseraelsiguienteP1P2 PnParacalcular Ab1b11a1b21a2 bn1anParacalcular Ab2b12a1b22a2 bn2an

Paracalcular Abqb1qa1b2qa2 bnqanAlmacenamiento b1, a1b2, a2 bn, anCadaprocesador obtendraunamatrizdeordenmq;todasellasdebensersumadasparaobte-nerel resultadonal,porejemploconel algorit-modefan-inaplicadoamatrices.68 4. MultiplicacionesmatricialesMatriz-matrizenparaleloAlgoritmobasadoenel prod. interiorSupongamosp=m. El almacenamientoseraelsiguienteP1P2 PmParacalcular Ab1a1b1a2b1 amb1Paracalcular Ab2a1b2a2b2 amb2

Paracalcular Abqa1bqa2bq ambqAlmacenamiento a1, B a2, Bam, BEnestecaso, el resultadoestaalmacenadodemaneraquecadaprocesadorposeeunadelasmlasdelamatrizproductoAB.Todoestotambienes validosi disponemos demenos procesadores que el numero de las ycolumnas.69 4. MultiplicacionesmatricialesConsideraremos ahora algoritmos paralelos ba-sadosenparticionesdelasmatricesAyB. Su-pongamosentoncesqueAyBestanparticiona-dasdelaforma:C=AB=__A11A12 A1rA21A22 A2r.........As1As2 Asr____B11B12 B1tB21B22 B2t.........Br1Br2 Brt__=_r

k=1AikBkj_Porejemplo, si p=st, el numerodebloquesenC, entoncesestos st bloquespuedenser calcu-ladosenparaleloteniendoencuentaunabuenaasignaciondelosbloquesdeAyBalosproce-sadores.Casos especiales deestesoncuandos=1, esdecir cuandoAestaparticionadaengrupos decolumnas, ycuandot =1, es decir, cuandoBestaparticionadaengruposdelas.70 4. MultiplicacionesmatricialesOtrocasoseracuandor=1, esdecir, cuandoAestaparticionadaensbloques formados porgrupos de las y Besta particionada en t bloquesformadosporgruposdecolumnas.C=AB=__A11A21...As1___B11B12 B1t ==__A11B11A11B12 A11B1tA21B11A21B12 A21B1t.........As1B11As1B12 As1B1t__.Si usamos p=st procesadores conlos bloquesde A y Balmacenados tal y como indica la propiaestructuradelosbloquesdelamatrizresultadoC, tenemos quecadaunodeestos bloques re-sultadopuedensercalculadosenparaleloenunprocesador.71 4. Multiplicacionesmatriciales2.3. Unalgoritmomatriz-matrizporbloquesConsideremos lamatrices Ay Bparticionadasenr rbloquesdeidenticotamano, esdecir,A =__A00A01 A0,r1A10A11 A1,r1.........Ar1,0Ar1,1 Ar1,r1__,B=__B00B01 B0,r1B10B11 B1,r1.........Br1,0Br1,1 Br1,r1__.Supongamos que disponemos de una malla abier-tader rprocesadoresPs0Ps1 Pss.........P10P11 P1sP00P01 P0ss =r 172 4. MultiplicacionesmatricialesInicialmentePijcontieneAijyBij.Cadaprocesadorcalcu-larael bloquecorrespondienteCijdel productoC=AB.Internamenteestosbloquestendranel mismonombre, esdecir, AijB Bij(CijAlgoritmoCadaprocesador Pijestaraidenticadopor sula(=i)ysucolumna(=j).Parak= 0, 1, . . . , r 1Si columna=mod(la+k,r):Mandar,atodoslosprocesadoresdemi la.(= ( +, BSi no:Recibir,del procesador queenvaenmi layalmacenarloen,T /1.(= ( +,T /1 BHacer una rotacionde los bloques co-lumnadeB, esdecir, PijmandasubloqueBaPi1,j. El procesoP0jmandasubloqueBaPr1,j.DespuesdeestasriteracionesCcontieneelproductoABdistribuidoentre los procesadores y los bloquesde Bhan sufrido una rotacion entre las columnas,volviendoaestar almacenadoscomoal iniciodel al-goritmo.73 4. MultiplicacionesmatricialesA22B20A22B21A22B22A11B10A11B11A11B12A00B00A00B01A00B02A20B20A21B21A22B22A10B10A11B11A12B12A00B00A01B01A02B02TTTTTTTTTEE ''A20B00A20B01A20B02A12B20A12B21A12B22A01B10A01B11A01B12A20B00A21B01A22B02A10B20A11B21A12B22A00B10A01B11A02B12TTTTTTTTT' EE'74 4. MultiplicacionesmatricialesA21B10A21B11A21B12A10B00A10B01A10B02A02B20A02B21A02B22A20B10A21B11A22B12A10B00A11B01A12B02A00B20A01B21A02B22TTTTTTTTT'EE 'C20C21C22C10C11C12C00C01C02A20B20A21B21A22B22A10B10A11B11A12B12A00B00A01B01A02B0275 5. Metodosdirectosderesoluciondesistemaslineales5. METODOSDIRECTOSDERESOLUCIONDESISTEMASLINEALES5.1MetodosDirectos.5.2DescomposicionLU.76 5. Metodosdirectosderesoluciondesistemaslineales5.1MetodosdirectosConsideremosel sistemalinealAx =bdonde A/ninvertible y bes unvector co-lumnadetama non.(1)Metodosdirectos:Soluci on exacta salvo errores de redon-deo.N umerodeoperacionespredeterminado.(2)Metodositerativos:Soluci onaproximada.Menor importanciade los errores de re-dondeo.77 5. Metodosdirectosderesoluciondesistemaslineales5.2Descomposici onLUDadaunamatrizA /ninvertible.Objetivo:EscribirAcomoA =LU,dondeLesunamatriztriangularinferioryUesunamatriztriangularsuperior.Uso:ResolverunsistemadeecuacioneslinealesdelaformaAx =b, A /n.AlgoritmoLU(kij)Parak= 1, 2, . . . , n 1Parai =k +1, . . . , naik=aikakkParaj=k +1, . . . , naij=aij aikakj78 5. MetodosdirectosderesoluciondesistemaslinealesC omo:Si A =LU, podemosescribirAx =b LUx =b.Si llamamosUx =y,entoncesobtenemosel sistemaLy=b.Luegoel sistemaAx=bpodraser resueltoendospasos:Resolver el sistema triangular inferiorLy=b.Unavezconocidoel valor dey, resolver elsistematriangularsuperiorUx =y.92 6. Metodositerativosclasicos6. METODOSITERATIVOSCLASICOS6.1Introduccion.6.2Normasvectorialesymatriciales.6.3Metodos iterativos secuenciales. Planteamien-toyconvergencia.6.4Metodositerativossecuencialesclasicos.6.5Paralelizaciondelosmetodositerativoscla-sicos.93 6. Metodositerativosclasicos6.1. Introducci onAx =b(1)Metodosdirectos:Soluci on exacta salvo errores de redon-deo.N umerodeoperacionespredeterminado.(2)Metodositerativos:Soluci onaproximada.Menor importanciade los errores de re-dondeo.94 6. Metodositerativosclasicos6.2. NormasvectorialesymatricialesDenicionSeaV=Kev. Diremosque|| :VResunanormavectorial, si paratodox, y V(i) |x| 0.(ii) |x| = 0, si ysolosi, x =0.(iii) |cx| = [c[|x|, c K.(iv) |x +y| |x| +|y|.95 6. MetodositerativosclasicosEjemplos:EnRn.Laslpnormas, dadox = (x1, x2, . . . , xn)t:|x|p=__n

i=1[xi[p__1p, p 1.Lanormainnito, dadox,|x|=max1in[xi[.Lasnormasanterioressonmon otonas:Si [v[ [w[, entonces|v| |w|.96 6. MetodositerativosclasicosDenicion| | : /n Resunanormamatricial,si dadasAyBde/n:(i) |A| 0.(ii) |A| = 0, si ysolosi, A =O.(iii) |cA| = [c[|A|, c K.(iv) |A+B| |A| +|B|.(v) |AB| |A||B|.97 6. MetodositerativosclasicosDenicionSea||unanormavectorial sobreKn. Sella-ma norma matricial inducida por dicha normavectorial a:|A| =max|x|=1|Ax|.Entonces|A| =max|x|=1|Ax| = maxx,=0|Ax||x|.98 6. MetodositerativosclasicosObservaciones:Todanormamatricial inducidapor unanormavectorial escompatible.Si ||esunanormacompatible, entonces|I| = 1Ejemplo:Lanormamatricial innito, inducidapor lanormavectorial innito|A|=max1in__n

j=1[aij[__,si A = [aij]1i,jn.99 6. MetodositerativosclasicosDenicionSeaAunamatrizcuadradadetamanon n,(A) = maxi[i[ : iesvalorpropiodeA.TeoremaSi || es una norma matricial y A /n, entoncessesatisface (A) |A|.100 6. Metodositerativosclasicos6.3. Metodositerativossecuenciales.PlanteamientoyConvergenciaDenicionSeaV=Kevysea||unanormavectorial so-breV .Decimosque x(k)k1convergealvectorx V conrespectoalanorma||, si ys olosi,|x(k)x|k1tiende a 0 cuando k tiende ainnito.101 6. MetodositerativosclasicosAx =b, A /nA =MN, M, N /n, MinvertibleMx =Nx +biterandoestaexpresi onMx(k+1)=Nx(k)+b, k= 0, 1, 2, . . .oequivalentementex(k+1)=M1Nx(k)+M1b, k= 0, 1, 2, . . .102 6. MetodositerativosclasicosLa convergencia de los metodos iterativos sepuedeestudiaranalizandoel error. As:=M1N +M1b,Sie(k+1)=x(k+1),entoncese(k+1)=_M1Nx(k)+M1b__M1N +M1b_= M1N(x(k))= M1Ne(k)

=_M1N_k+1e(0)CONVERGENCIAsi ysolosilmk_M1N_k=O103 6. Metodositerativosclasicosx(k+1)=M1Nx(k)+M1bk= 0, 1, 2, . . .esconvergente(M1N)< 1(A =MNconvergente)104 6. Metodositerativosclasicos6.4. MetodositerativossecuencialesclasicosMETODODEJACOBIAx =bA =D L UDx = (L +U)x +bx(k+1)=D1(L +U)x(k)+D1b,k= 0, 1, . . . .x(k+1)i= n

j=1,j,=iaijaiix(k)j+biaii,1 i n, k= 0, 1, . . . .105 6. MetodositerativosclasicosMETODODEJACOBIx(k+1)1= a12a11x(k)2a13a11x(k)3 a1na11x(k)n+b1a11x(k+1)2= a21a22x(k)1a23a22x(k)3 a2na22x(k)n+b2a22......x(k+1)n= an1annx(k)1an2annx(k)2an3annx(k)3 an,n1annx(k)n1+bnannEJEMPLO10x1 + x2 + x3 = 12x1 + 10x2 + x3 = 12x1 + x2 + 10x3 = 12x(k+1)1= 110x(k)2110x(k)3+1210x(k+1)2= 110x(k)1110x(k)3+1210x(k+1)3= 110x(k)1110x(k)2+1210Iteracion JACOBI Error[[x(m)x[[20 0 0 0 1.73211 1.2 1.2 1.2 0.34642 0.96 0.96 0.96 0.06933 1.008 1.008 1.008 0.01394 0.9984 0.9984 0.9984 0.00285 1.00032 1.00032 1.00032 0.000556 0.999936 0.999936 0.999936 0.00011106 6. MetodositerativosclasicosMETODODEGAUSSSEIDELAx =bA =D L U(D L)x =Ux +bx(k+1)= (D L)1Ux(k)+(D L)1b,k= 0, 1, . . . .x(k+1)i= i1

j=1aijaiix(k+1)jn

j=i+1aijaiix(k)j+biaii,1 i n, k= 0, 1, . . . .107 6. MetodositerativosclasicosMETODODEGAUSSSEIDELx(k+1)1= a12a11x(k)2a13a11x(k)3 a1na11x(k)n+b1a11x(k+1)2= a21a22x(k+1)1a23a22x(k)3 a2na22x(k)n+b2a22x(k+1)3= a21a33x(k+1)1a22a33x(k+1)2 a2na33x(k)n+b3a33......x(k+1)n= an1annx(k+1)1an2annx(k+1)2an3annx(k+1)3 an,n1annx(k+1)n1+bnannEJEMPLO10x1 + x2 + x3 = 12x1 + 10x2 + x3 = 12x1 + x2 + 10x3 = 12x(k+1)1= 110x(k)2110x(k)3+1210x(k+1)2= 110x(k+1)1110x(k)3+1210x(k+1)3= 110x(k+1)1110x(k+1)2+1210Iteracion GAUSS-SEIDEL Error[[x(m)x[[20 0 0 0 1.73211 1.2 1.08 0.972 0.21722 0.9948 1.0033 1.00019 0.00623 0.99965 1.000016 1.000033 0.00035108 6. MetodositerativosclasicosDenicion SeaA = [aij]1i,jnunamatrizrealdetamanon n. Sediceque1. Aesdiagonal dominantesi[aii[ n

j=1,j,=iaij, i = 1, 2, . . . , n. (1)2. Aesestrictamentediagonal dominantesi lasndesigualdades(1)sonestrictas.TeoremaSiAesestrictamentediagonaldomi-nante, entonces, paracualquierelecciondex(0)losmetodosdeJacobiyGauss-Seidelconvergenalasoluciondel sistemalineal Ax =b.109 6. Metodositerativosclasicos6.5. ParalelizaciondelosmetodositerativosclasicosParalelizaci ondel metododeJacobi.Paralelizaci ondelmetododeJacobiporblo-ques.ProblemamodelodelaecuaciondeLaplace.110 6. MetodositerativosclasicosParalelizaci ondel metododeJacobiSeael sistemaAx=bdeordenn, ysuponga-mosquedisponemosdenprocesadores, Pi, i =1, 2, . . . , n. Seax(0)unvectorinicial yk= 0.Enel procesadorPirealizar:1Recibir el vector x(k)de un procesador central.2Calcularx(k+1)i= n

j=1,j,=iaijaiix(k)j+biaii.3Mandar x(k+1)ial procesador central el cualpuedecomprobarel criteriodeparada.4Hacerk k +1.5Ira1.111 6. MetodositerativosclasicosParalelizaci ondel metododeJacobi porbloquesConsideremosladivisi ondeAenbloquesA =__A11A12 A1pA21A22 A2p.........Ap1Ap2 App__conlos bloques Aiidetama noninieinver-tibles. Supongamoslosvectoresxybdivididosenbloquesdetama noni.x =__x1x2...xp__, b =__b1b2...bp__.Podemos construir unalgoritmoiterativopararesolverelsistemaAx =bdelasiguienteforma:Parak= 0, 1, 2, . . .ResolverAiix(k+1)i=

j,=iAijx(k)j+bi,i = 1, 2, . . . , p.112 6. MetodositerativosclasicosAlgoritmoparalelodeJacobi porbloques.Enparaleloel procesadorPiobtieneAii=LiUiEnparalelo, Picalculad(0)i=

j,=iAijx(0)j+biParak= 0, 1, 2, . . . hastaconvergenciaEnparalelo, PiresuelveLiy(k+1)i=d(k)iEnparalelo, PiresuelveUix(k+1)i=y(k+1)iSi Testdeconvergencia=VerdaderoEntoncesACABAREnparalelo, Pidifundex(k+1)iEnparalelo, Picalculad(k+1)i=

j,=iAijx(k+1)j+bi113 6. MetodositerativosclasicosEjemplo__4 1 0 1 0 0 0 0 01 4 1 0 1 0 0 0 00 1 4 0 0 1 0 0 01 0 0 4 1 0 1 0 00 1 0 1 4 1 0 1 00 0 1 0 1 4 0 0 10 0 0 1 0 0 4 1 00 0 0 0 1 0 1 4 10 0 0 0 0 1 0 1 4____x1x2x3x4x5x6x7x8x9__=__10001001000100200100200___A11 A12 A13A21 A22 A23A31 A32 A33__x1x2x3_=_b1b2b3_x(0)= (1, 1, 1, 1, 1, 1, 1, 1, 1)t Enparaleloel procesadorPi obtieneAii=LiUiP1:_4 1 01 4 10 1 4_=_1 0 00,250 1 00 0,267 1__4 1 00 3,750 10 0 3,733_P2:_4 1 01 4 10 1 4_=_1 0 00,250 1 00 0,267 1__4 1 00 3,750 10 0 3,733_P3:_4 1 01 4 10 1 4_=_1 0 00,250 1 00 0,267 1__4 1 00 3,750 10 0 3,733_114 6. Metodositerativosclasicos Enparalelo, Pi calculad(0)i=

j,=iAijx(0)j+biP1:d(0)1= A12x(0)2A13x(0)3+b1= _1 0 00 1 00 0 1__x4x5x6_(0)_0 0 00 0 00 0 0__x7x8x9_(0)+_b1b2b3_=_1011101_P2:d(0)2= A21x(0)1A23x(0)3+b2= _1 0 00 1 00 0 1__x1x2x3_(0)_1 0 00 1 00 0 1__x7x8x9_(0)+_b4b5b6_=_1022102_P3:d(0)3= A31x(0)1A32x(0)2+b3= _0 0 00 0 00 0 0__x1x2x3_(0)_1 0 00 1 00 0 1__x4x5x6_(0)+_b7b8b9_=_201101201_115 6. Metodositerativosclasicos Enparalelo, Pi resuelveLiy(1)i=d(0)iP1:_1 0 00,250 1 00 0,267 1__y1y2y3_(1)=_1011101_=_10126,25108_P2:_1 0 00,250 1 00 0,267 1__y4y5y6_(1)=_1022102_=_10227,5109,33_P3:_1 0 00,250 1 00 0,267 1__y7y8y9_(1)=_201101201_=_201151,25241,33_ Enparalelo, Pi resuelveUix(1)i=y(1)iP1:_4 1 00 3,750 10 0 3,733__x1x2x3_(1)=_10126,25108_=_28,9314,7128,93_P2:_4 1 00 3,750 10 0 3,733__x4x5x6_(1)=_20127,5109,33_=_29,2915,1429,29_P3:_4 1 00 3,750 10 0 3,733__x7x8x9_(1)=_201151,25241,33_=_64,6457,5764,64_ Si Testdeconvergencia=Verdaderonorma1= 69,57 +70,71 +183,86 = 324,14EntoncesACABAR Enparalelo, Pi difundex(k+1)i116 6. Metodositerativosclasicos Enparalelo, Pi calculad(k+1)i=

j,=iAijx(k+1)j+biP1:d(1)1= A12x(1)2A13x(1)3+b1=_129,2915,14129,29_P2:d(1)2= A21x(1)1A23x(1)3+b2=_193,5772,29193,57_P3:d(1)3= A31x(1)1A32x(1)2+b3=_229,29115,14229,29_117 6. MetodositerativosclasicosIter.normax1x2x3x4x5x6x7x8x901111111111324.14285728.9314.7128.9329.2915.1429.2964.6457.5764.642148.06122538.0222.838.0260.4748.3160.4773.7365.6573.73392.889212849.3036.7349.3066.8255.5266.8285.0179.5885.01443.308204951.6339.6951.6375.2566.7075.2587.3482.5587.34527.507407654.8444.0954.8477.0169.0777.0190.5586.9590.55612.887478955.5145.0255.5179.4772.5079.4791.2287.8891.2278.209063856.4646.3556.4679.9973.2279.9992.1789.2192.1783.85033556.6546.6356.6580.7274.2580.7292.3789.4992.3792.454198856.9447.0356.9480.8774.4780.8792.6589.8992.65101.15139957.0047.1257.0081.0974.7881.0992.7190.0992.71. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .. . .370.000000157.1447.3257.1481.2575.0081.2592.8690.1892.86118 6. MetodositerativosclasicosProblemamodelodelaecuaci ondeLaplace2u =uxx +uyy= 0, (x, y) u(x, y) =u, (x, y) 119 6. MetodositerativosclasicosAplicacion1. Obtenciondel campoelectricoSedeseaconocerelcampoelectricoenlaregioncomprendidaentredoselectrodosdegeometrasencilla, tal ycomoindicalagura:Las condiciones de contorno para nuestro ca-so particular, estan estipuladas por el poten-cial aplicadoa los electrodos. Por tanto, parael ejemplode la gura enel que se ha consi-deradounmalladodetama no10, enel calculote oricosesupondraunasupercielmiteconpo-tencialesV0,j=Vi,0=Vi,10=Vfuente, V10,j= 0V120 6. MetodositerativosclasicosAplicacion2. Distribuciondel potencial enuncondensadorUncondensadorestacompuestopordosplacasdeseccioncuadradaseparadasporunelementoaislantetal ycomomuestralagura:La diferencia de potencial entre las placas provo-caqueelpotencialenelelementoaislantevare.El objetivoescalcular estadistribuciondel po-tencial.121 6. MetodositerativosclasicosAplicacion3. CalculodelatemperaturadeunaplacaSupongamosqueunaplacadeundeterminadomaterial s olidodegeometrasencillaseleaplicaundeterminadocalorenlosextremos.Sedeseacalcular cual sera la temperatura en cualquierpuntointerior.122 6. MetodositerativosclasicosDiscretizaciondelaecuaci ondeLaplaceenundominiodegeometrasencilla0 11 u10 u20...uN0u1,N+1u2,N+1...uN,N+1uN+1,1

uN+1,Nu01u11

u0N

u1Nchu21

u2NTuN1

...uNN...Si u(xi, yj) =uij2uijui+1,j+ui1,j+ui,j1+ui,j+14uijh2= 0i, j= 1, 2, . . . N123 6. MetodositerativosclasicosAx =bx = (u11. . . u1N. . . uN1. . . uNN)tb = valoresconocidosdeuenlafronteraA =__B II B I............... II B__ /N2B=__4 11 4 1............... 11 4__ /N124 6. MetodositerativosclasicosMETODODEJACOBIM=__444...4__, N=__H II H I............... II H__;dondelamatrizHdetamanoNNesH=__0 11 0 1............... 11 0__.Laiteracioncorrespondienteax(k+1)=M1Nx(k)+M1b, k= 0, 1, 2, . . . ,resultaseru(k+1)ij=14_u(k)i+1,j+u(k)i1,j+u(k)i,j+1 +u(k)i,j1_,i, j= 1, 2, . . . , N, k= 0, 1, 2, . . . .125 6. MetodositerativosclasicosDEPENDENCIASjui1,jjuijjui+1,jjui,j+1jui,j1126 6. MetodositerativosclasicosDistribuci ondedatosenunmallaSupongamosquehaypprocesadoresconectadoscontopologademalla. Por comodidad, consi-deramosqueN2=rp. Ademasconsideraremosquelasconexionesdelamallasonbidirecciona-les, esdecir, quedosprocesadorescontguossecomunicanenambasdirecciones.u11u12u21u22u13u14u23u24u15u16u25u26u31u32u41u42u33u34u43u44u35u36u45u46u51u52u61u62u53u54u63u64u55u56u65u66'''EEEEEE'''c c cT T TT T Tc c cT T Tc c cT T Tc c cE E ' 'E E ' 'E E ' '127 6. MetodositerativosclasicosEncada iteraci onel procesador Pijrealiza lassiguientestareas:1. Calculas2=rinc ognitas.2. Transmite4sinc ognitas(sincognitasacadaprocesadorvecino).3. Recibe4s inc ognitas (s incognitas decadaprocesadorvecino).ukl uk,l+s......uk+s,l uk+s,l+s' E E 'cTTcProcesadorPij128 6. MetodositerativosclasicosDistribuci ondedatosenunanillobidireccionalSupongamosquehaypprocesadoresconectadoscontopologadeanillobidireccional.Porcomo-didad, consideramosqueN=rp.129 6. MetodositerativosclasicosEncadaiteraci onel procesador Pi, i=1, . . . , prealizalassiguientestareas:1. CalculaN rinc ognitas.2. Transmite2 Ninc ognitas(Nincognitasacadaprocesadorvecino).3. Recibe2Ninc ognitas(Nincognitasdeca-daprocesadorvecino).130 6. MetodositerativosclasicosEjemploConsideremos el casoparticular p=3, r =2,N= 6.Como cada procesador necesita actualizar un to-tal deN r=6incognitas,estasestaranalma-cenadas,independientementedelprocesador,enunarrayx(1 :N, 1 :r).x(1 :N, 1 :r) =__x11x12x21x22x31x32x41x42x51x52x61x62__Ademas, cadaprocesador necesitaconocer losvaloresfronterasuperioreseinferioresqueseal-macenaranenlasposicionesx(0, 1:r)yx(N+1, 1: r). Por ultimo, debe almacenar los valo-res del vecinoizquierdoyderecho(encasodeser unprocesador extremo, estos valores seranfrontera).131 6. MetodositerativosclasicosContodoello,elalmacenamientonecesarioparacadaprocesadorsera:x(0 :N+1, 0 :r +1) =__x00x01x02x03x10x11x12x13x20x21x22x23x30x31x32x33x40x41x42x43x50x51x52x53x60x61x62x63x70x71x72x73__Resolveremos el problema de la obtencion delcampoelectricoanteriorconlosvaloresfronte-ra considerados utilizandoesta distribuciondedatosyutilizandoel metododeJacobi. El vec-torinicial serainicializadoa1s.132 6. MetodositerativosclasicosFasedeinicializaci onP1:__100,0 100,0 100,0 100,0100,0 1,0 1,0 1,0100,0 1,0 1,0 1,0100,0 1,0 1,0 1,0100,0 1,0 1,0 1,0100,0 1,0 1,0 1,0100,0 1,0 1,0 1,00,0 0,0 0,0 0,0__P2:__100,0 100,0 100,0 100,01,0 1,0 1,0 1,01,0 1,0 1,0 1,01,0 1,0 1,0 1,01,0 1,0 1,0 1,01,0 1,0 1,0 1,01,0 1,0 1,0 1,00,0 0,0 0,0 0,0__P3:__100,0 100,0 100,0 100,01,0 1,0 1,0 100,01,0 1,0 1,0 100,01,0 1,0 1,0 100,01,0 1,0 1,0 100,01,0 1,0 1,0 100,01,0 1,0 1,0 100,00,0 0,0 0,0 0,0__133 6. MetodositerativosclasicosTodoslosprocesadorescopianlaporciondexenxold:xold(1 : 6, 1 : 2) =x(1 : 6, 1 : 2)Todos los procesadores actualizan su por-ci ondexapartirdexold:xi,j=14_xoldi1,j+xoldi+1,j+xoldi,j1 +xoldi,j+1_,i = 1, 2, . . . , 6, j= 1, 2obteniendo:134 6. MetodositerativosclasicosP1:x =__100,0 100,00 100,00 100,0100,0 50,50 25,75 1,0100,0 25,75 1,00 1,0100,0 25,75 1,00 1,0100,0 25,75 1,00 1,0100,0 25,75 1,00 1,0100,0 25,50 0,75 1,00,0 0,00 0,0 0,0__P2:x =__100,0 100,00 100,00 100,01,0 25,75 25,75 1,01,0 1,00 1,00 1,01,0 1,00 1,00 1,01,0 1,00 1,00 1,01,0 1,00 1,00 1,01,0 0,75 0,75 1,00,0 0,00 0,00 0,0__P3:x =__100,0 100,00 100,0 100,01,0 25,75 50,50 100,01,0 1,00 25,75 100,01,0 1,00 25,75 100,01,0 1,00 25,75 100,01,0 1,00 25,75 100,01,0 0,75 25,50 100,00,0 0,00 0,00 0,0__ Cadaprocesadorcalculasuporciondenormaentrexyxold:

1i6,1j2(xoldij xij)2.P1: 6113,375, P2: 1225,25, P3: 6113,375.135 6. MetodositerativosclasicosLlamarapvmfreduceparasumarlasnormasparcialesycalcularsurazcuadradaenP1:norma = 115,982757.Comunicacionesentrevecinos: Enviar delavariablexyrecibirenxold.Siguienteiteraci on: Todos los procesadorescopianlaporci ondexenxold: xold(1 : 6, 1 :2) =x(1 : 6, 1 : 2). Con todo esto, xoldquedara:P1:xold =__100,0 100,00 100,00 100,00100,0 50,50 25,75 25,75100,0 25,75 1,00 1,00100,0 25,75 1,00 1,00100,0 25,75 1,00 1,00100,0 25,75 1,00 1,00100,0 25,50 0,75 0,750,0 0,00 0,0 0,00__P2:xold =__100,00 100,00 100,00 100,0025,75 25,75 25,75 25,751,00 1,00 1,00 1,001,00 1,00 1,00 1,001,00 1,00 1,00 1,001,00 1,00 1,00 1,000,75 0,75 0,75 0,750,00 0,00 0,00 0,00__P3:xold =__100,00 100,00 100,0 100,025,75 25,75 50,50 100,01,00 1,00 25,75 100,01,00 1,00 25,75 100,01,00 1,00 25,75 100,01,00 1,00 25,75 100,00,75 0,75 25,50 100,00,00 0,00 0,00 0,00__136 6. MetodositerativosclasicosResumendelassiguientesiteracionesIter. NormaP1 NormaP2 NormaP3 Norma1 6113.375 1225.250 6113.375 115.9822 1641.64 382.890 1641.64 60.5493 760.904 324.477 760.904 42.9684 427.656 306.214 427.656 34.0815 267.677 291.080 267.677 28.74710 60.018 131.883 60.018 15.87115 20.052 47.321 20.052 9.35020 7.021 16.683 7.021 5.54325 2.472 5.878 2.472 3.29030 0.871 2.071 0.871 1.95340 0.108 0.257 0.108 0.68850 0.013 0.031 0.013 0.24260 0.001 0.003 0.001 0.08581 2E-05 4E-05 2E-05 0.009Resumendeiteracionesconinner= 10Iter. NormaP1 NormaP2 NormaP3 Norma1 32155.041 3298.229 32155.041 260.0152 415.980 8389.635 415.980 96.0293 1545.638 405.4582 1545.638 59.1334 84.834 1706.022 84.834 43.3095 327.803 108.495 327.803 27.64210 1.952 17.997 1.952 4.68015 0.179 0.173 0.179 0.72920 0.002 0.010 0.002 0.12427 2E-05 4E-05 2E-05 0.009