112,657 research outputs found

    Contract-Based General-Purpose GPU Programming

    Get PDF
    Using GPUs as general-purpose processors has revolutionized parallel computing by offering, for a large and growing set of algorithms, massive data-parallelization on desktop machines. An obstacle to widespread adoption, however, is the difficulty of programming them and the low-level control of the hardware required to achieve good performance. This paper suggests a programming library, SafeGPU, that aims at striking a balance between programmer productivity and performance, by making GPU data-parallel operations accessible from within a classical object-oriented programming language. The solution is integrated with the design-by-contract approach, which increases confidence in functional program correctness by embedding executable program specifications into the program text. We show that our library leads to modular and maintainable code that is accessible to GPGPU non-experts, while providing performance that is comparable with hand-written CUDA code. Furthermore, runtime contract checking turns out to be feasible, as the contracts can be executed on the GPU

    General Purpose Technologies "Engines of Growth?"

    Get PDF
    Whole eras of technical progress and economic growth appear to be driven by a few key technologies, which we call General Purpose Technologies (GPT's). Thus the steam engine and the electric motor may have played such a role in the past, whereas semiconductors and computers may be doing as much in our era. GPT's are characterized by pervasiveness (they are used as inputs by many downstream sectors), inherent potential for technical improvements, and innovational complementarities', meaning that the productivity of R&D in downstream sectors increases as a consequence of innovation in the GPT. Thus, as GPT's improve they spread throughout the economy, bringing about generalized productivity gains. Our analysis shows that the characteristics of GPT's imply a sort of increasing returns to scale phenomenon, and that this may have a large role to play in determining the rate of technical advance; on the other hand this phenomenon makes it difficult for a decentralized economy to fully exploit the growth opportunities offered by evolving GPT's. In particular; if the relationship between the GPT and its users is limited to arms-length market transactions, there will be "too little, too late" innovation in both sectors. Likewise, difficulties in forecasting the technological developments of the other side may lower the rate of technical advance of all sectors. Lastly, we show that the analysis of GPT's has testable implications in the context of R&D and productivity equations, that can in principle be estimated.

    Datalog as a parallel general purpose programming language

    Get PDF
    The increasing available parallelism of computers demands new programming languages that make parallel programming dramatically easier and less error prone. It is proposed that datalog with negation and timestamps is a suitable basis for a general purpose programming language for sequential, parallel and distributed computers. This paper develops a fully incremental bottom-up interpreter for datalog that supports a wide range of execution strategies, with trade-offs affecting efficiency, parallelism and control of resource usage. Examples show how the language can accept real-time external inputs and outputs, and mimic assignment, all without departing from its pure logical semantics

    Optics: general-purpose scintillator light response simulation code

    Get PDF
    We present the program optics that simulates the light response of an arbitrarily shaped scintillation particle detector. Predicted light responses of pure CsI polygonal detectors, plastic scintillator staves, cylindrical plastic target scintillators and a Plexiglas light-distribution plate are illustrated. We demonstrate how different bulk and surface optical properties of a scintillator lead to specific volume and temporal light collection probability distributions. High-statistics optics simulations are calibrated against the detector responses measured in a custom-made cosmic muon tomography apparatus. The presented code can also be used to track particles intersecting complex geometrical objects.Comment: RevTeX LaTeX, 37 pages in e-print format, 12 Postscript Figures and 1 Table, also available at http://pibeta.phys.virginia.edu/public_html/preprints/optics.p

    BLADE: Filter Learning for General Purpose Computational Photography

    Full text link
    The Rapid and Accurate Image Super Resolution (RAISR) method of Romano, Isidoro, and Milanfar is a computationally efficient image upscaling method using a trained set of filters. We describe a generalization of RAISR, which we name Best Linear Adaptive Enhancement (BLADE). This approach is a trainable edge-adaptive filtering framework that is general, simple, computationally efficient, and useful for a wide range of problems in computational photography. We show applications to operations which may appear in a camera pipeline including denoising, demosaicing, and stylization

    Foam: A General-Purpose Cellular Monte Carlo Event Generator

    Get PDF
    A general purpose, self-adapting, Monte Carlo (MC) event generator (simulator) is described. The high efficiency of the MC, that is small maximum weight or variance of the MC weight is achieved by means of dividing the integration domain into small cells. The cells can be nn-dimensional simplices, hyperrectangles or Cartesian product of them. The grid of cells, called ``foam'', is produced in the process of the binary split of the cells. The choice of the next cell to be divided and the position/direction of the division hyper-plane is driven by the algorithm which optimizes the ratio of the maximum weight to the average weight or (optionally) the total variance. The algorithm is able to deal, in principle, with an arbitrary pattern of the singularities in the distribution. As any MC generator, it can also be used for the MC integration. With the typical personal computer CPU, the program is able to perform adaptive integration/simulation at relatively small number of dimensions (16\leq 16). With the continuing progress in the CPU power, this limit will get inevitably shifted to ever higher dimensions. {\tt Foam} is aimed (and already tested) as a component in the MC event generators for the high energy physics experiments. A few simple examples of the related applications are presented. {\tt Foam} is written in fully object-oriented style, in the C++ language. Two other versions with a slightly limited functionality, are available in the Fortran77 language. The source codes are available from http://jadach.home.cern.ch/jadach

    Foam: A General purpose Monte Carlo Cellular Algorithm

    Get PDF
    A general-purpose, self-adapting Monte Carlo (MC) algorithm implemented in the program {\tt Foam} is described. The high efficiency of the MC, that is small maximum weight or variance of the MC weight is achieved by means of dividing the integration domain into small cells. The cells can be nn-dimensional simplices, hyperrectangles or a Cartesian product of them. The grid of cells, ``foam'', is produced in the process of the binary split of the cells. The next cell to be divided and the position/direction of the division hyperplane is chosen by the algorithm which optimizes the ratio of the maximum weight to the average weight or (optionally) the total variance. The algorithm is able to deal, in principle, with an arbitrary pattern of the singularities in the distribution.Comment: ICHEP 2002 tal
    corecore