2,044 research outputs found
Compiling Real-Time Programs with Timing Constraint Refinement and Structural Code Motion
We present a programming language called TCEL (Time-Constrained Event
Language), whose semantics is based on time-constrained
relationships between observable events. Such a semantics infers only
those timing constraints necessary to achieve real-time correctness,
without over-constraining the system. Moreover, an optimizing compiler
can exploit this looser semantics to help tune the code, so that its
worst-case execution time is consistent with its real-time requirements.
In this paper we describe such a transformation system, which works
in two phases. First the TCEL source code is translated into
an intermediate representation. Then an instruction-scheduling
algorithm rearranges selected unobservable operations, and synthesizes
tasks guaranteed to respect the original event-based constraints.
(Also cross-referenced as UMIACS-TR-94-90
Working Notes from the 1992 AAAI Workshop on Automating Software Design. Theme: Domain Specific Software Design
The goal of this workshop is to identify different architectural approaches to building domain-specific software design systems and to explore issues unique to domain-specific (vs. general-purpose) software design. Some general issues that cut across the particular software design domain include: (1) knowledge representation, acquisition, and maintenance; (2) specialized software design techniques; and (3) user interaction and user interface
The 1990 progress report and future plans
This document describes the progress and plans of the Artificial Intelligence Research Branch (RIA) at ARC in 1990. Activities span a range from basic scientific research to engineering development and to fielded NASA applications, particularly those applications that are enabled by basic research carried out at RIA. Work is conducted in-house and through collaborative partners in academia and industry. Our major focus is on a limited number of research themes with a dual commitment to technical excellence and proven applicability to NASA short, medium, and long-term problems. RIA acts as the Agency's lead organization for research aspects of artificial intelligence, working closely with a second research laboratory at JPL and AI applications groups at all NASA centers
Visualization of Time-Varying Data from Atomistic Simulations and Computational Fluid Dynamics
Time-varying data from simulations of dynamical systems are rich in spatio-temporal information. A key challenge is how to analyze such data for extracting useful information from the data and displaying spatially evolving features in the space-time domain of interest. We develop/implement multiple approaches toward visualization-based analysis of time-varying data obtained from two common types of dynamical simulations: molecular dynamics (MD) and computational fluid dynamics (CFD). We also make application case studies. Parallel first-principles molecular dynamics simulations produce massive amounts of time-varying three-dimensional scattered data representing atomic (molecular) configurations for material system being simulated. Rendering the atomic position-time series along with the extracted additional information helps us understand the microscopic processes in complex material system at atomic length and time scales. Radial distribution functions, coordination environments, and clusters are computed and rendered for visualizing structural behavior of the simulated material systems. Atom (particle) trajectories and displacement data are extracted and rendered for visualizing dynamical behavior of the system. While improving our atomistic visualization system to make it versatile, stable and scalable, we focus mainly on atomic trajectories. Trajectory rendering can represent complete simulation information in a single display; however, trajectories get crowded and the associated clutter/occlusion problem becomes serious for even moderate data size. We present and assess various approaches for clutter reduction including constrained rendering, basic and adaptive position merging, and information encoding. Data model with HDF5 and partial I/O, and GLSL shading are adopted to enhance the rendering speed and quality of the trajectories. For applications, a detailed visualization-based analysis is carried out for simulated silicate melts such as model basalt systems. On the other hand, CFD produces temporally and spatially resolved numerical data for fluid systems consisting of a million to tens of millions of cells (mesh points). We implement time surfaces (in particular, evolving surfaces of spheres) for visualizing the vector (flow) field to study the simulated mixing of fluids in the stirred tank
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
Safe code transfromations for speculative execution in real-time systems
Although compiler optimization techniques are standard and successful in non-real-time systems, if naively applied, they can destroy safety guarantees and deadlines in hard real-time systems. For this reason, real-time systems developers have tended to avoid automatic compiler optimization of their code. However, real-time applications in several areas have been growing substantially in size and complexity in recent years. This size and complexity makes it impossible for real-time programmers to write optimal code, and consequently indicates a need for compiler optimization. Recently researchers have developed or modified analyses and transformations to improve performance without degrading worst-case execution times. Moreover, these optimization techniques can sometimes transform programs which may not meet constraints/deadlines, or which result in timeouts, into deadline-satisfying programs.
One such technique, speculative execution, also used for example in parallel computing and databases, can enhance performance by executing parts of the code whose execution may or may not be needed. In some cases, rollback is necessary if the computation turns out to be invalid. However, speculative execution must be applied carefully to real-time systems so that the worst-case execution path is not extended. Deterministic worst-case execution for satisfying hard real-time constraints, and speculative execution with rollback for improving average-case throughput, appear to lie on opposite ends of a spectrum of performance requirements and strategies.
Deterministic worst-case execution for satisfying hard real-time constraints, and speculative execution with rollback for improving average-case throughput, appear to lie on opposite ends of a spectrum of performance requirements and strategies. Nonetheless, this thesis shows that there are situations in which speculative execution can improve the performance of a hard real-time system, either by enhancing average performance while not affecting the worst-case, or by actually decreasing the worst-case execution time. The thesis proposes a set of compiler transformation rules to identify opportunities for speculative execution and to transform the code. Proofs for semantic correctness and timeliness preservation are provided to verify safety of applying transformation rules to real-time systems. Moreover, an extensive experiment using simulation of randomly generated real-time programs have been conducted to evaluate applicability and profitability of speculative execution. The simulation results indicate that speculative execution improves average execution time and program timeliness. Finally, a prototype implementation is described in which these transformations can be evaluated for realistic applications
FPGA design methodology for industrial control systems—a review
This paper reviews the state of the art of fieldprogrammable gate array (FPGA) design methodologies with a focus on industrial control system applications. This paper starts with an overview of FPGA technology development, followed by a presentation of design methodologies, development tools and relevant CAD environments, including the use of portable hardware description languages and system level programming/design tools. They enable a holistic functional approach with the major advantage of setting up a unique modeling and evaluation environment for complete industrial electronics systems. Three main design rules are then presented. These are algorithm refinement, modularity, and systematic search for the best compromise between the control performance and the architectural constraints. An overview of contributions and limits of FPGAs is also given, followed by a short survey of FPGA-based intelligent controllers for modern industrial systems. Finally, two complete and timely case studies are presented to illustrate the benefits of an FPGA implementation when using the proposed system modeling and design methodology. These consist of the direct torque control for induction motor drives and the control of a diesel-driven synchronous stand-alone generator with the help of fuzzy logic
- …