112,657 research outputs found
Contract-Based General-Purpose GPU Programming
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?"
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
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
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
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
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 -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 (). 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
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
-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
- …