6 research outputs found
Performance Bounds for Synchronized Queueing Networks
Las redes de Petri estocásticas constituyen un modelo unificado de las diferentes extensiones de redes de colas con sincronizaciones existentes en la literatura, válido para el diseño y análisis de prestaciones de sistemas informáticos distribuidos.
En este trabajo se proponen técnicas de cálculo de cotas superiores e inferiores de las prestaciones de redes de Petri estocásticas en estado estacionario. Las cotas obtenidas son calculables en tiempo polinómico en el tamaño del modelo, por medio de la resolución de ciertos problemas de programación lineal definidos a partir de la matriz de incidencia de la red (en este sentido, las técnicas desarrolladas pueden considerarse estructurales). Las cotas calculadas dependen sólamente de los valores medios de las variables aleatorias que describen la temporización del sistema, y son independientes de los momentos de mayor orden. Esta independencia de la forma de las distribuciones de probabilidad asociadas puede considerarse como una útil generalización de otros resultados existentes para distribuciones particulares, puesto que los momentos de orden superior son, habitualmente, desconocidos en la realidad y difíciles de estimar. Finalmente, las técnicas desarrolladas se aplican al análisis de diferentes ejemplos tomados de la literatura sobre sistemas informáticos distribuidos y sistemas de fabricación. ******* Product form queueing networks have long been used for the performance evaluation of computer systems. Their success has been due to their capability of naturally expressing sharing of resources and queueing, that are typical situations of traditional computer systems, as well as to their efficient solution algorithms, of polynomial complexity on the size of the model. Unfortunately, the introduction of synchronization constraints usually destroys the product form solution, so that general concurrent and distributed systems are not easily studied with this class of models. Petri nets have been proved specially adequate to model parallel and distributed systems. Moreover, they have a well-founded theory of analysis that allows to investigate a great number of qualitative properties of the system. In the original definition, Petri nets did not include the notion of time, and tried to model only the logical behaviour of systems by describing the causal relations existing among events. This approach showed its power in the specification and analysis of concurrent systems in a way independent of the concept of time. Nevertheless the introduction of a timing specification is essential if we want to use this class of models for the performance evaluation of distributed systems. One of the main problems in the actual use of timed and stochastic Petri net models for the quantitative evaluation of large systems is the explosion of the computational complexity of the analysis algorithms. In general, exact performance results are obtained from the numerical solution of a continuous time Markov chain, whose dimension is given by the size of the state space of the model. Structural computation of exact performance measures has been possible for some subclasses of nets such as those with state machine topology. These nets, under certain assumptions on the stochastic interpretation are isomorphic to Gordon and Newell's networks, in queueing theory terminology. In the general case, efficient methods for the derivation of performance measures are still needed. Two complementary approaches to the derivation of exact measures for the analysis of distributed systems are the utilization of approximation techniques and the computation of bounds. Approximate values for the performance parameters are in general more efficiently derived than the exact ones. On the other hand, "exactness" only exists in theory! In other words, numerical algorithms must be applied in practice for the computation of exact values, therefore making errors is inevitable. Performance bounds are useful in the preliminary phases of the design of a system, in which many parameters are not known accurately. Several alternatives for those parameters should be quickly evaluated, and rejected those that are clearly bad. Exact (and even approximate) solutions would be computationally very expensive. Bounds become useful in these instances since they usually require much less computation effort. The computation of upper and lower bounds for the steady-state performance of timed and stochastic Petri nets is considered in this work. In particular, we study the throughput of transitions, defined as the average number of firings per time unit. For this measure we try to compute upper and lower bounds in polynomial time on the size of the net model, by means of proper linear programming problems defined from the incidence matrix of the net (in this sense, we develop structural techniques). These bounds depend only on the mean values and not on the higher moments of the probability distribution functions of the random variables that describe the timing of the system. The independence of the probability distributions can be viewed as a useful generalization of the performance results, since higher moments of the delays are usually unknown for real cases, and difficult to estimate and assess. From a different perspective, the obtained results can be applied to the analysis of queueing networks extended with some synchronization schemes. Monoclass queueing networks can be mapped on stochastic Petri nets. On the other hand, stochastic Petri nets can be interpreted as monoclass queueing networks augmented with synchronization primitives. Concerning the presentation of this manuscript, it should be mentioned that chapter 1 has been written with the object of giving the reader an outline of the stochastic Petri net model: its definition, terminology, basic properties, and related concepts, together with its deep relation with other classic stochastic network models. Chapter 2 is devoted to the presentation of the net subclasses considered in the rest of the work. The classification presented here is quite different from the one which is usual in the framework of Petri nets. The reason lies on the fact that our classification criterion, the computability of visit ratios for transitions, is introduced for the first time in the field of stochastic Petri nets in this work. The significance of that criterion is based on the important role that the visit ratios play in the computation of upper and lower bounds for the performance of the models. Nevertheless, classical important net subclasses are identified here in terms of the computability of their visit ratios from different parameters of the model. Chapter 3 is concerned with the computation of reachable upper and lower bounds for the most restrictive subclass of those presented in chapter 2: marked graphs. The explanation of this fact is easy to understand. The more simple is the model the more accessible will be the techniques an ideas for the development of good results. Chapter 4 provides a generalization for live and bounded free choice nets of the results presented in the previous chapter. Quality of obtained bounds is similar to that for strongly connected marked graphs: throughput lower bounds are reachable for bounded nets while upper bounds are reachable for 1-bounded nets. Chapter 5 considers the extension to other net subclasses, like mono-T-semiflow nets, FRT-nets, totally open deterministic systems of sequential processes, and persistent nets. The results are of diverse colours. For mono-T-semiflow nets and, therefore, for general FRT-nets, it is not possible (so far) to obtain reachable throughput bounds. On the other hand, for bounded ordinary persistent nets, tight throughput upper bounds are derived. Moreover, in the case of totally open deterministic systems of sequential processes the exact steady-state performance measures can be computed in polynomial time on the net size. In chapter 6 bounds for other interesting performance measures are derived from throughput bounds and from classical queueing theory laws. After that, we explore the introduction of more information from the probability distribution functions of service times in order to improve the bounds. In particular, for Coxian service delay of transitions it is possible to improve the throughput upper bounds of previous chapters which held for more general forms of distribution functions. This improvement shows to be specially fruitful for live and bounded free choice nets. Chapter 7 is devoted to case studies. Several examples taken from literature in the fields of distributed computing systems and manufacturing systems are modelled by means of stochastic Petri nets and evaluated using the techniques developed in previous chapters. Finally, some concluding remarks and considerations on possible extensions of the work are presented
Análisis de la implantación del modelo de integración de madurez de capacidades “CMMi” en organizaciones dedicadas a desarrollo de proyectos de software
Capacidades “CMMi” en organizaciones dedicadas a desarrollo de proyectos de softwar
MC-Spy. Un sistema para la explotación de la información histórica de operaciones realizadas en banca electrónica
MC-Spy básicamente es un módulo de una aplicación web, que por un lado: maneja, almacena y gestiona una serie de datos estadísticos obtenidos por él mismo de dicha aplicación web; y por otro lado utiliza todos esos datos almacenados para generar estadísticas y previsiones en formato de texto y gráfico. MC-Spy surgió inicialmente, y de hecho se desarrolló, bajo el contexto de su integración en una banca electrónica, pero puede ser totalmente integrado en cualquier otra aplicación web (Java), como de hecho se hizo posteriormente por parte de la empresa en la que se realizó el proyecto. Gracias a MC-Spy, los administradores de la banca electrónica (o aplicación web en general), podrán detectar al instante posibles errores de funcionamiento de la banca, podrán obtener estadísticas con la que los directores bancarios poder hacer sus decisiones, e incluso mostrar previsiones de entrada de dinero, operaciones que se prevé que se realizarán en la banca en los próximos meses (útil por ejemplo para anticipar un aumento de prestaciones de los servidores) ,etc… gracias a unos algoritmos de previsiones en base a las series de datos almacenados que el mismo MC-Spy ha estado contabilizando
Una aproximación a la optimización de algoritmos mediante el uso de minimización de funciones booleanas
Este proyecto explora la posibilidad de optimizar algoritmos utilizando técnicas de minimización de funciones booleanas. La idea de partida es que expresar un programa a muy bajo nivel permitirá localizar y eliminar redundancia. Para ello se trabaja con operaciones bit a bit de lógica booleana. Usamos únicamente la función NAND para expresar cualquier otra función gracias a su propiedad de completitud funcional. Expresar un algoritmo de esta forma nos permite, por un lado, tener una medida del coste del algoritmo en funciones NAND y, por otro, paralelizarlo. Mediante minimización, se puede optimizar un circuito lógico equivalente a un fragmento de código secuencial, que no tenga bucles ni recursividad. Para ello se ha desarrollado una técnica propia de minimización rápida. Se han desarrollado técnicas para este proyecto que permiten aplicar la minimización a algoritmos recursivos. De este modo se eliminan, por ejemplo, operaciones repetidas en diferentes iteraciones de un bucle. Para llevar a cabo este trabajo se ha desarrollado una notación propia, parecida a un lenguaje ensamblador, que permite trabajar con funciones lógicas y recursividad. Se ha creado una base de datos dónde se definen las funciones recursivas, que pueden representar desde una puerta lógica hasta un algoritmo como el de la suma. Se han implementado los métodos de optimización de estas funciones recursivas y un método de evaluación, mediante el que se ejecutan para comprobar que son correctas. También se han implementado una serie de utilidades para, por ejemplo, traducir entre diferentes notaciones. Finalmente se han comparado los resultados con el algoritmo sin optimizar y con la solución que nos ofrecerían otras herramientas
Optimización mediante Búsqueda Tabú para problemas no lineales en Redes de Petri
La metaheurística de la Búsqueda Tabú, que consiste en una mejora del método de Búsqueda Local mediante el uso de estructuras de memoria, trata de resolver el problema del estancamiento en un máximo local marcando la solución alcanzada como Tabú y evitándola un número de iteraciones dada (lo que se conoce como Tenencia Tabú), explorando así otras soluciones y permitiendo al algoritmo alcanzar soluciones mejores. Las redes de Petri son una herramienta formal útil para el diseño, análisis e implementación de sistemas concurrentes y distribuidos. Existe una amplia gama de técnicas de análisis funcional y no funcional de este tipo de modelos; algunas de esas técnicas se basan en lo que se conoce como teoría estructural, es decir, en la estructura del modelo (matriz de incidencia, marcado inicial, temporización si la hay) y usan técnicas de programación matemática (como la programación lineal o no lineal) para obtener resultados sobre el comportamiento del modelo. En el ámbito del análisis no funcional, algunas de las propiedades o índices analizables tienen que ver con el rendimiento o prestaciones del sistema (throughput). El problema min-max de Bernardi y Campos consiste en hallar una cota inferior del tiempo de ciclo de la transición que queramos para una red de Petri dada mediante un algoritmo de programación matemática no lineal. Este algoritmo se basa principalmente en elementos estructurales de la Red de Petri bajo estudio. PeabraiN es una herramienta desarrollada en Java que ofrece al usuario una interfaz gráfica amigable para trabajar con Redes de Petri. En este trabajo, se desea implementar la Búsqueda Tabú y adaptarla a la resolución del problema min-max de Bernardi y Campos, para después integrar dicha funcionalidad en PeabraiN y permitir al usuario aplicarla y obtener resultados. Después de la integración, se va a estudiar la aplicación de la búsqueda Tabú a diversos ejemplos con el fin de evaluar su funcionalidad