We show how to compile high-level functional array-processing programs, drawn from image processing and machine learning, into C code that runs as fast as hand-written C. The key idea is to transform the program to de...
详细信息
ISBN:
(纸本)9781450351812
We show how to compile high-level functional array-processing programs, drawn from image processing and machine learning, into C code that runs as fast as hand-written C. The key idea is to transform the program to destination-passing style, which in turn enables a highly-efficient stack-like memory allocation discipline.
Payment cost minimization (PCM) is an appropriate method for bid selection. Solving auctions by PCM is complex and time consuming, particularly under game theoretic analysis of electricity auctions, because it require...
详细信息
Payment cost minimization (PCM) is an appropriate method for bid selection. Solving auctions by PCM is complex and time consuming, particularly under game theoretic analysis of electricity auctions, because it requires many computational iterations. The present study proposes a new algorithm to solve electricity auctions in a game theoretic analysis framework with a multi-player matrix game. The proposed algorithm provides two innovations for solving the auction and finding the Nash equilibria in a fast and accurate manner. This method facilitates analysis of the market behavior for changes in strategy by suppliers. Numerical studies demonstrate the effectiveness of the proposed algorithm. (C) 2016 Elsevier B.V. All rights reserved.
In this paper, we explore the mapping of the NumCIL C# vector library where operations are offloaded to the Bohrium runtime system and evaluate the performance gains. By using a feature-rich language, such as C#, we a...
详细信息
ISBN:
(纸本)9783319321523;9783319321516
In this paper, we explore the mapping of the NumCIL C# vector library where operations are offloaded to the Bohrium runtime system and evaluate the performance gains. By using a feature-rich language, such as C#, we argue that productivity can be increased. The use of the Bohrium runtime system allows all vector operations written in C# to be executed efficiently on multi-core systems. We evaluate the presented design through a setup that targets a 32 core machine. The evaluation includes well-known benchmark applications, such as Black Sholes, 5-point stencil, Shallow Water, and N-body.
This paper argues for a new methodology for writing high performance Haskell programs by using Embedded Domain Specific Languages. We exemplify the methodology by describing a complete library, meta-repa, which is a r...
详细信息
This paper argues for a new methodology for writing high performance Haskell programs by using Embedded Domain Specific Languages. We exemplify the methodology by describing a complete library, meta-repa, which is a reimplementation of parts of the repa library. The paper describes the implementation of meta-repa and contrasts it with the standard approach to writing high performance libraries. We conclude that even though the embedded language approach has an initial cost of defining the language and some syntactic overhead it gives a more tailored programming model, stronger performance guarantees, better control over optimizations, simpler implementation of fusion and inlining and allows for moving type level programming down to value level programming in some cases. We also provide benchmarks showing that meta-repa is as fast, or faster, than repa. Furthermore, meta-repa also includes push arrays and we demonstrate their usefulness for writing certain high performance kernels such as FFT.
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of computation. array operations process entire arrays instead of just single elements. This makes array programs highly...
详细信息
The array programming paradigm adopts multidimensional arrays as the fundamental data structures of computation. array operations process entire arrays instead of just single elements. This makes array programs highly expressive and introduces data parallelism in a natural way. array programming imposes non-trivial structural constraints on ranks, shapes, and element values of arrays. A prominent example where such constraints are violated are out-of-bound array accesses. Usually, such constraints are enforced by means of run time checks. Both the run time overhead inflicted by dynamic constraint checking and the uncertainty of proper program evaluation are undesirable. We propose a novel type system for array programs based on dependent types. Our type system makes dynamic constraint checks obsolete and guarantees orderly evaluation of well-typed programs. We employ integer vectors of statically unknown length to index array types. We also show how constraints on these vectors are resolved using a suitable reduction to integer scalars. Our presentation is based on a functional array calculus that captures the essence of the paradigm without the legacy and obfuscation of a fully-fledged array programming language. (C) 2009 Elsevier Inc. All rights reserved.
Purely functional arrays are notoriously difficult to implement and use efficiently due to the absence of destructive updates and the resultant frequent copying. Deforestation frameworks such as stream fusion achieve ...
详细信息
ISBN:
(纸本)9783540929949
Purely functional arrays are notoriously difficult to implement and use efficiently due to the absence of destructive updates and the resultant frequent copying. Deforestation frameworks such as stream fusion achieve signficant improvements here but fail for a number of important operations which can nevertheless benefit from elimination of temporaries. To mitigate this problem, we extend stream fusion with support for in-place execution of array operations. This optimisation, which we call recycling, is easy to implement and can significantly reduce array allocation and copying in purely functional array algorithms.
暂无评论