7 research outputs found

    Reformulated acyclic partitioning for rail-rail containers transshipment

    Get PDF
    Many rail terminals have loading areas that are properly equipped to move containers between trains. With the growing throughput of these terminals all the trains involved in a sequence of such movements may not ¿t in the loading area simultaneously, and storage areas are needed to place containers waiting for their destination train, although this storage increases the cost of the transshipment. This increases the complexity of the planning decisions concerning these activities, since now trains need to be packed in groups that ¿t in the loading area, in such a way that the number of containers moved to the storage area is minimized. Additionally, each train is only allowed to enter the loading area once. Similarly to previous authors, we model this situation as an acyclic graph partitioning problem for which we present a new formulation, and several valid inequalities based on its theoretical properties. Our computational experiments show that the new formulation outperforms the previously existing ones, providing results that improve even on the best exact algorithm designed so far for this problem.Peer ReviewedPostprint (author's final draft

    Arrows for knowledge-based circuits

    No full text
    Knowledge-based programs (KBPs) are a formalism for directly relating agents' knowledge and behaviour in a way that has proven useful for specifying distributed systems. Here we present a scheme for compiling KBPs to executable automata in finite environments with a proof of correctness in Isabelle/HOL. We use Arrows, a functional programming abstraction, to structure a prototype domain-specific synchronous language embedded in Haskell. By adapting our compilation scheme to use symbolic representations we can apply it to several examples of reasonable size

    Addressing variability in reuse prediction for last-level caches

    Get PDF
    Last-Level Cache (LLC) represents the bulk of a modern CPU processor's transistor budget and is essential for application performance as LLC enables fast access to data in contrast to much slower main memory. Problematically, technology constraints make it infeasible to scale LLC capacity to meet the ever-increasing working set size of the applications. Thus, future processors will rely on effective cache management mechanisms and policies to get more performance out of the scarce LLC capacity. Applications with large working set size often exhibit streaming and/or thrashing access patterns at LLC. As a result, a large fraction of the LLC capacity is occupied by dead blocks that will not be referenced again, leading to inefficient utilization of the LLC capacity. To improve cache efficiency, the state-of-the-art cache management techniques employ prediction mechanisms that learn from the past access patterns with an aim to accurately identify as many dead blocks as possible. Once identified, dead blocks are evicted from LLC to make space for potentially high reuse cache blocks. In this thesis, we identify variability in the reuse behavior of cache blocks as the key limiting factor in maximizing cache efficiency for state-of-the-art predictive techniques. Variability in reuse prediction is inevitable due to numerous factors that are outside the control of LLC. The sources of variability include control-flow variation, speculative execution and contention from cores sharing the cache, among others. Variability in reuse prediction challenges existing techniques in reliably identifying the end of a block's useful lifetime, thus causing lower prediction accuracy, coverage, or both. To address this challenge, this thesis aims to design robust cache management mechanisms and policies for LLC in the face of variability in reuse prediction to minimize cache misses, while keeping the cost and complexity of the hardware implementation low. To that end, we propose two cache management techniques, one domain-agnostic and one domain-specialized, to improve cache efficiency by addressing variability in reuse prediction. In the first part of the thesis, we consider domain-agnostic cache management, a conventional approach to cache management, in which the LLC is managed fully in hardware, and thus the cache management is transparent to the software. In this context, we propose Leeway, a novel domain-agnostic cache management technique. Leeway introduces a new metric, Live Distance, that captures the largest interval of temporal reuse for a cache block, providing a conservative estimate of a cache block's useful lifetime. Leeway implements a robust prediction mechanism that identifies dead blocks based on their past Live Distance values. Leeway monitors the change in Live Distance values at runtime and dynamically adapts its reuse-aware policies to maximize cache efficiency in the face of variability. In the second part of the thesis, we identify applications, for which existing domain-agnostic cache management techniques struggle in exploiting the high reuse due to variability arising from certain fundamental application characteristics. Specifically, applications from the domain of graph analytics inherently exhibit high reuse when processing natural graphs. However, the reuse pattern is highly irregular and dependent on graph topology; a small fraction of vertices, hot vertices, exhibit high reuse whereas a large fraction of vertices exhibit low- or no-reuse. Moreover, the hot vertices are sparsely distributed in the memory space. Data-dependent irregular access patterns, combined with the sparse distribution of hot vertices, make it difficult for existing domain-agnostic predictive techniques in reliably identifying, and, in turn, retaining hot vertices in cache, causing severe underutilization of the LLC capacity. In this thesis, we observe that the software is aware of the application reuse characteristics, which, if passed on to the hardware efficiently, can help hardware in reliably identifying the most useful working set even amidst irregular access patterns. To that end, we propose a holistic approach of software-hardware co-design to effectively manage LLC for the domain of graph analytics. Our software component implements a novel lightweight software technique, called Degree-Based Grouping (DBG), that applies a coarse-grain graph reordering to segregate hot vertices in a contiguous memory region to improve spatial locality. Meanwhile, our hardware component implements a novel domain-specialized cache management technique, called Graph Specialized Cache Management (GRASP). GRASP augments existing cache policies to maximize reuse of hot vertices by protecting them against cache thrashing, while maintaining sufficient flexibility to capture the reuse of other vertices as needed. To reliably identify hot vertices amidst irregular access patterns, GRASP leverages the DBG-enabled contiguity of hot vertices. Our domain-specialized cache management not only outperforms the state-of-the-art domain-agnostic predictive techniques, but also eliminates the need for any storage-intensive prediction mechanisms

    Programming Languages and Systems

    Get PDF
    This open access book constitutes the proceedings of the 28th European Symposium on Programming, ESOP 2019, which took place in Prague, Czech Republic, in April 2019, held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2019

    Solution Strategies in Short-term Scheduling for Multitasking Multipurpose Plants

    Get PDF
    This thesis addresses challenges in short-term scheduling of multipurpose facilities using mathematical optimization. Such approach involves the formulation of a predictive model and an objective function, and the development of a solution strategy around such scheduling model formulation in order to obtain an operating schedule that achieves certain objectives, such as maximization of throughput or minimization of makespan. There are many choices that must be made in these aspects of short-term scheduling, and these choices often lead to a trade-off between the solution quality and computational time. This thesis presents two studies analyzing the quality-CPU time trade-off in two major aspects: time representations in model formulation, and the strategy for handling multiple conflicting objectives. The ultimate goal is to develop bi-objective short-term scheduling approaches to tackle industrial-sized problems for multitasking multipurpose plants that are computationally inexpensive, but provide practical schedules with a good balance between throughput and makespan. The first study addresses the first aspect of interest and compares two different time representation approaches: discrete-time and continuous-time approaches. This comparison is made considering maximization of throughput as the sole objective. We show that, for the modeling framework implemented in this work, the selected discrete-time formulation typically obtained higher quality solutions, and required less time to solve compared to the selected continuous-time formulation, as the continuous-time formulation exhibited detrimental trade-off between computational time and solution quality. We also show that within the scope of this study, non-uniform discretization schemes typically yielded solutions of similar quality compared to a fine uniform discretization scheme, but required only a fraction of the computational time. The second study builds on the first study and develops a strategy around an efficient non-uniform discretization approach to handle the conflicting objectives of throughput maximization and makespan minimization, focusing on a priori multi-objective methods. Two main contributions are presented in this regard. The first contribution is to propose a priori bi-objective methods based on the hybridization of compromise programming and the U+03B5-constraint method. The second is to present short-term operational objective functions, that can be used within short-term scheduling to optimize desired long term objectives of maximizing throughput and minimizing makespan. Two numerical case studies, one in a semiconductor processing plant and an analytical services facility, are presented using a rolling horizon framework, which demonstrate the potential for the proposed methods to improve solution quality over a traditional a priori approac

    Solving Graph Partitioning Problems Arising in Tagless Cache Management

    No full text

    Programming Languages and Systems

    Get PDF
    This open access book constitutes the proceedings of the 30th European Symposium on Programming, ESOP 2021, which was held during March 27 until April 1, 2021, as part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2021. The conference was planned to take place in Luxembourg and changed to an online format due to the COVID-19 pandemic. The 24 papers included in this volume were carefully reviewed and selected from 79 submissions. They deal with fundamental issues in the specification, design, analysis, and implementation of programming languages and systems
    corecore