44,682 research outputs found

    Survey on Combinatorial Register Allocation and Instruction Scheduling

    Full text link
    Register allocation (mapping variables to processor registers or memory) and instruction scheduling (reordering instructions to increase instruction-level parallelism) are essential tasks for generating efficient assembly code in a compiler. In the last three decades, combinatorial optimization has emerged as an alternative to traditional, heuristic algorithms for these two tasks. Combinatorial optimization approaches can deliver optimal solutions according to a model, can precisely capture trade-offs between conflicting decisions, and are more flexible at the expense of increased compilation time. This paper provides an exhaustive literature review and a classification of combinatorial optimization approaches to register allocation and instruction scheduling, with a focus on the techniques that are most applied in this context: integer programming, constraint programming, partitioned Boolean quadratic programming, and enumeration. Researchers in compilers and combinatorial optimization can benefit from identifying developments, trends, and challenges in the area; compiler practitioners may discern opportunities and grasp the potential benefit of applying combinatorial optimization

    Parallel structurally-symmetric sparse matrix-vector products on multi-core processors

    Full text link
    We consider the problem of developing an efficient multi-threaded implementation of the matrix-vector multiplication algorithm for sparse matrices with structural symmetry. Matrices are stored using the compressed sparse row-column format (CSRC), designed for profiting from the symmetric non-zero pattern observed in global finite element matrices. Unlike classical compressed storage formats, performing the sparse matrix-vector product using the CSRC requires thread-safe access to the destination vector. To avoid race conditions, we have implemented two partitioning strategies. In the first one, each thread allocates an array for storing its contributions, which are later combined in an accumulation step. We analyze how to perform this accumulation in four different ways. The second strategy employs a coloring algorithm for grouping rows that can be concurrently processed by threads. Our results indicate that, although incurring an increase in the working set size, the former approach leads to the best performance improvements for most matrices.Comment: 17 pages, 17 figures, reviewed related work section, fixed typo

    Energy efficiency in discrete-manufacturing systems: insights, trends, and control strategies

    Get PDF
    Since the depletion of fossil energy sources, rising energy prices, and governmental regulation restrictions, the current manufacturing industry is shifting towards more efficient and sustainable systems. This transformation has promoted the identification of energy saving opportunities and the development of new technologies and strategies oriented to improve the energy efficiency of such systems. This paper outlines and discusses most of the research reported during the last decade regarding energy efficiency in manufacturing systems, the current technologies and strategies to improve that efficiency, identifying and remarking those related to the design of management/control strategies. Based on this fact, this paper aims to provide a review of strategies for reducing energy consumption and optimizing the use of resources within a plant into the context of discrete manufacturing. The review performed concerning the current context of manufacturing systems, control systems implemented, and their transformation towards Industry 4.0 might be useful in both the academic and industrial dimension to identify trends and critical points and suggest further research lines.Peer ReviewedPreprin

    Security Optimization for Distributed Applications Oriented on Very Large Data Sets

    Get PDF
    The paper presents the main characteristics of applications which are working with very large data sets and the issues related to security. First section addresses the optimization process and how it is approached when dealing with security. The second section describes the concept of very large datasets management while in the third section the risks related are identified and classified. Finally, a security optimization schema is presented with a cost-efficiency analysis upon its feasibility. Conclusions are drawn and future approaches are identified.Security, Optimization, Very Large Data Sets, Distributed Applications
    • …
    corecore