100 research outputs found

    Energy-Efficient Algorithms

    Full text link
    We initiate the systematic study of the energy complexity of algorithms (in addition to time and space complexity) based on Landauer's Principle in physics, which gives a lower bound on the amount of energy a system must dissipate if it destroys information. We propose energy-aware variations of three standard models of computation: circuit RAM, word RAM, and transdichotomous RAM. On top of these models, we build familiar high-level primitives such as control logic, memory allocation, and garbage collection with zero energy complexity and only constant-factor overheads in space and time complexity, enabling simple expression of energy-efficient algorithms. We analyze several classic algorithms in our models and develop low-energy variations: comparison sort, insertion sort, counting sort, breadth-first search, Bellman-Ford, Floyd-Warshall, matrix all-pairs shortest paths, AVL trees, binary heaps, and dynamic arrays. We explore the time/space/energy trade-off and develop several general techniques for analyzing algorithms and reducing their energy complexity. These results lay a theoretical foundation for a new field of semi-reversible computing and provide a new framework for the investigation of algorithms.Comment: 40 pages, 8 pdf figures, full version of work published in ITCS 201

    Modular average case analysis: Language implementation and extension

    Get PDF
    Motivated by accurate average-case analysis, MOdular Quantitative Analysis (MOQA) is developed at the Centre for Efficiency Oriented Languages (CEOL). In essence, MOQA allows the programmer to determine the average running time of a broad class of programmes directly from the code in a (semi-)automated way. The MOQA approach has the property of randomness preservation which means that applying any operation to a random structure, results in an output isomorphic to one or more random structures, which is key to systematic timing. Based on original MOQA research, we discuss the design and implementation of a new domain specific scripting language based on randomness preserving operations and random structures. It is designed to facilitate compositional timing by systematically tracking the distributions of inputs and outputs. The notion of a labelled partial order (LPO) is the basic data type in the language. The programmer uses built-in MOQA operations together with restricted control flow statements to design MOQA programs. This MOQA language is formally specified both syntactically and semantically in this thesis. A practical language interpreter implementation is provided and discussed. By analysing new algorithms and data restructuring operations, we demonstrate the wide applicability of the MOQA approach. Also we extend MOQA theory to a number of other domains besides average-case analysis. We show the strong connection between MOQA and parallel computing, reversible computing and data entropy analysis

    Reversible Computation: Extending Horizons of Computing

    Get PDF
    This open access State-of-the-Art Survey presents the main recent scientific outcomes in the area of reversible computation, focusing on those that have emerged during COST Action IC1405 "Reversible Computation - Extending Horizons of Computing", a European research network that operated from May 2015 to April 2019. Reversible computation is a new paradigm that extends the traditional forwards-only mode of computation with the ability to execute in reverse, so that computation can run backwards as easily and naturally as forwards. It aims to deliver novel computing devices and software, and to enhance existing systems by equipping them with reversibility. There are many potential applications of reversible computation, including languages and software tools for reliable and recovery-oriented distributed systems and revolutionary reversible logic gates and circuits, but they can only be realized and have lasting effect if conceptual and firm theoretical foundations are established first

    Enhancing Variability Modeling in Process-Aware Information Systems through Change Patterns

    Full text link
    [EN] The increasing adoption of process-aware information systems (PAISs) together with the high variability in business processes has resulted in collections of process families. These families correspond to a business process model and its variants, which can comprise hundreds or thousands of different ways of realizing this process. Modeling and managing process variability in this context can be very challenging due to the size of these families. Motivated by this challenge, several approaches enabling process variability have been developed. However, with these approaches PAIS engineers usually are required to model and manage one by one all the elements of a process family and ensure its correctness by their own. This can be tedious and error-prone especially when a process family comprises hundreds or thousands of process variants. For example, variability may not be properly reflected since PAIS engineers need to be aware of each variation of each process variant. Thus, there is a need of methods that allow PAIS engineers to model process variability more explicitly, especially at a level of abstraction higher than the one provided by the existing process variability approaches. However, how process variability is represented in existing approaches becomes critical for these methods (e.g., what language constructs are used to model process variability). In this context, the use of modeling patterns (reusable solutions to a commonly occurring problem) is a promising way to address these issues. For example, patterns have been proved as an efficient solution to model individual business processes. The objective of this thesis is to enhance the modeling of variability in process families through change patterns. First, we conduct a systematic study to analyze existing process variability approaches regarding their expressiveness with respect to process variability modeling as well as their process support. Thus, we can identify how process variability is actually modeled by existing approaches (i.e., a core set of variability-specific language constructs). In addition, based on the obtained empirical evidence, we derive the VIVACE framework, a complete characterization of process variability which comprises also a core set of features fostering process variability. VIVACE enables PAIS engineers to evaluate existing process variability approaches as well as to select that variability approach meeting their requirements best. In addition, it helps process engineers in dealing with PAISs supporting process variability. Second, to facilitate variability modeling in process families, based on the identified language constructs, we present a set of 10 change patterns and show how they can be implemented in a process variability approach. In particular, these patterns support process family modeling and evolution and are able to ensure process family correctness. In order to prove their effectiveness and analyze their suitability, we applied these change patterns in a real scenario. More concretely, we conduct a case study with a safety standard with a high degree of variability. The case study results show that the application of the change patterns can reduce the effort for process family modeling in a 34% and for evolution in a 40%. In addition, we have analyzed how PAIS engineers apply the patterns and their perceptions of this application. Most of them expressed some benefit when applying the change patterns, did not perceived an increase of mental effort for applying the patterns, and agreed upon the usefulness and ease of use of the patterns.[ES] La creciente adopción de sistemas de información dirigidos por procesos de negocio (PAIS) junto con la alta variabilidad en dichos procesos, han dado lugar a la aparición de colecciones de familias de procesos. Estas familias están constituidas por un modelo de proceso de negocio y sus variantes, las cuales pueden comprender entre cientos y miles de diferentes formas de llevar a cabo ese proceso. Gestionar la variabilidad en este contexto puede resultar muy difícil dado el tamaño que estas familias pueden alcanzar. Motivados por este desafío, se han desarrollado varias soluciones que permiten la gestión de la variabilidad en los procesos de negocio. Sin embargo, con estas soluciones los ingenieros deben crear y gestionar uno por uno todos los elementos de las familias de procesos y asegurar ellos mismos su corrección. Esto puede resultar tedioso y propenso a errores especialmente cuando las familias están compuestas de miles de variantes. Por ejemplo, la variabilidad puede no quedar adecuadamente representada ya que los ingenieros deben ser conscientes de todas y cada una de las variaciones de todas las variantes. Así, son necesarios nuevos métodos que permitan modelar la variabilidad de los procesos de una manera más explícita, a un nivel de abstracción más alto del proporcionado por las soluciones actuales. Sin embargo, cómo se representa la variabilidad en estos métodos resulta crítico (ej.: qué primitivas se utilizan). En este contexto, el uso de patrones de modelado (soluciones reutilizables a un problema recurrente) resultan un camino prometedor. Por ejemplo, los patrones han sido probados como una solución eficaz para gestionar procesos de negocio individuales. El objetivo de esta tesis es mejorar el modelado de la variabilidad en las familias de procesos a través del uso de patrones de cambio. En primer lugar, hemos llevado a cabo un estudio sistemático con el fin de analizar las soluciones existentes que permiten gestionar la variabilidad en los procesos, así como el soporte que estas proporcionan. Así, hemos sido capaces de identificar y analizar cuál es el conjunto básico de primitivas específicas para representar la variabilidad. Además, basándonos en la evidencia empírica obtenida, hemos derivado el marco de evaluación VIVACE, el cual recoge las primitivas de variabilidad y un conjunto básico de características que favorecen la variabilidad en los procesos. El principal objetivo de VIVACE es conformar una completa caracterización de la variabilidad en los procesos de negocio. Asimismo, VIVACE permite evaluar las soluciones que gestionan la variabilidad en los procesos, así como seleccionar la solución que se ajuste mejor a sus necesidades. Finalmente, VIVACE puede ayudar a los ingenieros a gestionar PAISs con variabilidad. En segundo lugar, para facilitar el modelado de la variabilidad en las familias de procesos, basándonos en las primitivas identificadas, hemos definido un conjunto de 10 patrones de cambio y hemos mostrado cómo estos patrones pueden ser implementados. En particular, estos patrones ayudan al modelado y la evolución de familias de procesos y son capaces de garantizar la corrección de la propia familia. Para probar su efectividad y analizar su idoneidad, hemos aplicado estos patrones de cambio en un escenario real. En concreto, hemos llevado a cabo un caso de estudio con un estándar de seguridad con un alto nivel de variabilidad. Los resultados de este caso demuestran que la aplicación de nuestros patrones de cambio puede reducir el esfuerzo para el modelado de familias de procesos en un 34% y para la evolución de esos modelos en un 40%. Además, hemos analizado cómo los ingenieros aplican los patrones y cuáles son sus percepciones de esta aplicación. Como resultado, la mayoría de ellos encontró beneficios al aplicar los patrones. Además, no percibieron un aumento en el esfuerzo mental necesario para aplicarlos y estuvieron de acuerdo en la utilid[CA] La creixent adopció de sistemes d'informació dirigits per processos de negoci (PAIS) junt amb l'alta variabilitat en eixos processos, han donat lloc a la aparició de col·leccions de famílies de processos. Estes famílies es formen de un model de procés de negoci i les seues variants, les quals poden comprendre entre cents i milers de diferents formes de dur a terme eixe procés. Modelar la variabilitat dels processos en este context pot resultar molt difícil donat la grandària que aquestes famílies poden aconseguir. Motivats per este desafiament, s'han desenvolupat diverses solucions que permeten la gestió de la variabilitat en els processos de negoci. No obstant, amb aquestes solucions els enginyers que treballen amb PAIS han de crear i gestionar un a un tots els elements de les famílies de processos i assegurar ells mateixos la seua correcció. Això pot resultar tediós i propens a errors especialment quan les famílies es componen de cents o milers de variants. Per exemple, la variabilitat pot no quedar adequadament representada ja que els enginyers han de ser conscients de totes i cadascuna una de les variacions de totes les variants. Per quest motiu, son necessaris nous mètodes que permeten als enginyers de PAIS modelar la variabilitat dels processos de manera més explícita, sobretot a un nivell d'abstracció més alt del proporcionat per les solucions actuals. No obstant, com es representa la variabilitat en aquestos mètodes resulta crític (ex.: quines primitives s'utilitzen per a modelar la variabilitat en els processos). En aquest context, l'ús de patrons de modelatge (solucions reutilitzables a un problema recurrent) resulten un camí prometedor. Per exemple, els patrons han sigut provats com una solució eficaç per modelar i gestionar processos de negoci individuals. L'objectiu d'aquesta tesi 'es millorar el modelatge de la variabilitat en les famílies de processos a través de l'ús de patrons de canvi. En primer lloc, hem dut a terme un estudi sistemàtic per a analitzar les solucions existents per a gestionar la variabilitat en els processos, així com el suport que aquestes proporcionen. D'aquesta manera, som capaços d'identificar i analitzar quin 'es el conjunt bàsic de primitives específiques per a representar la variabilitat. A més, basant-nos en l'evidència empírica obtinguda, hem derivat el marc d'evacuació VIVACE, el qual arreplega les primitives de variabilitat i un conjunt bàsic de característiques que afavoreixen la variabilitat en els processos. Així mateix, VIVACE permet als enginyers de PAIS avaluar les solucions per a gestionar la variabilitat en els processos, així com seleccionar la solució que s'ajusta millor a les seues necessitats. Finalment, VIVACE també pot ajudar als enginyers a gestionar PAISs que donen suport a aquesta variabilitat. En segon lloc, per a facilitar el modelatge de la variabilitat en les famílies de processos, basant-nos en les primitives identificades, hem definit un conjunt de 10 patrons de canvi i hem mostrat com aquestos poden ser implementats. En particular, estos patrons ajuden al modelatge i l'evolució de famílies de processos i garanteixen la correcció de la pròpia família. Per a provar la seua efectivitat i analitzar la seua idoneïtat, hem aplicat els patrons de canvi en un escenari real. En particular, hem dut a terme un cas d'estudi amb un estàndard de seguretat amb un alt nivell de variabilitat. Els resultats de aquest cas demostren que l'aplicació dels nostres patrons de canvi poden reduir l'esforç per al modelatge de famílies de processos en un 34% i per a l'evolució de eixos models en un 40%. A més, hem analitzat com els enginyers de PAIS apliquen els patrons i quines son les seues percepcions d'esta aplicació. Com a resultat, la majoria d'ells va trobar beneficis al aplicar els patrons de canvi. A més, no van percebre un augment en l'esforç mental necessari per a aplicar-los i van estar d'acord en la utilitat i fAyora Esteras, C. (2015). Enhancing Variability Modeling in Process-Aware Information Systems through Change Patterns [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/58426TESI

    Design for quiet living. A Science and Technology Studies perspective on architecture and noise mitigation policies

    Get PDF
    L'abstract è presente nell'allegato / the abstract is in the attachmen
    corecore