44,682 research outputs found
Survey on Combinatorial Register Allocation and Instruction Scheduling
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
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
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
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
- …