53,835 research outputs found
Inferring Types to Eliminate Ownership Checks in an Intentional JavaScript Compiler
Concurrent programs are notoriously difficult to develop due to the non-deterministic nature of thread scheduling. It is desirable to have a programming language to make such development easier. Tscript comprises such a system. Tscript is an extension of JavaScript that provides multithreading support along with intent specification. These intents allow a programmer to specify how parts of the program interact in a multithreaded context. However, enforcing intents requires run-time memory checks which can be inefficient. This thesis implements an optimization in the Tscript compiler that seeks to improve this inefficiency through static analysis. Our approach utilizes both type inference and dataflow analysis to eliminate unnecessary run-time checks
Engineering a static verification tool for GPU kernels
We report on practical experiences over the last 2.5 years related to the engineering of GPUVerify, a static verification tool for OpenCL and CUDA GPU kernels, plotting the progress of GPUVerify from a prototype to a fully functional and relatively efficient analysis tool. Our hope is that this experience report will serve the verification community by helping to inform future tooling efforts. © 2014 Springer International Publishing
Image Processing with Dipole-Coupled Nanomagnets: Noise Suppression and Edge Enhancement Detection
Hardware based image processing offers speed and convenience not found in
software-centric approaches. Here, we show theoretically that a two-dimensional
periodic array of dipole-coupled elliptical nanomagnets, delineated on a
piezoelectric substrate, can act as a dynamical system for specific image
processing functions. Each nanomagnet has two stable magnetization states that
encode pixel color (black or white). An image containing black and white pixels
is first converted to voltage states and then mapped into the magnetization
states of a nanomagnet array with magneto-tunneling junctions (MTJs). The same
MTJs are employed to read out the processed pixel colors later. Dipole
interaction between the nanomagnets implements specific image processing tasks
such as noise reduction and edge enhancement detection. These functions are
triggered by applying a global strain to the nanomagnets with a voltage dropped
across the piezoelectric substrate. An image containing an arbitrary number of
black and white pixels can be processed in few nanoseconds with very low energy
cost
Investigation of new concepts of adaptive devices Quarterly technical report, 3 Dec. 1968 - 2 Mar. 1969
Conduction mechanisms and transient behavior of memory device using semiconductor device
Generalized Points-to Graphs: A New Abstraction of Memory in the Presence of Pointers
Flow- and context-sensitive points-to analysis is difficult to scale; for
top-down approaches, the problem centers on repeated analysis of the same
procedure; for bottom-up approaches, the abstractions used to represent
procedure summaries have not scaled while preserving precision.
We propose a novel abstraction called the Generalized Points-to Graph (GPG)
which views points-to relations as memory updates and generalizes them using
the counts of indirection levels leaving the unknown pointees implicit. This
allows us to construct GPGs as compact representations of bottom-up procedure
summaries in terms of memory updates and control flow between them. Their
compactness is ensured by the following optimizations: strength reduction
reduces the indirection levels, redundancy elimination removes redundant memory
updates and minimizes control flow (without over-approximating data dependence
between memory updates), and call inlining enhances the opportunities of these
optimizations. We devise novel operations and data flow analyses for these
optimizations.
Our quest for scalability of points-to analysis leads to the following
insight: The real killer of scalability in program analysis is not the amount
of data but the amount of control flow that it may be subjected to in search of
precision. The effectiveness of GPGs lies in the fact that they discard as much
control flow as possible without losing precision (i.e., by preserving data
dependence without over-approximation). This is the reason why the GPGs are
very small even for main procedures that contain the effect of the entire
program. This allows our implementation to scale to 158kLoC for C programs
Fast flowing populations are not well mixed
In evolutionary dynamics, well-mixed populations are almost always associated
with all-to-all interactions; mathematical models are based on complete graphs.
In most cases, these models do not predict fixation probabilities in groups of
individuals mixed by flows. We propose an analytical description in the
fast-flow limit. This approach is valid for processes with global and local
selection, and accurately predicts the suppression of selection as competition
becomes more local. It provides a modelling tool for biological or social
systems with individuals in motion.Comment: 19 pages, 8 figure
- …