introduccion a la simulacion de eventos discretos

Upload: luis-dzul-pat

Post on 15-Jul-2015

751 views

Category:

Documents


0 download

TRANSCRIPT

De part ame nt ode Comput ac i nFa cul t a d d eCi enci a s Exa ct a s y Na t ura l esUni ve rs i dadde Bue nos Ai re sINFORME TCNICOInt roduc c i nalaSi mulac i ndeEve nt os Di s c re t osGabriel A. WainerReport n.: 96-005Pabelln 1 - Planta Baja - Ciudad Universitaria(1428) Buenos AiresArgentinahttp://www.dc.uba.arTi t le : Int roduc c i nalas i mulac i nde s i s t e mas dee ve nt os di s c re t osAut hors : Gabri e lA. Wai ne rE-mai l : gabri e lw@dc . uba. arRe port n. : 9 6 -0 0 5Ke y-words : Di s c re t e e ve nt s Si mulat i onandMode lli ng, Paralle lSi mulat i on, Ce llularAut omat a.Abs t rac t : In this work we present a survey about different mechanisms andtechniques for discrete event simulation. We analyze several features aboutmodeling and simulation, paying special attention to two formalisms:DEVS and Cellular Automata. Finally, we study questions related with highperformance simulation through parallel and distributed approaches.To obtain a copy of this report please fill in your name and address and return this page to:InfotecaDepartamento de Computacin - FCENPabelln 1 - Planta Baja - Ciudad Universitaria(1428) Buenos Aires - ArgentinaTEL/FAX: (54)(1)783-0729e-mail: [email protected] can also get a copy by anonymous ftp to:zorzal.dc.uba.ar/pub/tr or visiting our web:http://www.dc.uba.ar/people/proyinv/tr.htmlName:..................................................................................................................................................Address:...........................................................................................................................................................................................................................................................................................................Introduccin a la simulacin de sistemas de eventos discretosGabriel A. WainerDepartamento de Computacin - FCENUniversidad de Buenos Aires.gabrielw@dc.uba.arEnestetrabajopresentamosuninformeacercadedistintosmecanismosytcnicasdesimulacindesistemasdeeventosdiscretos.Seanalizangeneralidadesacercademodelosysimulacin,yseprestaatencinespecialadosformalismos:DEVSyautmatascelulares.Finalmenteseanalizancuestionesrelacionadasconsimulacindealto rendimiento usando soluciones paralelas y distribuidas.Palabras clave: eventos discretos, DEVS, simulacin paralela, autmatas celulares.1. INTRODUCCIONEngeneral,paraimplementarsistemasautomatizadosflexibles,complejosyaltamenteprecisos,debemos construir sistemas de test caros y complejos. Esta complejidad hace que el chequeo sea difcil (oimposible),ascomolaprevisindesucomportamientoycomprensinglobal,indispensableparaminimizarlosriesgosenelsistemadesarrollado.Paralograrestosobjetivosconunaaproximacinefectiva con respecto a los costos, est difundido el uso de metodologas y herramientas de simulacin.Las ventajas de la simulacin son mltiples: puede reducirse el tiempo dedesarrollodelsistema,lasdecisionespuedenchequearseartificialmente,unmismomodelopuedeusarsemuchasveces,etc.Lasimulacin es de empleo mas simple que ciertas tcnicas analticas y precisa menos simplificaciones. Elsistemaaconstruirtendrcomoobjetivoayudaralosinvestigadoresamodelartalesfenmenoscomplejos.Elobjetivodeestetrabajoesservircomointroduccinaalgunosconceptosgeneralessobremodelizacin y simulacin utilizando determinadas metodologas. Presentaremos un conjunto de tcnicasimportantes con especial utilidad en la simulacin de sistemas de eventos discretos. El trabajo est basadoen los que se mencionan en la bibliografa, y tiene como intencin servir como material bsico de estudioen Espaol. Est orientado a difundir los temas en este rea de simulacin, y se ha organizado en cuatrosecciones. En la introduccin se analizan conceptos generales de modelos,sistemasysimulacin.EnlasegundaseccinseatacangeneralidadesdelformalismoDEVS(unformalismoparasimulacindeeventosdiscretos).Unaterceraseccinanalizaotroformalismo:losautmatascelulares.Enlacuartaseccin se estudian con detalle mecanismos de simulacin paralela y distribuida, con el fin de mejorar ladesempeo de las simulaciones.1.1. Sistemas, modelos y paradigmasParacomenzar,daremosalgunasdefiniciones.Primero,llamaremossistemaaunaentidadrealoartificial. De hecho no existe una definicin de sistema que tenga aceptacin general. Se llama sistema aunapartedeunarealidad,restringidaporunentorno.Estcompuestoporentidadesqueexperimentanefectos espacio-tiempo y relaciones mutuas. Tambin se dice que un sistema es un conjunto ordenado deobjetoslgicamenterelacionadosqueatraviesanciertasactividades,interactuandoparacumplirciertosobjetivos. Para lo que nos concierne, distinguimos dos interpretaciones de la palabra sistema:a) Un sistema real es una combinacin de elementos con relaciones estructuralesqueseinfluencianmutuamente.b) Un sistema dinmico es una construccin formal que nos da conceptos generales de modelizacinpara distintas clases de disciplinas [Gia96].Llamaremosmodeloaunarepresentacininteligible(abstractayconsistente)deunsistema.Enmuchos casos no se puede resolver un problema directamente sobre un sistema real, por ende razonamossobre modelos. El proceso de pensar y razonar acerca de un sistema resaltando la reaccin de un modelose llama modelado de sistemas.Paraestudiarsistemascomplejos,laideaespartirhaciendounmodelodelsistemaquesequiereestudiar, y se estudian problemas del sistema real estudiando el modelo.Figura 1. Pasos en el estudio de un sistema por medio de modelizacin [Gia96]Llamaremosparadigmaaunconjuntodeconceptos,leyesymediosquesirvenparadefinirunconjunto de modelos. Los modelos se construyen sobre un paradigma particular.Ejemplo 1Consideremoseldiseodeuncircuitodigital.Sianalizamoslamedicindecorrientesytensionesestamos razonando sobre un modelo elctrico, en cambio si se hace un estudio de las funciones booleanasque realiza, se razona sobre un modelo lgico.Ejemplo 2Consideremos un lenguaje de programacinalgortmicocomoPascal.Aquusamoselparadigmademodelizacin secuencial/procedural, con el fin de construir un modelo queenestecasoesunprogramamodeladoporunaactividadsecuencial.Delamismaforma,elsimbolismodecircuitoslgicosesunparadigma en el cual un esquema es el modelo de un circuito digital. En base a compuertas lgicas y unconjunto de reglas de conexin, permitimos la construccin de un sistema de circuitos lgicos.1.2. Modelos y simulacinPorqu se hacen modelos de los sistemas? Porqu usamos simulacin? El motivo es que en muchoscasos no se puede experimentar directamente sobre el sistema a estudiar, o se desea evitar costos, peligro,etc. En la actualidad existe una gran variedad de aplicaciones muy complejas en las que se usan modelosy/osimulacin,quevandesdemanufacturahastadiseodecircuitosparacomputadoras,pasandoporaplicacionesblicasyestudiodeexperimentoscomplejos.Lascaractersticascomunesaestossistemasson su complejidad y la falta de herramientas de evaluacin de desempeo adecuadas.Distinguiremos, entonces, dos grandes grupos de mtodos para modelar sistemas complejos:a) Analticos: los modelos estn basados en razonamiento. Suelen ser simblicos, y permiten obtenersolucionesgeneralesalproblema.Lasolucinseconstruyeusandolasreglasdeinferenciareconocidascomo correctas en el paradigma usado para describir el modelo, y se obtienen bajo una forma general (enel sentido que estn bajo una forma simblica). Las soluciones particulares sern obtenidas reemplazandolos valores simblicos por sus valores numricos. La idea es que, una vez obtenida la solucin, se aplicaunavariablealmodeloobtenidoydeestaformasepuedenencontrarsolucionesparticulares.Unformalismo analtico muy difundido son las ecuaciones diferenciales.El problema es que si consideramos sistemascomplejos, con pocas excepcionessernanalticamenteintratablesynumricamenteprohibitivosdeevaluar.Porende,parapoderusarestosmtodosparalosproblemas que existen enelmundorealsedebesimplificarelmodeloaunniveltalquelassolucionesobtenidas pueden alejarse de la realidad. Frente a esta situacin, la simulacin ofrece otra aproximacinde resolucin de problemas que permite tratar cierta complejidad.B)Basadosensimulacin:enellosnoexistensolucionesgeneralessinoquebuscansolucionesparticulares para el problema.Sielproblemaessimple,esconvenienteelusodemtodosanalticosyaquenospermitenobtenersolucionesgeneralesconseguridad.Encambio,siescomplejo,usandosimulacin se pueden probar distintas condiciones de entrada que no seran posibles de probar y obtenerresultadosdesalidasignificativos.Asseobtienendatosquepuedenestudiarseparaanalizaralgncomportamiento que interese.El uso de simulacin permite experimentacin controlada, compresin de tiempo(unasimulacinserealizaenmuchomenostiempoqueelsistemarealquemodela),yanlisisdesensibilidad.Otragranventaja es que su uso no afecta al sistema real, que puede seguir utilizndose (o no existir). Finalmente, lasimulacinesunaherramientaefectivadeentrenamiento.Algunosproblemasqueexistenenelusodesimulacinsonsutiempodedesarrollo,enquelosresultadospuedentenerdivergenciaconlarealidad(precisanvalidacin),yenqueparareproducirelcomportamientodelsistemasimuladoseprecisacoleccin extensiva de datos.Porende,lasimulacineselprocesodedisearunmodelodeunsistemareal,yconducirexperimentos basados en computadoras para describir, explicar y predecir el comportamiento del sistemareal. En general, para hacer un simulador se siguen los siguientes pasos:a)Planteodelproblema:enestafasesetomaunsistemarealysetratadeentenderlo.Paraello,primero se trata de identificar el problema a resolver y se describe su operacin en trminos de objetos yactividades dentro de un marco fsico. Luego, se trata de identificar las variables de entrada y salida delsistema y se las categoriza. Las variables de entrada puedenserdedecisin(controlables)oparmetros(nocontrolables).Enestaetapatambinsetratadedefinirmedidasdedesempeodelsistema(comofuncin de variables de salida) y una funcin objetivo (una combinacin de algunas de las medidas).Definicin:Lasimulacineslareproduccindelcomportamientodinmicodeunsistemarealenbaseaunsistema con el fin de llegar a conclusiones aplicables al mundo real [Gia96].Habiendofinalizadoestaespecificacin,setratadeconstruirunaestructurapreliminardelmodelo,interrelacionandolasvariablesdelsistemaylasmedidasdedesempeo,introduciendopresuncionesysimplificacionesadecuadas.Finalmenteseconstruyeunaestructuradelmodelomsdetallada,identificando todos los objetivos con sus atributos e interfaces.b) Recoleccin y anlisis de los datos de entrada: en esta fase se estudia el sistemarealparaobtenerdatosdeentradavaobservacin.Porende,sehaceobservacindirectayrecoleccindelosatributosseleccionadosenlaetapaanterior.Alestudiarelflujodelasentidadesatravsdelsistema,setratadeidentificarlas convaloresdetiempo.Otracuestinimportanteenestafaseesseleccionaruntamaodemuestra estadsticamente vlido, y un formato de datos procesable por computadora. Finalmente se decidequ datos sern tratados como aleatorios y cules se asumirn como determinsticos.c)Modelizacin:enestafaseseconstruyeunmodelodelsistemaconlosaspectosquesequierensimular. Para ello hay dos fases.En una primera etapa se trata de comprender el sistema, ya sea siguiendo una aproximacin de flujofsicobasadoenelflujodeentidadesatravsdelsistemaconsuspuntosdeprocesamientoyreglasdedecisin, o una aproximacin de eventos (o cambio de estados), basado enladefinicindevariablesdeestado internas seguida por una descripcin de la operacin del sistema cuando ocurre un evento. En unasegunda etapa se construye el modelo. Para ellosedefinenobjetos,atributos,mtodos,enelparadigmaelegido. Tambin en esta fase se elige un lenguaje de implementacin.d) Implementacin: en esta etapa, en base al lenguaje elegido se construye una simulacin del modeloque pueda ejecutarse en una computadora.e) Verificacin y validacin del modelo: durante los pasos anteriores se construyeron tres modelos: elconceptual (especificacin), el lgico (diseo) y el de computadora (cdigo). La verificacin es un asuntode consistencia interna entre los tres modelos. La validacin enfoca la correspondencia entre el modelo ylarealidad.Enbasealosresultadosobtenidosdurantelavalidacinyverificacin,elmodeloysuimplementacin deben refinarse.f) Experimento de simulacin y optimizacin: en esta fase se hace evaluacin estadstica de las salidasdelsimuladorparadeterminaralgnniveldeprecisindelasmedidasdedesempeo.Sielobjetoeninters pasa por un comportamiento de perodo transiente se debe tener cuidado de hacer el anlisis sobreestadosestacionarios.Sehacediseodeexperimentosdesimulacinbasadosenlarepeticindelasimulacin con las variables de decisin en varios niveles.g)Anlisisdedatosdesalida:enlaltimafaseseanalizanlassalidasdelasimulacinparacomprenderelcomportamientodeseadodelsistema.Estassalidasseusanparaobtenerrespuestaalcomportamiento del sistema original.Figura 2. Pasos en el estudio de sistemas con simulacinEn funcin del nivel de intervencin de la persona que decide sobre el sistema real, se definen cuatroniveles de uso de modelos para simulacin:.deexploracin:seusasimulacinparaadquirirunamejorcomprensindelasoperacionesdelsistema real;. de prediccin: se usa un modelo para predecir el concepto futuro del sistema real;. de mejoras: se utiliza para optimizar el desempeo del sistema real, y estudiar distintas alternativas(por ejemplo, un sistema de produccin, de stocks, etc.);. de concepcin: el sistema no existe, y se usa simulacin para chequear distintas soluciones posibles(por ejemplo, porque no se puede hacer un prototipo).Encualquiercaso,nosinteresatenermodelosejecutablesdesistemas,osea,descripcionesinteligibles sobre las que se pueden ejecutar algoritmos en tiempo finito. Para poder construir un modelosimulable, el sistema en consideracin deber obedecer a dos principios fundamentales:. Causalidad: el futuro no puede influenciar sobre el pasado. El estado del sistema al instante presentet es independiente de todo lo que se pueda producir en horas futuras a t..Determinismo:elfuturodelsistemapuedeestardeterminadoapartirdesuestadopresenteysupasado.Entodoinstantetexisteunvalorpositivoetalqueelcomportamientodelsistemapuedecalcularse hasta t+e.1.3. Categoras de paradigmas de modeladoDurantesigloseldesarrollodesistemasdinmicosestuvobasadoenelestudiodemodelosdeecuacionesdiferencialesordinariasyparciales.Estaspermitieronmodelarexitosamentelossistemasdinmicosencontradosenlanaturaleza(dehecho,losxitosdelafsicayestalneadeinvestigacinfueron tan grandes que penetraron casi todo el pensamiento cientfico). Pero por otro lado, la tecnologamodernahapermitidoqueelhombrecreesistemasdinmicosquenopuedenserdescriptosfcilmentepor medio de ecuaciones diferenciales ordinarias o parciales. Como ejemplosdetalessistemaspodemosmencionar lneas de produccin o ensamblado, las redes de computadoras y comunicaciones, los sistemasde control trfico (en el aire y tierra), los sistemas de control militar, etc. En estos sistemas, la evolucinen el tiempo depende de interacciones complejas de varios eventos discretosydesutemporalidad,talescomolallegadaopartidadeuntrabajo,ylainiciacinofinalizacindeunatarea,etc.El"estado"detalessistemasslocambiaeninstantesdiscretosdetiempoenlugardecontinuamente[Ho89].Lasimulacin aparece como una alternativa para estudiar el comportamiento de estos sistemas complejos.UnadelasprimerasaplicacionesdesimulacinconcomputadorasfueenelproyectoManhattan,dondeseestudiladifusinaleatoriadeneutronesparaeldesarrollodelabombaatmica,usandomtodosdeMontecarlo.Elimpactodelatecnologadecomputadorashatenidograninfluenciaeneldesarrollodetcnicasdesimulacin,yenlaactualidadexistehardware,interfacesconelusuarioyherramientas de programacin que influenciaron los mtodos tericos existentes.La gran variedad de paradigmas de modelado puede clasificarse de acuerdo a distintos criterios:.Conrespectoalabasedetiempo,hayparadigmasatiempocontinuo,dondesesuponequeeltiempo evoluciona de forma continua (es un numero real), y a tiempo discreto, donde el tiempo avanzapor saltos de un valor entero a otro (el tiempo es un entero).. Con respecto a los conjuntos de valores de las variables descriptivas del modelo, hay paradigmas deestadosoeventosdiscretos(lasvariablestomansusvaloresenunconjuntodiscreto),continuos(lasvariables son nmeros reales), y mixtos (ambas posibilidades) [Gia96].Conrespectoalacaracterizacindelproblemaamodelar,losmodelospuedenserprescriptivossiformulanyoptimizanelproblema(engeneralsonmtodosanalticos)odescriptivossidescribenelcomportamiento del sistemas (suelen ser mtodos numricos).Por otro lado, un modelo se dice que es determinstico si todas las variables tienen certeza completa yestn determinadas por sus estados iniciales y entradas. El modelo se dice probabilstico en el caso queunarespuestapuedatomarunrangodevaloresdadoelestadoinicialysusentradas(siusavariablesaleatorias se dice que el modelo es estocstico). En un modelo probabilstico, los cambios de estadodelmodelo se producen por medio de leyes aleatorias: las entradas al modelo son aleatorias (siendo el modelodeterminista), el tiempo de llegada de los eventos es aleatorio [Zei96b].Deacuerdoalentorno,losmodelossonautnomos(noexistenentradas)onoautnomos(existenentradas). Los autnomos evolucionan en base a la funcin de tiempo.1.4. Simulacin de DEDSLossistemasdondelasvariablessondiscretasatiempocontinuorecibenelnombredeSistemasDinmicos de Eventos Discretos (DEDS - Discrete Events Dynamic Systems) en oposicin a los SistemasDinmicos de Variables Continuas (CVDS - Continuous Variable Dynamic Systems) que se describen porecuacionesdiferenciales.UnparadigmadesimulacinparaDEDSasumequeelsistemasimuladoslocambiadeestadosenpuntosdiscretosentiemposimulado,oseaqueelmodelocambiadeestadoanteocurrencia de un evento.Para implementar una simulacin de eventos discretos se suele utilizar:a) Un conjunto de variables de estado discretas.b) Un planificador que contiene una lista cronolgica de eventos (o mensajes) a tratar. Un evento es uncambio de estado que debe efectuarse a una hora ti(el tiempo es continuo).c) Un reloj global que indica el instante actual de simulacin; es la hora de ocurrencia del evento quese est tratando en la actualidad.Comparado con sistemas de variables continuas, fundamentales en la fsica, el modelado de DEDS esunfenmenorelativamentereciente.ApesarquepertenecealdominiodelaInvestigacinOperativa(desde el punto de vista que la IO puede pensarse como la tcnica de operaciones y eventosdesistemashechos por el hombre), el desarrollo de DEDS tambin recibi un gran mpetudelateoradecontrolysistemas. En particular, los conceptos de dinmica (constantes de tiempo, tiempo de respuesta, frecuencia,controlabilidad) son importantes en el desarrollo de modelos y herramientas de DEDS [Ho89].Ejemplo 3. Ecuaciones diferenciales: paradigma de variables continuas a tiempo continuo.. Ecuaciones en diferencias: paradigma de variables continuas a tiempo discreto.. Mquinas de estados finitos: paradigma de variables discretas a tiempo discreto.. DEVS y otros modelos de eventos discretos: paradigma de variables discretas a tiempo continuo. Unmodelo de eventos discretos cambia de estados por causa de un evento.Ejemplo 4Un caso tpico de un DEDS es una red de computadoras.Sepuedenincluirvariablesdeestadoparaindicar la longitud de las colas de mensajes, estado de los enlaces de comunicaciones (ocupado olibre),etc. Los eventos tpicos pueden incluir la llegada de un mensaje en algn nodo en la red, transmisin deun mensaje a otro nodo, fallas de componentes, etc.EstildistinguirentredostiposdeDEDS:losdetopologafijaydinmica.Lainteraccinentrecomponentes de topologa fija puede describirse por un grafo en el cual los nodos representan componen-tes y los arcos representan los caminos posibles de interaccin. Tales sistemas suelen representarse comoredes de encoladoenlasquehayunconjuntofijodeestacionesyclientesquesemuevendeestacinaestacin.Lasrutasposiblesdeclientessonfijas(porejemplo,sistemasdemanufacturayredesdecomunicacin).Ensistemasdetopologadinmicalasinteraccionessonarbitrariasydinmicas(Ej.:escenarios decamposdebatallaysistemasderadiomvil).Loscomponentesdeestossistemaspuedenmoverseencualquierdireccineinteractuarconlosotroscomponentes.Lossistemasdetopologadinmica no suelen ser estrictamente DEDS ya que los componentes se pueden mover continuamente, sinembargo, para el propsito de la simulacin, el modelo de movimiento fsico en el sistema se discretiza enel tiempo.1.5. Paradigmas de especificacin de modelos DEDSExiste variedad de paradigmas que pueden utilizarse para especificar formalmente sistemas dinmicosytienenexistenciaconceptualindependientedeloslenguajesdesimulacinquepuedenusarseparaimplementar las simulaciones. No puede decirse que ninguno de los formalismos existente sea mejor queotropararepresentarlavariedaddecomportamientodelossistemasreales,yaquedependiendodediversosfactores,algunossonmasnaturalesyproducensimulacionesmaseficientes.Inclusoexistenparadigmas genricos, pero no hay consenso para decidir qu modelo tiene el mayor potencial. Entre losformalismos desarrollados hasta ahora, mencionamos los siguientes:.CadenasdeMarkov/modelosdeautmatas(enestegrupotambinincluimosRedesdePetriymquinas de estado extendidas).. Modelos de olas. Modelos algebraicos min-max.. Modelos basados en computadoras (ej.: CSP).Modelosdeprocesossemi-markovianosgeneralizados(GSMP-dentrodeestacategoraincluimostodos los esfuerzos relacionados en lenguajes de simulacin de eventos discretos).Con tiempo Sin tiempoLgica Lgica temporal Mquinas de estados finitosRedes de PetriAlgebraico lgebra min-max Procesos finitamente recursivosCSPDesempeo Cadenas de MarkovModelos de colasGSMPSimulacinEstocstico -> S,funcindetransicininterna,quedefineloscambiosdeestadoporcausadeeventosinternos; ext: QxX->S, funcin de transicin externa, que defineloscambiosdeestadoporcausadeeventosexternos, Q es el conjunto de estados totales del sistema especificado por el conjunto Q = { (s,e) / sS, eta(s)] }, donde e representa el tiempo transcurrido desde la ltima transicin de estado conestados.Porende,lafuncindetransicinexternadependedelestadoactualydeltiempotranscurrido; : S-> Y, funcin de salida;ta: S->R+, funcin de duracin de un estado;ta(s): es el tiempo que el modelo se queda en el estado s si no hay un evento externo.UnmodeloatmicoDEVStransitaentrelosestados(S)vasusfuncionesdetransicin.Cuandonohayeventosexternos,lahoradeunafuncindetransicininternaestdeterminadaporlafuncindepasajedetiempo(ta)aplicadaalestadoactual.Elnuevoestadodelmodelosedeterminaaplicandolafuncin de transicin interna ( int) al estado antiguo. Antes de cada transicin interna, el modelo puedegeneraruneventodesalidaquedependedelestadoprevioalatransicin.Tambinpuedehaberunatransicin de estado cuando hay un evento de entrada externa. La funcin de transicin externa determinael nuevo estado basndose en el estado actual, el tiempo transcurrido en ese estado, y la entrada.ParaespecificarmodelosDEVSesconvenienteveralmodelocomoconportsdeentrada/salidaqueinteractan con el entorno. Cuando se reciben en los ports de entrada los eventos externos, la descripcindel modelo debe determinar cmo responder. Por ende, un modelo atmico posee ports de entrada y salidapor los cuales transita toda interaccin con su entorno, lo cual facilita el encapsulamiento. Este conceptodeinterfazconelentornopermitirunaconstruccinmodulardemodelosmscomplejos,facilitarlavalidacinsubconjuntoporsubconjuntoylareutilizacindelasdescripcionesyaefectuadas(encapsulamiento).Luego,ladescripcinsimulabledeunmodeloatmicopodrserguardadaenunabiblioteca para hacer acoplamiento con otros modelos ms complejos.Por ende, un modelo atmico debe contener la siguiente informacin:. El conjunto de ports de entrada a travs de los cuales se reciben eventos externos. El conjunto de ports de salida a travs de los cuales se envan eventos externos. El conjunto de variables de estado y parmetros: como dijimos suelen estar presentes dos variables deestado - fase y (tiempo hasta la siguiente transicin interna)..Lafuncindeavancedetiempoquecontrolaeltimingdelastransicionesinternas(estafuncinsimplemente el valor de).. La funcin de transicin interna que especifica a que estado pasara el sistema luego del tiempo dadopor la funcin de avance del tiempo.. La funcin de transicin externa que especifica cmo cambia de estado el sistema cuando serecibeunaentrada.Elefectoesponeralsistemaenunanuevafasey ,planificndoloparalaprximaEjemplo 7Enlafigura7vemoslasecuenciadeeventosenunsistemamodeladoconDEVS:s2= int(s1);s3= int(s2),etc.Estassonlastransicionesinternas,queocurrencuandonohayeventosexternos.Porejemplo,ta(s2)determinalahoradelaprximatransicininternaenbasealestados2.Estahoradelprximoeventosecalculaenbasealeventoactual.Aquy1= (s1),...,sonloseventosdesalidagenerados.Estosseejecutanantesdelastransicionesinternas.Cuandoserecibeeleventodeentradaexterna x1, la transicin externa resultante depende del estado actual, s4, el tiempo transcurrido, e4, y elevento de entrada, x1, para determinar un nuevo estado, s5 =ext(s4, e4, x1).Figura 7 - Trayectorias en un modelo atmico DEVS [Cho95]transicin interna; el siguiente estado se calcula en base al estado actual y el valor del evento externo (queviene por un port de entrada), y el tiempo transcurrido en el estado actual.. La funcin de salida que genera una salida externa antes de una transicin interna.Cadaportdeentradaprecisaunaespecificacindeunatransicinexterna,enlaformade"cuandorecibaxenelportdeentradap...".Lafuncindetransicininternapuedeespecificarseenunadescripcin procedural con fases y sus transiciones. La funcin de salida usa frases de la forma "enviar yal port de salida p".Ejemplo 8Consideremos un modelo de buffering simple (fig. 8). Hay tres ports de entrada: entrada, para recibirdatosdeentrada,listo,pararecibirreconocimientodelnivelinferior,ypararparacontroldeflujodelprocesodenivelsuperior.Elportsalidaenvatemshaciaabajo.Seusanlasvariablese(tiempotranscurrido en la fase actual), y (tiempo restante en la fase actual), esenciales para lograr modularidaden modelos de eventos discretos (se asume que estas variables las maneja el simulador abstracto).Figura 8- Un modelo debuffering simple_______________________________________________Transicin externaCuando recibo x en el port entradainsertar(x, cola)si hay_uno(cola) /* Debe transmitirse inmediatamente*/e = tiempo_de_preparacin /*Demora de preparacin*/mantener ENVIANDO durante e /* Cambio de fase */sinocontinuarCuando recibo listo en el port listo si !vaca(cola) /* Tomar el siguiente elemento */e = tiempo_de_preparacinmantener ENVIANDO durante e sinocontinuar/* Actualizar sigma */Cuando recibo x en el port parar con tiempo transcurrido e si fase = ENVIANDO y x = parar tiempo_restante =sigma - e pasivar si fase = PASIVA y x = comenzar e = tiempo_restante mantener ENVIANDO por e sino continuar_____________________________________________Transicin interna si fase = ENVIANDO /* Saca el primero de la cola luego del tpo. de preparacin */ Cola = resto(Cola) pasivar______________________________________________Salida si fase = ENVIANDOenviar primero(Cola) al port salidaLaespecificacindetransicionesexternastienetres"cuando",unoparacadaport.Laprimeradiceque cuando se recibe un valor en el port entrada, se inserta en la cola. Si es el nico, el control debe pasara la fase ENVIANDO (o sea, que debe transmitirse inmediatamente); sino el modelo debe continuar. Latransicininternatieneunasolafase,ENVIANDO,enlacualelmodeloesperauntiempo,tiempo_de_preparacin,queprovocaqueseplanifiquelaocurrenciadeunatransicininternaenelinstante=horaactual+tiempo_de_preparacin.Estosirveparamodelareltiempoentrequellegaelmensajeysepuederetransmitirlo.Alocurrirdichoevento,seejecutalafuncindetransicininterna.Previamente se ejecuta la funcin de salida, que enva el primer valor en su cola al port salida, la funcinde transicin interna lo saca de la cola, y se pone en estado pasivo. La fase pasivar (en la cual el modelose pone PASIVA)representaunafasedelmodeloenlacualesperaporeventosexternosmientrashaceactividad propia. Con esta finalidad,, el instante del prximo evento interno, se pone en infinito (inf).La frase "continuar" indica que el tiempo restante en la fase en la cual se encuentra el modelo no debecambiar como resultado del procesamiento del evento externo. Para expresar una interrupcin que necesi-ta un cambio en la planificacin, reemplazamos la instruccin continuar por las que manipulan, comolo muestra la especificacin del port de entrada parar. Este evento externo, si indica parada, provoca queel modelo abandone la fase ENVIANDO y aborte la transmisin actual; si indicacomienzo,latransmi-sin se reinicia.Elcambioenlaplanificacinseprovocaamedidaque cambiadeunvalorfinitoainfinito.Supongamos que el tiempo ya gastado en preparar la salida no necesita ser repetido cuando se reasume latransmisin, almacenamos el tiempo restante (- e) en tiempo_restante para restaurar antes de entrar alafaseENVIANDO.Sihayvariostrabajosalavezsuspendidoscomoeste,habramosahorradountiempo de tiempo_restante con cada uno.Figura 9. Un modelo atmico dedesempeo de un procesador.MODELO-ATOMICO: Pvariables de estado: sigma=inf; fase=pasiva; id-trab;parmetros: tpo_procesamiento = 5;__________________________________________Transicin externasegn portentrada: segn fasepasiva: almacenar id_trab mantener ocupado tpo_procesamientoocupado: continuarotro: error__________________________________________Transicin interna segn ocupado: pasivar pasiva: /* nunca ocurre */__________________________________________Salidaenviar id_trab al port salidaEl manejo de trabajos que llegan se modelan con la funcindetransicinexterna.Cuandoelproce-sadorestlibre,cambialafaseyseponeenpasiva.Cuandollegauntrabajoporelportentrada,seEjemplo 9Construyamos un modelo para comparar desempeo de sistemas mono/multiprocesador, basado en dosmedidas: turnaround y throughput. Para ello comenzamos haciendo un modelo atmicoparaestudiarladesempeo de arquitecturas simples. Para modelar un monoprocesador, construimos un modelo atmicollamado P, en el que solo representamos el tiempo que toma completar un trabajo.guarda su id_trab y se simula que el procesador trabaja (mantener ocupado tpo_procesamiento, que ponefase en ocupado, y sigma en tpo_procesamiento). Si llega otro trabajo, lo ignora (continuar, que actualizasigma para reflejar el pasaje de tiempo). Cuando el procesador termin de procesar, pone la identidad deltrabajoenelportsalida,yvuelvealafasepasiva.Loprimeroqueseejecutaeslafuncindesalida.Despus de la funcin de salida se llama a la funcin de pasaje de estado, que contiene la frase "pasivar",queponeelmodeloenlibre(fase=pasiva,sigma=inf).Ptienedosvariablesdeestado:id_trabytpo_procesamiento. Tpo_procesamiento est fija: es un parmetrodelmodelo.Esteprocesadorsepuedecombinarconotroscomponentesparacrearmodelosdearquitecturasparaanalizarsudesempeo.Elmodelo bsico se puede refinar para representar aspectos mas complejos de la operacin.Es importante notar que no hay forma de generar una salida directamente desde un evento de entradaexterna.Unasalidasolopuedeocurrirantesdeunatransicininterna.Paraqueuneventoexternoprovoque una salida sin demora, hay que "planificar" un estado interno con duracin cero. Sigma guardael tiempo restante hasta el prximo evento interno (el valor de avance de tiempoaserproducidoporlafuncin de avance de tiempo).Figura 10. Ejecucin del modelo del ejemplo 92.2. Modelos acopladosLosmodelosbasicospuedenseracopladosenelformalismoDEVSparaformarunmodelomulticomponente o acoplados, definido por la estructura:DN = D: conjunto de componentes; para cada i en D U {self},Mi es un modelo componente bsico;Ii es el conjunto de influenciados de i; y para cada j en Ii,Zij es la funcin de traduccin de salida i a j.Select es una funcin, el selector de tie-breaking (funcin de secuencializacin o prioridad).Esta estructura est sujeta a las restricciones de que para cada iD,Mi = es un modelo atmico;Ii D U {self}; i Ii;Zself,j: Xself -> Xj, Zi,self: Yi -> Yself;Zij: Yi -> Xj.select D->D / E { }, select(E)E.Para todo j en Ii, Zij es una funcin, traduccin de salida de i a j, Zij: Xi -> Xj. La conexin de i a jest especificada designando j como influenciado por i proveyendo una funcin de traduccin Zij desde elestado de i hasta el conjunto de entradas de j. Cuando un evento interno ocurre en i, enva una sealalcomponente j en el mismo instante.Un modelo acoplado dice como acoplar (conectar) varios modelos componentes para formar un nuevomodelo.Estemodelopuedeserempleadocomocomponente,permitiendoconstruccinjerrquica.Unmodelo acoplado contiene la siguiente informacin:. Conjunto de componentes. Para cada componente, sus influencias. El conjunto de ports de entrada a travs de los cuales se reciben eventos externos. El conjunto de ports de salida a travs de los cuales se envan eventos externos. La especificacin de acoplamiento, consistente de- El acoplamiento de entrada externa que conecta los ports de entrada del modelo acopladoaunoomas de los ports de los componentes (dirige las entradas recibidas por el modelo acoplado a los modeloscomponentes designados); - El acoplamiento de salida externa que conecta los ports de salida de componentes a ports de salidadel modelo acoplado (cuando una salida es generada por un componente, puede ser enviada a un port desalida designado del modelo acoplado, y transmitirse externamente);-Elacoplamientointerno,queconectaportsdesalidadecomponentesaportsdeentradadeotroscomponentes (cuando una entrada es generada por un componente, puede ser enviada a los ports de entra-da de componentes designados, ademas de ser enviados a un port de salida del modelo acoplado)..Lafuncindeseleccin,quecomprendelasreglasempleadasparaelegircualdeloscomponentesinminentes (los que tienen menor tiempo al prximo evento) ejecutara su prximo evento.UnmodelomulticomponenteDNpuedeserexpresadocomounmodeloequivalentebsicoenelformalismoDEVS.Talmodelobsicopuedeserempleadoenunmodelomulticomponentemayor.Elformalismo es cerrado bajo acoplamiento, como se requiere para construccin de modelos jerrquicos. Elexpresar un modelo multicomponente DN como un modelo bsico equivalente captura los medios por loscuales los componentes interactan para lograr el comportamiento general. Un modeloacopladoagrupavarios modelos DEVS en un compuesto que puede verse como otro modelo DEVS, debido a la propiedadde clausura. De esta forma, un modelo puede construirse jerrquicamente a partir de submodelos DEVS.Ejemplo 10Figura 11 - Un modelo acopladoHagamos una descripcin jerrquica de un modelo A5 (figura 11). Aqu el modelo A1-A2 est en unaforma modular, y puede ponerse en la biblioteca para usarse en descripciones ms complejas; el modelose transformaenunmodelodebase.Paraconstruirestemodeloseguimosestospasos:primerosehaceuna descripcin comportamental de los modelos atmicosA1,A3,A4,ysealmacenanenbiblioteca.Acontinuacin se hace descripcin estructural del modelo acoplado A2, almacenamiento en biblioteca, A2setransformaenunmodelodebase,yfinalmenteladescripcinestructuraldelmodeloacopladoA5.Todos los modelos creados se almacenan en biblioteca.Un modelo DEVS que no se construye usando un modelo acoplado es un modelo atmico. Un modelo debaseesunmodeloatmico(descripcinjerrquicaadosniveles)ounmodeloacoplado(descripcinjerrquica a n niveles). Un modelo acoplado almacenado en una biblioteca se transforma en un modelo debase.MODELO ATOMICO: GENRvariables de estado: sigma = inf;fase = activaparmetros: tpo_entre_llegadas = 10_____________________________Transicin externacase port entradaparar: pasivarsino: error_____________________________Transicin internacase faseactiva: mantener activa durante tpo_entre_llegadaspasiva: /* nunca ocurre */_____________________________Salidacase fase activa: enviar nombre_al_azar alport salida pasiva: /* nunca ocurre */MODELO ATOMICO: TRANSDvariables de estado: sigma = intervalo de obs.fase = activa;lista_llegada = lista_resueltos = ();clock = total_ta = 0___________________________________Transicin externaavanzar reloj local h/que coincida con globalcase portllegada: agregar el trabajo a lista_llegadaalmacenar tiempo_de_llegadaresuelto: buscar tiempo de llegada del trabajo total_ta = clock - tiempo de llegada agregar el trabajo en lista_resueltoscontinue___________________________________Transicin internacase fase activa: pasiva/* fin del intervalo de obs. */___________________________________Salidacase faseactiva:turnaround_promedio= total_ta/trab_res throughput = trab_res / clockotro: no hay salidaLaespecificacindelainterconexindecomponentesparaconstruirunnuevomodelotienetrespartes:. Ports de entrada, que especifican cmo los ports de entrada del modelo acoplado son identificados in-formando a sus componentes;. Ports de salida: especifica cmo los ports de salida del modelo acoplado son identificados informandoa sus componentes;Ejemplo 11Seaunmodeloacopladoqueconsistedeungenerador,GENR,yuntransductorTRANSDR.Elgenerador genera una secuencia de identificadores de trabajos espaciados en el tiempo. ("mantener activotpo_entre_llegadas"),quevuelvealmodeloalafaseACTIVEluegodecadatransicininternaylaplanificaparaempezarunanuevatransicinenelmomentodadoportpo_entre_llegadas(queenestecaso es constante, pero podra variar). Antes de que la transicin interna ocurra, se produce la salida deunsmboloid_trab.ComoGENResunmodeloDEVS,puedetestearseporseparado.Enprincipio,elgenerador es un modelo autnomo, por ende no necesita una funcin de transicin externa. Sin embargo,se agrega un port de entrada parar, que cuando se estimula, para las salidas del generador.Eltransductormidedosndices:elthroughputyeltiempopromediodeturnaround.Paracalcularmedidas de desempeo, el transductor ubica los id_trabs que llegan en su port de entrada llegadaensulista_de_llegadosjuntoconsustiemposdellegada.Cuandoelid_trabapareceenelportdeentradaresuelto, TRANSD lo ubica en la lista_de_resueltos y tambin calcula el turnaround. TRANSD mantienesu propio reloj local para medir tiempos de llegada y de turnaround. El formalismo DEVS no permite queel reloj de la simulacin este disponible para los componentes, por lo que los modelos deben mantener susrelojes acumulando informacin de tiempo transcurrido, en sigma y e.. conexiones internas: especifica cmo los ports de salida de los componentes internos estn relaciona-dos con los ports de entrada de los otros.Figura 12 - Modelo acoplado EFMODELO ACOPLADO: EFARBOL DE COMPOSICION: raz: EF hojas: GENR, TRANSD.ACOPLAMIENTO DE ENTRADAEXTERNA:EF.entrada -> TRANSD.ResueltoACOPLAMIENTODESALIDAEXTERNA:GENR.salida -> EF.salidaTRANSD.salida -> EF.ResultACOPLAMIENTO INTERNO:GENR.salida -> TRANSD.llegadoTRANSD.salida -> GERN.pararParaexperimentarconelmodelomonoprocesadorP,loacoplamosdirectamenteconelcomponenteEF para formar el digrafo EF-P. Notar que acoplar un marco experimental y un modelo forma un sistemacerrado, libre de entradas. Luego, no hay acoplamiento de entrada externa en EF-P. El acoplamiento desalida externa hace que la salida del transductor este en Result de EF-P. El acoplamiento interno es muysimple: los ports 'salida de cada uno de los componentes se acoplan a los ports 'in de los otros. El marcoexperimentalEFpuedeacoplarseacualquierotromodelodeestaforma.Porsupuesto,paraquetengasentido,elmodelotienequeusarsuportdeentradapararecibiridentificadoresdetrabajo,yproduciridentificadoresdetrabajoensuportdesalida.Estoserverdadparaunaseleccindemodelosdearquitecturaquediscutiremos.Usadosdetalforma,elmarcoexperimentalgeneraratrabajosparalaarquitectura y medir su throughput y turnaround.Figura 13 - Modelo acoplado EF-P.MODELO ACOPLADO: EF-PARBOL DE COMPOSICION: raz: EF-P hojas: EF, P.ACOPLAMIENTODESALIDAEXTERNA:EF.result -> EF-P.salidaACOPLAMIENTO INTERNO:P.salida -> EF.entradaEF.salida -> P.entradaLISTA DE PRIORIDAD: (P EF)La funcin select contiene reglas para romper lazos con la planificacin. Ej.: en EF-P, si el generadoryelprocesadortienentiemposentrellegadasydeprocesamientoiguales(oarmnicos),tendrnigualtiempodeprximoeventocuandoambosestnlistosparamandaruntrabajosimultneamente.Enparticular, si el generador de tpo_entre_llegadas y el tiempo de procesamiento son iguales, todos los se-gundostrabajossepierdensielgeneradorejecutasuprximoeventoprimero:lasalidadelgeneradorencuentra un procesador ocupado, y se ignora. Para evitarlo, la funcin select puede definirse de tal formaque el procesador se elija como componente inminente cuando existe el lazo.2.3. Simulador abstractoLa principal caracterstica de modularidad de los modelos DEVS est garantizada por el hecho que lasimulacinesllevadaacaboporunsimuladorabstracto,queesgenrico.Enelconceptodesimuladorabstracto, la simulacin de los modelos atmicos y acoplados es llevada a cabo por distintos procesadoresllamadossimuladoresycoordinadores.Bsicamentelasimulacinesdisparadaporlarecepcindemensajes de simulacin que invocansecuencialmentealassalidas,transicionesexternas,ytransicionesinternas planificadas por las funciones de tiempo. En esencia, un simulador abstracto es una descripcinalgortmicadecomollevaracabolasinstruccionesimplcitasenlosmodelosDEVSparagenerarsucomportamiento.La simulacin de un modelo estructural jerrquico se hace con tres clases de procesadores;. Simulador: trata los modelos atmicos. A cada modelo atmico se asocia un simulador con el rol demandar la ejecucin de distintas funciones del modelo.. Coordinador: trata los modelos acoplados. A cada modelo acoplado se asocia un coordinador con elrol de comandar los controladores de los modelos que constituyen el acoplado.. Coordinador raz: genera la simulacin ligada a los coordinadores de mayor nivel.Cadasimuladorcomunicanicamenteconelcontroladordelnivelsuperior(padre).Altopedelajerarquaseencuentraelcoordinadorrazquedistribuyelosmensajesasushijos.Uncoordinadorrazmanejatodalasimulacinyestaencadenadoconelcoordinadordelmodeloacopladoexterior.Lasimulacinprocedepormediodemensajespasadosentrelosprocesadoresquepuedenacarrearinformacinconrespectoaeventosinternosyexternos,ascomonecesidadesesincronizacin.Losmensajestienencamposparafuentedeorigen,hora(acarreandotimestampslocalesoglobales,dependiendodeluso),yuncontenidoconsistentedeport/valor,ambosdeterminadosporfuncionesdesalida del modelo atmico. Hay 4 tipos de mensajes: *, X, Y, listo.La simulacin se efecta por pasaje de mensajes entre los distintos procesadores. Un mensaje tiene lossiguientes campos:fuente,nombredelemisor,hora(localoglobal)ycontenido(puertodestinoyvalorasociado, para modelos atmicos).Un mensaje X representa la llegada de un evento externo. Incluye hora global, y viene del padre. Haydos acciones posibles ante un mensaje X:- Un coordinador lo transmite al simulador va un mtodo de traduccin.- Un simulador llama a la funcin de transicin externa del componente considerada, y responde conunmensajelistoqueindicaquelatransicindeestadohaterminadoylahoraprevistadelprximoevento interno.El mensaje * llega a un procesador indicando que el prximo evento interno a tratar le concierne.- Si se trata de un coordinador transmite el mismo mensaje a su hijo con el menor tiempo de prximoevento,llamadohijoinminente.Quieredecirqueelprximoeventointernoserllevadoacaboensuentorno.- El simulador ejecuta este mensaje provocando el cambio de estado dado por la funcin de transicininternadelmodeloatmico,queresponderconunmensajeYyunmensajelisto(indicaquelatransicin fue llevada a cabo; acarrea la hora del prximo evento).Un mensaje Yacarrea valores de la funcin de transicin externa. Cuando un coordinador recibe unmensaje Y de su hijo inminente, consulta el esquema de acoplamiento de salida externa para ver si debeser transmitido a su padre, y suesquema de acoplamientointernoparaobtenerelhijoysusrespectivosports de entrada al cual hay que mandar el mensaje.Un mensaje listo indica al padre que su hijo termin con su tarea Cuando un coordinador ha recibidolos mensajes listo de todas las influencias (en el caso de un mensaje Y ascendente) o los receptores (en elcaso de mensaje X descendente), calcula el mnimo de sus hijos (lista de tiempos de prximos eventos) ydeterminasunuevohijoinminenteparacuandoserecibaelsiguientemensaje*.Tambinenvaestenuevo mnimo como la hora de su prximo evento interno en un mensaje listo a su padre.Figura 14 - Procesadores, variables usadas y sus mensajes.Un modelo atmico es manejado por un simulador que puede recibir dos tipos de mensaje:*(indicaqueelsiguienteeventointernoeseldesumodelo);yX(llegadadeuneventoexterno).Unsimuladormantiene varias variables: la hora actual, t; el estado del modelo, s; la hora del ltimo evento tl; la horadel prximo evento interno, tn=tl+ta(s); el tiempo transcurrido desde el ltimo evento, e=t-tl; y el tiemporestante hasta el prximo evento interno, = tn- t = ta(s) - e.Si llega un mensaje *, sechequeasisuhoracoincidecontn(debeserasporqueun*solollegaalsimulador si su modelo es inminente), y aplica la funcin de salida. Se pone el contenido enun mensajeY, y se lo manda al nivel superior. Se aplica la funcin de transicin interna para actualizar el estado s, yseactualizanlashorasdeeventos:tn=tl+ta(s);tl=tn.Finalmentesecreaunmensajelisto,queindicaque la transicin de estado ha sido llevada a cabo y que reporta el nuevo tn al nivel superior.UnmensajeXprovocaquesechequeesilahoraquellevaelmensajeX[t1,tn](deberaserasporque un mensaje X slo debe llegar luego del ultimo evento y antes del prximo interno). Se actualizael tiempo transcurrido: e = t-tl. Se aplica la funcin de transicin externa con valores actualizados de e yX; s =ext(s,e,x), y se actualiza las horas de eventos: tn=tl+ta(s); tl = tn. Finalmente se crea un mensajelisto, que indica que la transicin de estado ha sido llevada a cabo y que reporta el nuevo tn al nivel supe-rior.La simulacin comienza inicializando los estados de los modelos atmicos, determinando sus tn. Estostiempos se propagan hacia arriba por medio de mensajes listo, y establecen un camino de subcomponentesinminentesdesdeelmodeloacopladosuperiorhastaunmodeloatmico.Cuandoelcoordinadorrazrecibeunmensajelistodesuhijo(elcoordinadordelmodeloacopladosuperior),ledevuelveun*marcandosutn.Estocomienzalasimulacin,yaqueel*sertransmitidohaciaabajoalsimuladorinminente. Esto resultara en una onda de mensajes Y hacia arriba, una ola de mensajes X hacia abajo, yuna onda de mensajes listo hacia arriba, el ultimo de los cuales transmitido al coordinador raz inicia lasiguiente ronda de simulacin (procesamiento del prximo evento interno).El siguiente evento en el sistema ocurrir en el menor de todos los tiempos planificados, el momentot+ es el mnimo de los tiempos remanentes, tai(si)-ei, entre los componentes i de DN) eligiendo unousando la funcin select. Sea i* este componente elegido (inminente). En el momento t+ , justo antes quei* cambie de estado, calcula su salida y*= i*(si*). Esta salida se manda a cada una de las influencias dei*enformadeunaentradatraducida:paraelinfluenciadoj,laentradaxi*jesZi*j(y*).Eltiempotranscurridoencualquiercomponenteieneltiempot+ ese'i=ei+ .Uninfluenciadojrespondealeventoexternogeneradopori*aplicandosufuncindetransicinexterna,paraobtenerelsiguienteestado s'j = dext(sj, e'j, xi*j) y pone su tiempo transcurrido en 0. Otros componentesquenoestnenelconjunto de influencia no son afectados por la activacin de i* excepto que su reloj de tiempo transcurridoseincrementaen .Finalmente,elcomponentei*ejecutasutransicininternayendoalestadosi*'=dint(si*), y poniendo su tiempo transcurrido en 0.El ciclo de simulacin comienza por un mensaje * enviado por el coordinador raz al coordinador delmodelo exterior. Aqu C:EF-P recibe el mensaje * y lo transmite a su hijo inminente. Para C:EF-P, el hijoinminentepuedeserEF(cuandoeshoradegenerarunnuevotrabajo),oP(cuandountrabajohasidoprocesado).ParaC:EF,GENReselinminentehastaqueTRANSDsehaceinminenteparapararlasimulacin. Cuando S:GENR recibe un mensaje *mandaunmensajeYasupadreC:EF(aplicandosufuncindesalidaparaproduciruncontenidoconportsalidayunvalorid_trab).S:GENRtambinprovoca laejecucindelafuncindetransicininternaGENR,ymandaunmensajelistoconeltndeGENR. Para C:EF, cuando GENR es inminente, el mensaje Y que se pone en el port salida se traduce aun mensaje Y en el port llegada y se enva a su influenciado, TRANSD.ParaC:EF,cuandoGENResinminente,elmensajeyqueponeenelportsalidaaparececomounmensajeYenelportsalidadesupadreEF.ComoEFeselhijoinminentedeEF-P,elmensajeYesenviado a C:EF-P, donde ser enviado como un mensaje X al simulador de P, el influenciado de EF. Enestecaso,siPestalibre,seponeenocupado.Cuandoeltiempodeprocesamientohaterminado,S:Pgenera un mensaje y (un id_trab en el port salida) que va a su padre C:EF-P y luego como un mensaje Xa C:EF, el influenciado de P.ParaC:EF,elnicoreceptordeunmensajeXenelportentradaesTRANSD,ytraduceelportentrada a resuelto. Luego, el mensaje que mandaaS:TRANSDeselmismoquerecibe,exceptoqueelport se cambia a resuelto. Luego de retransmitir el mensaje X a todos los receptores, los pone en su listade espera.Ejemplo 12Veamos la asociacin del simulador abstracto con el modelo EF-P, que se ve en la figura 15. Aqu loscrculos representan los procesadores y los rectngulos los modelos asociados.Figura 15 - Simulador abstracto para el modelo EF-P.Veamos qu pasa con un mensaje listo. Por ejemplo, si los hijos de C:EF son {(GENR 10),(TRANSD1000)}, GENR es inminente, y el tn de C:EF es 10. Luego, C:EF enva un mensaje listo con tiempo 10 asu padre, C:EF-P. Este, habiendo recibido todos sus listo, enva un listo al coordinador raz. Asumiendoque sus hijos son {(EF 10)(P 15)}, el listo de C:EF-P contiene tn 10. El listo se manda al raz y vuelveapareciendo como un * a C:EF-P con hora 10. Esto inicia un nuevo ciclo de simulacin, en este caso conGENR generando un segundo trabajo.El simulador abstracto es genrico, o sea que trabaja con cualquier modelo en la clase o sus subclases.La interfaz entre modelo y su simulador esdefinidapormtodosrepresentandoconsultasyoperacionesqueelsimuladorhacealmodelo.Losdetallesdelaestructurainternadelmodeloseocultanenestainterfaz.Cualquiermodelopuedesimularseporunsimuladorsitienelosmtodosdelainterfaz.Laeliminacindetodalainformacinrelacionadaconlasimulacindelaespecificacindelmodelo,nospermite tratar los modelos como conocimiento, es decir, trabajar con una Base de Modelos.3. MODELOS CELULARESLosautmatascelularessonunformalismoparamodeladodesistemasdinmicoscomplejos,devariablesytiempodiscretos(eltiempo,espacioyestadosdelsistemasondiscretos),creadosoriginalmente por von Neumann y S. Ulam. Un autmatacelularesunconjuntoinfiniton-dimensionalde celdas ubicadas geomtricamente. Cada punto de la grilla espacial infinita (llamado una celda) puedetener uno de un conjunto de valores finitos de estados, es decir que cada celda tiene un estado elegido deun alfabeto finito. Cada una contiene el mismo aparato de clculo que las otras y se conectan entre s deformauniforme.Elestadodelasceldasseactualizasimultneamenteydeformaindependientedelosdems en pasos de tiempo discreto. Para ello se define la vecindad deunacelda,queesunconjuntodeceldas cercanas. Esta vecindad es homognea para todas las celdasLos estados de las celdas en la grilla se actualizan de acuerdo con una regla local. O sea, el estado deuna celda en un momento dado slo dependedesupropioestadoenelinstantedetiempoprevio,ylosestados de sus vecinos en ese mismo momento. Todas las celdas de la grilla se actualizan sincrnicamen-te. Luego, el estado de toda la celda avanza en pasos de tiempo discreto. Las celdas actualizan sus valoresusandounafuncindetransicin,quetomacomoentradaelestadoactualdelacelda,yunconjuntofinito de celdas cercanas, que estn a una distancia limitada (la vecindad). La uniformidad en el espaciosignifica que el sistema posee invariancia espacial y en tiempo.Puedenusarseparamodelarvariedaddesistemasdiscretosnaturales,perotambinsirvenparacomprendermuchosformalismoscomunesquepuedenversecomoextensionesdeconceptobsico.Sesuelenusar,aligualquelasecuacionesdiferencialesparaelmodeladodesistemasfsicos.Existenautmatasparamodelardinmicaenfluidosygases,coloniasdeanimales,modelosecolgicos,entreotros. Tambin tienen aplicacin en criptografa. Permiten especificar modelos de sistemas complejos condistintosnivelesdedescripcin,porloquepermitenatacarmayorcomplejidadquelasecuacionesdiferenciales, permitiendo el modelado y estudio de sistemas muy complejos.Figura 16 - Un fragmento de autmata celular bidimensional.Luego,unautmatacelularsecaracterizaespecificandotresparmetros:unconjuntodeestadosS,unavecindadN,yunafuncindetransicinT.Losvecinosdeunaceldasedeterminanusandolavecindad N (es un par ordenado finito de enteros, que se suman al par (i,j) para obtener los vecinos). Unestado global en un instante t (una asignacin a cada celda del conjunto S), cambia de estado en el ins-tantet+1.Simultneamente,paracadacelda,seaplicalafuncindetransicinTalosestados.Losvecinosdeunaceldasonlosqueinfluenciansuprximoestado(susinfluenciadores).Unautmatacelularesunsistemadiscretoautnomo(sinentradas),aunqueexistenextensionesquepermitenentradas.Otrasextensionespermitenquecadaceldapuedatenerdistintasreglas,yenestoscasoselautmata celular es inhomogneo. El modelo permite distintas reglas y conexiones (con aplicaciones a labiologa terica).Formalmente, un autmata celular se define como un conjunto CA=. Sea ai,j(t) el valor de lacelda i,j en el instante t (autmata celular bidimensional). Luego, el autmata evoluciona de acuerdo conla funcin:aij (t+1) = T[ai-r,j-r(t),..., ai,j(t),..., ai+r, j+r(t)]donde T denota la regla de transformacin del autmata, y cada sitio est especificado por un enteroaij(t) en el rango [0,k-1] en el instante t. El parmetro de rango r especifica la regin afectada por un sitiodado.El autmata especificado por CA, Mca, se define:Mca=, donde Q={q / q:IxI ->S} y d:Q->Q. d(q) (i,j)=T(q/N+(i,j)) para cada q Q e (i,j)IxI.NotarqueelconjuntodeestadosdeMcaeselconjuntodeestadosglobalesdelsistema.Unestadoglobal q es una asignacin a cada una de las celdas de un elemento de S, que se llama un estado local. Lafuncin d de Mca se llama la funcin de transicin global (y la T, la local).Los autmata celulares son discretos, regulares y sincrnicos. Muchas de las caractersticas nicas dela dinmica de los autmatas celulares pueden relacionarse con la actualizacin sincrnica de estados deceldas. El comportamiento colectivo parece ser estable a toda clase de perturbaciones del modelo exceptoalabandonarlasactualizacionessincrnicas.Laorganizacindelassubunidadesenunmodelodebenaproximar la organizacin de las subunidades en el sistema a modelar, y la dinmica del modelo debe seruna buena aproximacin de la dinmica en el mundo real.Para comprender el sistema modelado por el autmata celular, se elige un estado inicial, y se observala secuencia resultante de estados. En muchos casos, el sistemaentraenequilibrio,independientementedelascaractersticasdelosvaloresiniciales.Engeneral,cambiosenlascondicionesinicialespuedenprovocar cambios en los resultados.Apesardeserunaherramientapoderosa,losautmatascelularestienenalgunasrestriccionesimportantes. Por un lado, se asume que en el espacio de celdas, las celdas estn activas simultneamente(es un sistema paralelo), pero hay una restriccin importanteenlaactividadsimultnea:todascambiandeestadosimultneamente.Otroproblemaesqueelespaciodeceldasesinfinito.Paraquepuedasersimulado, el modelo debe acotarse aunnumerofinitodeceldasencadapaso.Laformamassimpledehacerlo es limitando el modelo a un rea finita, lo que hace que se pierda homogeneidad: qu se hace conlos bordes? Para esto suelen usarse dos aproximaciones: o los estados de los bordes se especifican desdeafuera, o se conectan los extremos entre s.Por otro lado, el gran nmero de celdas hace que en general se estn haciendo clculos innecesarios.Paraevitarloseusaunaaproximacinquedetectasiunaceldanopuedecambiardeestado.Estoessimple de lograr, ya que una celda no puede cambiar de estado en su transicin si ninguno de sus vecinoslo han hecho. Llamemos un evento en una celda un cambio de estado en una celda. Podemos decir que enun autmata celular, loseventospuedenocurrirenunnumeropequeodeellas(aunqueesposiblequeocurraentodassimultneamente),ydetectamossiocurriruneventoenunaceldamirandosihuboeventos en sus vecinos.Se puede mantener una lista de ltimos eventos, que contiene las celdas cuyos eventos ocurrieron en t.En base a la misma, podemos determinar en que celdas ocurrirn eventos en t+1. Luego que simulamoscada una de estas transiciones, chequeamos para ver sihubouncambiodeestado;siesasponemoslacelda en la lista de ltimos eventos para t+1.Para iniciar el procedimiento, hay que tener un estadoinicial.Sielmodeloesfinitoconunnumerofinitodeceldas,podemosponeratodaslasceldasenlalistadeprximoseventos.Unamejoraproximacin es detectar estados especiales, llamados estados latente, en el que si un elemento s S / siuna celda y sus vecinos estn en el estado s en el instante t, la celda quedara en el mismo estado en t+1 (osea, la funcin T(s,...,s)=s). Entonces es simple iniciar la simulacin, ya que solo las celdas que no estnen estado latente deben ponerse en la lista de prximos eventos.Adems, si hay solo un conjunto de celdas en estado no latente, se puede simular unmodeloconunnumero infinito de celdas.En algunos casos, para modelos finitos, el procesamiento extra de la lista puede no valer la pena. Paraun modelo en el cual todas las celdas estn llevando a cabo acciones todos los tiempos, no es bueno usaresta estrategia. Para ver la relacin costo/beneficio hay que ver el nivel de actividad del modelo (relacinentre celdas que llevan a cabo actividad sobre el total de celdas). Este niveldeactividadesunamedidadel paralelismo del modelo.Aunque los autmatas celulares representan un modelo de resolucin elegante para un gran nmero deproblemas complejos, la investigacin cuantitativa de las propiedades bsicas de la evolucin de tiempo yestadodelosautmatascelularesestcomenzando.Sinembargo,sehanobtenidoalgunosresultadosimportantes. Por ejemplo, en [Wol84] pudo mostrarse que la mayora de los autmatas celulares puedenclasificarse en cuatro clases:I-Laevolucindetodoslosestadosinicialesconduce,luegodeuntiempofinito,aunestadohomogneo, donde todos los sitios tienen el mismo valor.II - La evolucin conduce a un conjunto de estructuras separadas estables o peridicas.III - La evolucin conduce a un patrn catico (ejemplo: sistemas fsicos).IV - Laevolucinconduceaestructurascomplejaslocalizadas,generalmentemetaestables(ejemplo:un modelo para el Juego de la Vida).3.1. Modelos de autmatas celulares asincrnicosComo dijimos, un problema de los autmatas celulares es que son modelos a tiempo discreto, lo que enmuchos casos reduce la eficiencia de las simulaciones yelgradodeparalelismodelmodelo.Laideaestener un modelo de autmatas celulares con relojes asincrnicos, y hacer que el modelo sea manejado poreventos.Lastransicionesdeestadodecadaceldaesindependientedelasotrasdelautmata,yelautmata puede comportarse de forma muy inhomognea. Si usamos relojes independientes, el tiempo deiteracin para cada celda puede ser diferente. Definiremos un autmata celular asincrnico como:Z = Ideselconjuntodeenterosded-tuplas,llamadounarreglodelespaciocelular.UnelementodeIdrepresenta las coordenadas de una celda o una celda en esa coordenada. El entero positivo d se llama ladimensindelespaciocelular.Nesunn-tupladedistintoselementosdeId,llamadoelndicedevecindad. Con N=(n1,..., nn) y dada una celda a, un elemento del conjunto {(a+n1),..., (a+nn)} se llamaunaceldadevecindaddea,yaeslaceldacentraldelasdelavecindad.Elconjuntoconsistentedeelementos de N se llama la vecindad. El espacio celular es homogneo, luego, para todas las celdas, V esun conjunto finito no vaco, llamado un conjunto de estados. El conjunto V tiene un elemento, v0, en elcual la celda estendescanso,llamadounestadolatente.LafuncinlocalfesunmapeodeVnaVysatisface la propiedad que f(v0,..., v0) = v0. El siguienteestado de a ests dado por st(a) = F(a, N, f, t),donde f es instantnea aplicada a la vecindad N de a en el tiempo t. El tiempo de la evaluacin de cambiode prximo estado de a se describe por t'=T(a, N,t), donde t'> t.Unautmatacelularasincrniconodeterminsticopuedeobtenerseintroduciendounexperimentoaleatorio y definiendo una variable aleatoria en el espacio de muestra del experimento.LafuncinlocalnodeterminsticafseaumentaconS,queesunaimplementacindelavariablealeatoria. La funcin local se escribe como fS, donde uno puede pensar a fS como una funcin tabuladadependiendodeS,osilavariablealeatoriaesdiscreta,Spuedeconsiderarsecomoargumentoalafuncin. De la misma forma, la funcin de incremento de tiempo puede escribirse como TS, que puede serunafuncintabuladadependientedeS,o,paravariablescontinuasodiscretasaleatorias,Spuedeconsiderarse como argumento a la funcin TS. El uso de S para variables aleatorias continuas es vlido yaque el tiempo es continuo en los autmatas celulares asincrnicos.3.2. Modelos NEVSZeigler [Zei90] tambin defini una extensin a su formalismo DEVS, que permite plantear modelosDEVScelulares.Unespaciodeceldasdeprximoevento(NEVS)estaespecificadoporuna4-upla,. Nuevamente, consideramos una grilla infinita de celdas. El estado de cada celda es unpar (s, ), con s en S,en R+. Una celda en (s, ) se queda en ese estado durante un tiempoantes dehacerunatransicininducidaporellamisma.Sinembargo,enelmediopuedellegarunmensajequealtere este estado, como resultado de la accin de otra celda. Luego, s y se llaman el estado secuencial yel tiempo restante del estado. Una celda c en este estado en el momento t, se dice que puede ser expresadacomoqueestaenelestadosecuencialsyhasidoplanificadaparaunatransicinenelmomento (ot+ ).NuevamentelosvecinossecalculanagregandosuscoordenadasalvecindarioprototipoN(otroconjunto de pares finitos). Cuando ocurre una transicin de eventos a una celda, ellas y sus vecinos hacenuncambiodeestadocomolodictalafuncindetransicinT.Luego,encontrasteconelautmata,Ttoma una lista de pares (s, ) - todos los estados de la celda y sus vecinos antes del evento - y produce unalista de esos pares, dando los estados totales de estas celdas justo despus de la transicin.En contraste con el autmata celular, la actualizacin de un modelo NEVS tiene lugar en instantes decalculo espaciados irregularmente. Sea ti tal instante, y su sucesor ti+1 calculado as:Imaginar el estado global en ti como una lista de pares (s, ) con los estados totales de todas las celdasen este momento. Sea* el mnimo de todos los en la lista. Luego, ti+1=ti+ *. El estado global en ti+1se calcula as: llamar inminentes a las celdas cuyoses igual a* en el instante ti. Estasceldasestnplanificadas para un evento en ti+1. Si hay mas de una, aplicar SELECT y elegir una, que llamamos c*.Esta celda lleva a cabo la funcin de transicin como se indica antes, resultando en un nuevo estado glo-bal. Los estados totales de los vecinos de c* se calculan usando T; el estado total de las otras se conviertede (s, ) a (s, - *).Ejemplo 13Consideremoselmovimientodeunsolocuerpoenunplano.Existeuncuerpoenunplano,queavanza,siemprehacialaderecha.Cadaceldadelautmatatiene,porende,dosestadosposibles(presencia o ausencia). S={0,1}. Una celda pasiva nunca se pondr activa por si misma; esta representadapor(0,inf).Semuevehacialaderecha,luegoN={(0,0),(1,0)},quesumadosa(i,j)danlasdoscoordenadas de la celda (i,j) y su vecino derecho.La funcin de transicin es muy simple (seudocdigo). Poner estado secuencial en 0. Pasivar.. Prender el estado del vecino (1), y planificar una transicin en TIEMPO_DE_MOVIMIENTO.En este caso no existen conflictos entre submodelos, por ende no es necesario incluir la funcin Select.Laespecificacindeautmatascelularesnoponerestriccionesensuestadoglobalinicial.Sinembargo, hay que hacerlo para que se pueda simular en una computadora. Una forma de hacerlo es pedirun estado local latente, en el cual no estn algunas celdas (numero finito). La idea es que la mayora delespacio estar latente y se quedara as, y habr solo un nmero finito de celdas capaces de abandonar esteestado a la vez.Unestadolocalsesunestadolatentecuandolosvecinosdeunaceldaestnensenelmomentot,luegolaceldaestarensent+1.Osea,seslatentesis=T(s,...,s).Todoestadolocaldelmodelodedifusin satisface este criterio, porque el promedio de una constante es la constante. Si inicialmente todaslas celdas estn en el mismo estado latente, el sistema persistir en el en el tiempo (estado de equilibrio).Mas interesantes son los estados globales en los cuales hay conjuntos finitos de celdas no latente. Debidoa la finitud de la vecindad, estos estados evolucionan hacia estados globales con la misma propiedad. Masaun, si se conoce el estado latente, la mayora de las celdas que estn en este estado en cualquier momentono tienen que ser examinadas por un simulador. Esto hace que la simulacin sea computable.Ejemplo 14Consideremos ahora una extensin del modelo anterior para estudiar congestin de trfico. El modeloprevionoespecificaqupasacuandohaycolisiones.Supongamosque,enlugardeunindividuoenunplano,tenemosautomvilesenunadireccin,ycuandounoobstruyeelcamino,quienquiereavanzarpasadecarril(preferentementehacialaizquierda).ElconjuntodeestadosS={0,1}representaausencia/presencia de un automvil. Ponemos en N todas las celdas arriba y abajo del centro, para que elcoche se mueva en esas direcciones. Si N esta ordenado en el orden legal de pasar:Figura 17 - Vecindad del ejemploUn seudocdigo de la funcin de transicin interna es la siguiente:. Encontrar la primera celda no ocupada. Prender esta celda, y planificar un evento en TIEMPO_DE_MOVIMIENTO.. Poner el estado propio en 0, pasivar, dejar las otras celdas no afectadas (dejar su estado sin cambiar,y restarles su tiempo_restante( *), para actualizar los valores de tiempo)..Sinohayvecinos,replanificarendespusdeTIEMPO_DE_REINTENTO.Dejarlasotrasceldasigual.Aqu la funcin select determina cual de dos autos movindose al mismo cuadrado al mismo tiempo lolograra.Luego,elordenenelcualseeligenlasceldashaceunadiferencia.Unestadoinicialenestemodeloponeunconjuntofinitodeceldasenestado1,contiempotime_left entre0yTIEMPO_DE_MOVIMIENTO; todas las dems estn pasivas. El patrn se mover hacia la derecha, conlos coches haciendo maniobras para tapar obstrucciones. Notar que para hacer la simulacin mas realista,TIEMPO_DE_MOVIMIENTOyTIEMPO_DE_REINTENTOpuedenhacersevariablesaleatorias,deforma tal que los coches se muevan al azar en vez de a velocidad constante.Luego una celda puede cambiar de estado del momento t al t+1 solo si hay una celda en su vecindarioquehacambiadodet-1at.Elsimuladortienequesaberencadapasoqueceldascambiaronparadeterminarlasceldasquepuedencambiardeestadoenelsiguientepasoenestascircunstancias.Lavecindad inversa, -N, es el conjunto de imgenes espejo de los elementos en N (ej., (i,j) en -N si y solo si(-i, -j) en N).Lema:unacelda(i,j)estaenelvecindariodeunacelda(k,l)siysolosi(k,l)estaenelvecindarioinverso de (i,j). Una celda puede cambiar de estado de t a t+1 si y solo si esta en el vecindario inverso deunaceldaquecambiodeestadodet-1at.Luegoelconjuntodeceldasquepuedencambiardeestadoentre t y t+1 es la unin de los vecinos inversos del conjunto que cambiaron de t-1 a t.Comoenelcasodeautmatascelulares,losestadosinicialesglobalesdebenserrestringidosparacomputabilidad. Aqu el rol del estadolatenteesjugadoporelestadopasivo.Unaceldaespasivasisutiempo restante es igual a inf. Un estado global inicial puede consistir a lo sumo de un conjunto finito deceldas no pasivas.4. SIMULACION PARALELAHastaahorahemosestudiadodistintosformalismosparasistemasdeeventosdiscretos,conutilidadparahacersimulaciones.Enmuchoscasos,laejecucindeestassimulacionesespocoeficiente.Elprincipalproblemadevelocidadtienecausasestadsticas,ademsdelacomplejidaddelosmodelosaespecificar.Paraqueseaestadsticamentesignificativa,unasimulacindebegenerarunnmerosuficientedeevolucionestpicasdelsistema.Paraevitarestosproblemas,sepuedeintentarusarsimulacionesquenorequieranlageneracindeunnmerograndedeciclosdesimulacin.Algunosmtodos llamados de reduccin de varianza tratan de que el nmero de replicaciones necesarias de ciclosseaproporcionalalavarianzadelaestimacinaleatoriamedidaenunciclodado.Estosmtodossondifcilesdeprepararyquelareduccindevarianzaqueproveennoesmuygrande(estpicaunare-duccin de un factor de 2 a 5).Unmedioobviodeobtenerunasimulacinmasrpidaesdedicarmasrecursos.Enparticular,podemos acelerar una simulacin usando un sistema multiprocesador en vez de un solo procesador. Comolamayoradelassimulacionessondesistemasquetienenmuchoscomponentesoperandoenparalelo,parecerazonablesuponerquelasimulacintambinexploteelparalelismoinherentedelsistema.Lasimulacin paralela de eventos discretos (PDES), muchas veces llamada simulacin distribuida, se refierea la ejecucin de un programa de simulacin deeventos discretos en una computadora paralela. El usarmltiplesprocesadorespareceserunaaproximacinpromisoriaparamejorarlavelocidad,yaquelamayoradelossistemassimuladosqueconsistedemuchoscomponentesoperandoenparalelo,yasseexplota el paralelismo inherente en el sistema.Sedefineaceleracinaltiempoqueletomaaunsoloprocesadorhacerunasimulacindivididoeltiempo que toma al sistema multiprocesador hacerlamismasimulacin.Laaceleracinpuedepensarsecomoelnmeroefectivodeprocesadoresusados(laaceleracinidealconNprocesadoresesN).Elproblemaconestadefinicinesespecificarqusignificaqueunsoloprocesadorhagalasimulacin.Presumiblemente queremos un procesador con las mismas capacidades que los del sistema multiprocesa-dor, pero estos pueden no tener la suficiente memoria propia para manejar toda la simulacin. Luego, elmonoprocesador debe tener la misma capacidad que los procesadores en el sistema multiprocesador perocon la suficiente memoria para correr toda la simulacin.Para obtener una medida precisa de la aceleracin real el monoprocesador debera ejecutar de la formamseficienteposible.Sinembargo,enlaprcticaestopuedeserdifcildedeterminar.Unaalternativaprctica es medir cunto toma a un solo procesador correr la simulacin distribuida, midiendo el tiempototaldeocupadodetodoslosprocesadoresdurantelasimulacindistribuida.Lamedidaresultantedeaceleracindeberasermayorquelaaceleracinrealobtenibledistribuyendolasimulacin.Tambinpodemos estar interesados en la eficiencia de la simulacin, osea,laaceleracindivididaelnmerodeprocesadores usados (mide la utilizacin efectiva de los procesadores).4.1. Formas de descomposicin paralelaHay diversas formas de descomponer una simulacin para procesar enmltiplesprocesadores,cuyosmritos y desventajas sern discutidos en esta seccin.a)Unaaproximacinobviaeshacerreplicacionesindependientesdeunasimulacinexistenteenprocesadores separados, y luego recolectar losresultadosparaanlisisestadstico.Estaaproximacinesmuyeficienteporquenohacefaltacoordinacinentreprocesadores.Luego,conNprocesadores,laaceleracinesvirtualmenteN.Engeneral,distribuirlosexperimentossermaseficientesielsistemallega rpidamente a un estado estable y los tiempos de simulacin sonlargos.Tambinpodranhacersesimultneamentecorridasindependientescondistintosparmetros.Ladistribucindeexperimentospuede no ser posible debido a restricciones de memoria, ya que precisa que todos los procesadores tengansuficientememoriaparacontenertodalasimulacin.Ademsestaaproximacinnopermiteladescomposicindeproblemascomplejos,queenelcasodesimulacionesmultiprocesadorpermitesi-mulaciones ms complejas y realistas.b)Otraformaesaplicaruncompiladorparalelizanteaunprogramasecuencial.Estostratandeencontrar secuencias de cdigo que se pueden hacer en paralelo y los planifican en distintos procesadores.Es bueno porque es transparente al usuario y puede aplicarse a todo el software de simulacin secuencialexistente, pero ignora la estructura del problema y explota una parte pequea del paralelismo existente.c)Otraaproximacinesladefuncionesdistribuidas,queasignatareasdesoporteaprocesadoresindividuales(porejemplo,generacindevariablesaleatorias,recoleccinestadstica,entrada/salida,manipulacindearchivos,generacindegrficos,supervisinetc.).Estaaproximacinnotieneabrazomortalyestransparentealusuario,peronoexplotaparalelismo,ofreciendounacantidadlimitadadeaceleracin.d)Recordemosqueenunmodelodiscretoslosecambiadeestadoenpuntosdiscretosdetiemposimulado (un evento). Se suele usar una lista de eventos con todos los eventos pendientes planificados, yunavariableglobalrelojparasaberelprogresodelasimulacin.Alusareventosdistribuidossemantieneunalistaglobaldeeventos,ycuandohayunprocesadordisponible,seprocesaelprximoeventoentiemposimulado.Hacenfaltaprotocolosparapreservarlaconsistencia,yaqueelsiguienteevento en la lista puede estar afectado por los eventos procesados en la actualidad. Esta aproximacin esparticularmente adecuada para sistemas de memoria compartida, ya que la lista de eventos puede ser ac-cedida por todos los procesadores. La aproximacin deeventosdistribuidospuedeserrazonablecuandohayunnmeropequeodeprocesosycuandohayungrannmerodeinformacinglobalusadaporcomponentes del sistema.e)Laltimaaproximacinesdescomponerelmodeloencomponentesdbilmenteacoplados.Mientrasqueelsistemasimuladonorequieramuchainformacinycontrolglobal,estaaproximacinparece ser promisoria, ya que tiene la habilidad de tomar ventaja del paralelismo inherente en el modelo.Sin embargo, requiere cuidado enlasincronizacin.Losprocesossecomunicanvapasajedemensajes(aunquenonecesariamenteenunamquinadepasajedemensajes),queincluyentimestampsquerepresentan el tiempo simulado de un evento. El sistema se suele modelarcomoungrafodirigidoenelque los nodos representan procesos, y los enlaces representan las posibles interacciones o caminos de losmensajes.Figura 18 - Mecanismos de descomposicin. (a) Replicacin independiente; (b) Compiladorparalelizante; (c) funciones distribuidas; (d) eventos distribuidos; (e) descomposicin del modelo.4.2. Sincronizacin en modelos distribuidosAl distribuir los componentes del modelo, debemosproveeresquemasdesincronizacin.Lasformasparaatacarestascuestionesdependesilasimulacinesdirigidaportiempooporeventos,ysilasimulacinessincrnica(hayunrelojglobalyquetodoslosprocesosdebentenerelmismotiemposimulado)oasincrnica(cadaprocesotienesurelojlocalpropioyeltiemposimuladoparadistintosprocesos puede ser distinto). A su vez, la simulacin puede ser manejada por tiempo, en lacualelrelojavanza de a un tick y todos los eventos planificados se simulan, o por eventos, donde el reloj se avanza ala hora de la transmisin del mensaje simulado.a) Simulacin dirigida por tiempoEn la simulacin dirigida por tiempo, el tiempo simulado avanza en incrementos fijos (ticks), y cadaprocesosimulasucomponentesobrecadatick.Losticksdebensercortosparagarantizarprecisin,loqueimplicamayorduracindelasimulacin.Lasimulacinpuedesersincrnicaoasincrnica.Siessincrnica, todos los procesos deben terminar de simular un tick antes que cualquiera pueda comenzar asimularelsiguientetick.Porende,luegodesimularhayunafasedeactualizacindeestadoycomunicacin. Cuando la simulacin es asincrnica un proceso puede empezar a simular el siguiente ticktan pronto como sus predecesores hayan terminado el ltimo tick, y se sincronizan enviando mensajes asus sucesores. Para implementar un reloj global, se puede usar una aproximacin centralizada (un procesodedicadoparaactuarcomosincronizador)deformadistribuida(conunalgoritmodebroadcastadecuado).Lasimulacinasincrnicapermitemayorconcurrencia,peroaunmayorcostodecomunicacin(comounprocesadornopuedesimularelsiguientetickhastaqueconozcaquesuspredecesoresterminaron de simular el ltimo tick, debe recibir un mensaje de cada uno de sus predecesores para cadatick).Porotrolado,silasimulacinessincrnica,unavezqueelrelojglobalsesincroniza,sloseprecisa transmitir los mensajes sealando interacciones o actualizaciones de estados. Luego, si los estadoscambian menos frecuentemente que cada tick, un reloj global puede ser ms eficiente.Lasimulacindirigidaportiempoparecesermenoseficientequelamanejadaporeventosyaquepuedehaberticksduranteloscualesnohayaeventosqueandebensimularse.Sinembargo,lasimulacinmanejadaportiempoevitaeloverheadextradesincronizacinnecesario.Luego,puedeseradecuadaparasistemascontopologadinmica,yparasistemasenloscualespasanmuchascosasalmismo tiempo.b) Simulacin dirigida por eventosRecordemosqueensimulacionesdirigidasporeventos,eltiemposeincrementadeuneventoalsiguiente(eventorepresentauncambioenelestado),luegopuedetenermayoraceleracinpotencial.Tambin puede ser:1) Sincrnica: el reloj global se pone en el mnimo tiempo de prximo evento para todos los procesos.Puedehaberunnicoprocesodedicadoasincronizar,oestardistribuido.Haydiversosmtodosparamantener el reloj global:2) Asincrnica: el reloj local para cada proceso se pone el mnimo tiempo de evento para ese proceso.Tiene alta desempeo potencial, ya que los procesos pasan menos tiempo esperando a otros, y los eventosindependientespuedensersimuladossimultneamente,aunqueocurranendistintotiemposimulado.Estasaproximacinhasidomuydifundidadebidoaquepareceseraquellaenlaquepuedenobtenersemayoresgradosdeaceleracin.Enlassiguientesseccionesestudiaremoscondetallealgoritmosparasincronizacin en esta clase de simulacin.Ejemplo 15Supongamos el caso de simular eventos en una red como la que aparece en la figura 19. En el caso (a),inicialmente partimos de un reloj global sincronizado (5) y todos los procesos avanzan simultneamentealsiguientetickdereloj(6).Elgradodeparalelismomejoraenelcaso(b),dondelasimulacinesasincrnica.Aqucadaprocesopuedeavanzarunticksirecibesealesdelosprocesospredecesores,favoreciendo la aceleracin en la simulacin. La situacin mejora an ms en el caso de tener simulacindirigidaporevento,yaqueelrelojglobal(GVT)avanzadirigidoporeventosynoporreloj,pudiendoacelerar an mas el procesamiento de eventos. En el caso que la simulacin sea sincrnica, los procesosdebensincronizarseentreshastatodostenerelmismotiempodesimulacin.Elmayorgradodeaceleracinselograenelcaso(d),dondelasimulacinesdirigidaporeventosyasincrnica,luegolasnicas dependencias estn dadas por los datos de la simulacin en s.Figura 19 - Simulacin paralela dirigida por tiempo: (a) Sincrnica; (b) Asincrnica, y dirigida poreventos: (a) Sincrnica; (b) Asincrnica4.3. Procesos fsicos y lgicosVolvamosaanalizarelfuncionamientodeunsimuladordeeventosdiscretos:cadaeventotieneuntimestamp.Elsimuladorsacaeleventoconmenortimestampdelalistayloprocesa,planificandoadems nuevos eventos en el futuro simulado. Con este paradigma de ejecucin, es crucial que siempre seseleccione el evento con menor timestamp. Si uno eligiera alguno con timestamp mayor, podra modificarvariablesdeestadousadasposteriormenteporeleventodemenortimestamp,provocandoerroresdecausalidad. En otras palabras, deben satisfacerse ciertas restricciones de secuencia para que los clculossean correctos.LamayoradelasestrategiasPDESexistentesevitantalessecuenciasusandounametodologaorientadaaprocesosqueprohibaestrictamentequelosprocesostenganaccesodirectoavariablesdeestadocompartidasusandounaaproximacinasincrnicaporeventos.Elsistemamodelado,conocidocomosistemafsico,sevecomosiestuvieracompuestodeunconjuntodeprocesosfsicosqueinteractanendistintospuntosentiemposimulado.ElsimuladorseconstruyecomounconjuntodeprocesoslgicosP0,P1,...,unoporprocesofsico.Todaslasinteraccionesentreprocesosfsicossemodelan con mensajes enviados entre los procesos lgicos correspondientes.Asumimos que la simulacin consiste de N procesos lgicos P0, ..., PN-1. Clocki se refiere al tiemposimuladohastaelcualhaavanzadoPi.Cuandouneventoseprocesa,elrelojdelprocesoseadelantahasta el timestamp de dicho evento. Si Pi puede mandar un mensaje a Pj durante la simulacin, diremosque hay un enlace entre Pi y Pj.Comocadaprocesolgicocontieneunaporcindelestadocorrespondientealprocesofsicoquemodela,lasvariablesdeestadosedividenenunconjuntodisjunto,sedebelograrqueningnprocesolgico acceda directamente a ms de un estado, lo que es ms o menos complejo dependiendo de la apli-cacin. Por ejemplo, no suele ser difcil para una simulacin de una red con colas (un proceso lgico paracada servidor). En cambio, en autmatas celulares la informacin debe compartirse entre celdas vecinas.Enlaausenciadevariablesdeestadocompartidas,laaproximacinmsnaturalparaprogramarestasimulacines"emular"lamemoriacompartidaconstruyendounprocesolgicoparacadasectordelagrilla, y enviando mensajes de "lectura y escritura" de eventos para acceder a la informacin compartida.Sin embargo se obtiene baja desempeo porque el overhead del pasajedemensajesessubstancial,ylosprocesosdelagrillapuedentransformarseencuellosdebotella.Unaaproximacinmseficienteesduplicarlainformacincompartidaenlosprocesoslgicos(celdas)quelanecesitan.Comoelestadocompartidopuedesermodificado,seprecisaunprotocoloparaasegurarcoherenciaentrelasdiversascopiasdelestadocompartido.Estaaproximacinpuedeserefectivaparalograrbuendesempeo;sinembargo complica significativamente la codificacin de la aplicacin, haciendo difcil su comprensin ymantenimiento.Para asegurar que nohayerroresdecausalidadsedebecumplirlarestriccindecausalidadlocal:una simulacin de eventos discretos consistente de procesos lgicos obedece a la restriccin de causalidadlocal si y solo si cada proceso lgico procesa eventos en orden no decreciente de timestamps. El adherir aesta restriccin es suficiente aunque no necesario para garantizar que no hay errores de causalidad. Puedeno ser necesario, porquedoseventosdentrodeunmismoprocesolgicopuedenserindependientes,encuyo caso procesarlos fuera de secuencia no provoca errores de causalidad.Figura 20 - Error de causalidad por sincronizacin entre procesos lgicos.La exclusin de estados compartidos puede provocar errores de causalidad. Consideremos dos eventos,E1 en el proceso lgico LP1 con timestamp 10, y E2 en LP2 con timestamp 20. Si E1 planifica un nuevoeventoE3paraLP2quecontieneuntimestampmenorque20,E3podraafectaraE2,porendesenecesitaejecucinsecuencialdelostreseventos.Siunonotieneinformacinacercadequeventospodran ser planificados por otros eventos, uno se vera forzado a concluir que el nico evento seguro paraprocesar es el que tiene el menor timestamp, provocando ejecucin secuencial.Desde el punto de vista del sistema fsico, la causa siempredebeprecederalefecto.Estasrelacionescausa-efectodelsistemafsicosetransformanenrestriccionesdesecuenciaenelsimulador(yelsimuladorpuedetenermsrestriccionesquesurgendelaformaenquefueprogramado).Laresponsabilidaddelmecanismodesimulacinesasegurarqueestasrestriccionesnoseanvioladasalejecutarenparalelo.PodemosdecidirsiE1puedeejecutarconcurrentementeconE2,perocmosabemos si E1 afecta a E2 sin haber ejecutado la simulacin de E1? Este es el dilema fundamental en lasestrategias de PDES. La secuencia en la cual E1 afecta a E2 puede ser una secuencia compleja de eventos,y depende de los timestamps de los eventos.Los mecanismos PDES tratan de proveer soluciones a esta clase de problema. En general se usan dosaproximaciones:conservadorasyoptimistas.Lasconservadorasevitanlaposibilidaddeerroresdecausalidad, basndose en alguna estrategia para determinar cundo es seguro procesar un evento. Por otrolado,lasaproximacionesoptimistasusanunasolucindedeteccinyrecuperacin:loserroressedetectan, y se invoca un mecanismo de rollback para recuperarse.4.4. Mecanismos conservadoresLosprimerosmecanismosdesimulacindistribuidafueronconservadores.Elproblemabsicodeestos mecanismos esdeterminar cundoesseguroprocesarunevento.Msprecisamente,siunprocesotieneuneventonoprocesadoconuntimestamp(yningnotrocontimestampmenor),ysepuededeterminarqueesimposiblerecibirotroeventocontimestampmenor,eleventosepuedeprocesardeforma segura, porque no habr una violacin de la restriccin de causalidad.En el algoritmo presentado por [Cha79], un proceso con un mensaje no procesado en todos sus enlacesde entrada pone su reloj local en el mnimo de todos los timestamps y procesa todos los mensajes con esetimestamp.Todoslosmensajesfuturostendrntimestampsposterioresalrelojlocalyaquelleganenorden cronolgico en cada enlace.Elprocedimientoserepitemientrashayamensajesnoprocesadosenlosenlacesdeentrada.Siunenlaceconelmenortimestampnotienemensajes,entoncessebloquea(porque puede recibir un mensaje con timestamp menor a todos los otros).Estas aproximacin puede provocar abrazo mortal si hay un ciclo de procesos bloqueados. En general,si hay relativamente pocos mensajes de eventos no procesados en relacin con el nmero de enlaces en lared, o si los eventos no procesados se agrupan en una porcin de lared,elabrazomortalpuedeocurrirmuy frecuentemente [Cha81].Ejemplo 16Supongamos una simulacin concuatroprocesoslgicoscomoenlafigura21.SupongamosqueP1enva elmensaje(3,m1)aP2,P3mandaelmensaje(2,m2)aP2,yP3notienemensajessinprocesarcomo se ve en la fig. 21a. P2 procesa el mensaje (2,m2) y produce (5, m3) que se manda a P4, como se veen la fig. 21b. En este punto, P2 no puede procesar el mensaje (3,m1) porque P2 est bloqueado por P3.P3 tambin est bloqueado por P2: por ende hay abrazo mortal. (a)(b)Figura 21. Deadlock en aproximaciones conservadoras4.4.1. Evitando abrazo mortalUnaformaderesolverelproblemadeexistenciadeabrazomortaltratadeevitarlosespecificandoestticamenteenlacesqueindicanquprocesospuedencomunicarseconotros[Cha79].Sabemosquepara determinar cundo es seguro procesar un mensaje, la secuencia de timestamps en un enlace debe sercreciente. Por ende, el timestamp del ltimo mensaje en un enlace de entrada es un lmite inferior en eltimestamp de todo mensaje subsiguiente. La idea es aprovechar esta informacin y usar mensajes nulos,que no corresponden a ninguna actividad en el sistema fsico.Un mensaje nulo de PA a PB es una promesa de que no se enviar un mensaje con timestamp menorque el mensaje nulo. Cmo se determinan los timestamps de los mensajes nulos que se mandan? El relojde cada enlace de entrada provee un lmite inferior en el timestamp del siguiente evento sin procesar. Estelmite de entrada puede usarse para determinar un lmite inferior en el timestamp del siguiente mensajede salida. Siempre que un proceso termina de procesar un evento, enva un mensaje nulo a cada uno desus ports de salida indicando el lmite. De esta forma el receptor del mensaje nulo puede calcular nuevoslmitesensusenlacesdesalida,enviarestainformacinasusvecinos,etc.Deestaformaserompeelciclo de procesos bloqueados y se evita el abrazo mortal.Este mecanismo evita el abrazo mortal mientras que uno no tenga ciclos en los cuales elincrementodetimestampcolectivodeunmensajequeatraviesaelciclopuedasercero.Unacondicinnecesariaysuficiente para abrazo mortal usando este esquema es que exista un ciclo de enlaces con el mismo tiempode enlace (por ejemplo, en la figura 22 si el avance es cero hay abrazo mortal).Veamos un argumento intuitivo de porqu no hay abrazo mortal. Para que exista, debe haber un ciclode procesos bloqueados, por ejemplo, P1 bloquea a P2, P2 bloquea a P3, etc. hasta Pn, y Pn bloquea P1.SeatieltiempolocaldelrelojdePi.Luego,siPiestbloqueandoaPj,Pjdebeestaresperandounmensaje de Pi y su tiempo de reloj local, tj debe ser igual al reloj del enlace de Pi a Pj. Pero si Pi tambinestbloqueado,debehaberactualizadolosrelojesdesusenlacesdesalidaparaqueseanmayoresoiguales al reloj local de Pi, ti. Luego, si tj>=ti, t1 >= t1. Por la presuncin de predictibilidad, por lo menosunprocesoenelciclo,digamosPi,conrelojesdelenlacedesalidaestrictamentemayoresquesurelojlocal, por ejemplo, ti>ti+1. Luego, tenemos t1>t1, una contradiccin.Ejemplo 17Supongamosqueestudiamoslostresprocesoslgicosdelafigura22a.Enestecaso,elalgoritmoconservadorentraenDeadlock.Ahorasupongamosquecadaprocesolgicoprogresaenavancesde9unidades de tiempo. Enla figura 22b vemos laemisindelosmensajesnulosparaestecaso.Luego,elproceso P2 tiene dos enlaces de entrada con tiempo local en 21, por ende, procesa el primer mensaje delenlace elegido y desaparece el abrazo mortal que exista previamente.Figura 22 - Evitando Deadlock con mensajes nulos.Una variacin en la aproximacin de mensaje nulo es mandar mensajes nulos en una base de demandaenlugardedespusdecadaevento,comohaceelprotocoloSRADS[Rey82].Aqu,siemprequeunproceso est por bloquearse pide el siguiente mensaje (nulo u otro) al proceso emisor conectado al enlacede entrada. Esta aproximacin ayuda a reducir la cantidad de trfico de mensajes nulos, aunque puede sernecesaria mayor demorapara recibir mensajes nulos debido a que son necesarios dos mensajes. SRADStrabaja bien con sistemas sincrnicos con interacciones infrecuentes, ya que a medida que la interaccinaumenta, el overhead degrada el desempeo.Una mejora al esquema de mensajes nulos usa un timeout paratransmisin.Silatransmisindeunmensaje nulo se demora un tiempo, podra no necesitar ser transmitido porque ser generado un mensajeconmayortimestamp.Estodisminuireltotaldemensajesnulosnecesarios,aunquealgunosprocesospuedenserdemoradosalesperarinformacindetiming.Losmensajesnulosposterioresenunenlacepodraneliminarmensajesnulosnoprocesadospreviamenteenelenlace,yaquesonobsoletos.Otramejoraposibledelalgoritmoesqueunprocesomandemensajesnulosensusenlacesdesalidaslocuando se bloquea.4.4.2. Deteccin y recuperacin de abrazo mortalUna aproximacin alternativa usa un mecanismo para detectar cuando la simulacin entr en abrazomortal, y otro para romperlo. El abrazo mortal puede romperse porque los mensajes con el menor times-tampsiempresonsegurosdeprocesar.Cuandounprocesosebloqueamandaunmensaje(llamado"probe") con timestamp con su reloj local a alguno de sus predecesores para obtener informacin de susrelojes. El proceso receptor enviarsuvalordelrelojlocalalprocesoquelopidesiesteesposterioralreloj local del proceso quelopide.Sino,envaprobesasuspredecesores.Lamayoradelassolucionesprecisan que el mensaje contenga elcaminoquehaatravesadoyposiblementelosrelojeslocalesdelosprocesos en el camino para detectar y corregir un abrazo mortal. Luego, los mensajes crecen en longitudmientras pasan.Ejemplo 18Veamos cmo los algoritmos de mensajes nulos evitan abrazo mortal para el ejemplo de la figura 23.El preclculo para los procesadores P2 y P3 se asume como 2. Los nmeros arriba de los procesadores enla figura muestran sus relojes locales antes que se enven los mensajes. P2 enva el mensaje nulo (4, null)a P3. Luego P3 actualiza su reloj local a 4 y enva el mensaje (6, null) a P2. P2 puede procesar el mensaje(3, m1) y actualizar su reloj a 3, produciendo el mensaje (8, m4), que se enva a P3.Figura 23 - Uso de mensajes nulos para la figura 21Esta aproximacinpuedemodificarparadetectaryrecuperarabrazosmortaleslocales(porejemplo,situaciones donde slo una porcin de la red est en abrazo m