HONEI: A collection of libraries for numerical computations targeting multiple processor architectures.
van Dyk, Danny and Geveler, Markus and Mallach, Sven and Ribbrock, Dirk and Göddeke, Dominik and Gutwenger, Carsten
(2009)
HONEI: A collection of libraries for numerical computations targeting multiple processor architectures.
Published in:
Computer Physics Communications Vol. 180 (12).
pp. 2534-2543.
Abstract
We present HONEI, an open-source collection of libraries offering a hardware oriented approach to numerical calculations. HONEI abstracts the hardware, and applications written on top of HONEI can be executed on a wide range of computer architectures such as CPUs, GPUs and the Cell processor. We demonstrate the flexibility and performance of our approach with two test applications, a Finite Element multigrid solver for the Poisson problem and a robust and fast simulation of shallow water waves. By linking against HONEI's libraries, we achieve a two-fold speedup over straight forward C++ code using HONEI's SSE backend, and additional 3--4 and 4--16 times faster execution on the Cell and a GPU. A second important aspect of our approach is that the full performance capabilities of the hardware under consideration can be exploited by adding optimised application-specific operations to the HONEI libraries. HONEI provides all necessary infrastructure for development and evaluation of such kernels, significantly simplifying their development.
Download: |
Download (1MB) | Preview |
---|---|
Editorial actions: | ![]() |
Item Type: | Article |
---|---|
Citations: | 12 (Google Scholar) | 3 (Web of Science) |
Uncontrolled Keywords: | numerics CFD SWE linear algebra BLAS multicore manycore Cell |
Subjects: |
|
Divisions: | Institute of Computer Science > Computer Science Department - Prof. Dr. Juenger |
Related URLs: |
ZAIK Number: | zaik2010-600 |
---|---|
Depositing User: | Sven Mallach |
Date Deposited: | 01 Apr 2010 00:00 |
Last Modified: | 09 Jan 2012 15:01 |
URI: | http://e-archive.informatik.uni-koeln.de/id/eprint/600 |