53,835 research outputs found

    Inferring Types to Eliminate Ownership Checks in an Intentional JavaScript Compiler

    Get PDF
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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

    Full text link
    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

    Get PDF
    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
    corecore