Parallel Sparse Linear Algebra for Multi-core and Many-core Platforms — Parallel Solvers and Preconditioners

March 2nd, 2012

Abstract:

Partial differential equations are typically solved by means of finite difference, finite volume or finite element methods resulting in large, highly coupled, ill-conditioned and sparse (non-)linear systems. In order to minimize the computing time we want to exploit the capabilities of modern parallel architectures. The rapid hardware shifts from single core to multi-core and many-core processors lead to a gap in the progression of algorithms and programming environments for these platforms — the parallel models for large clusters do not fully utilize the performance capability of the multi-core CPUs and especially of the GPUs. Software stack needs to run adequately on the next generation of computing devices in order to exploit the potential of these new systems. Moving numerical software from one platform to another becomes an important task since every parallel device has its own programming model and language. The greatest challenge is to provide new techniques for solving (non-)linear systems that combine scalability, portability, fine-grained parallelism and flexibility across the assortment of parallel platforms and programming models. The goal of this thesis is to provide new fine-grained parallel algorithms embedded in advanced sparse linear algebra solvers and preconditioners on the emerging multi-core and many-core technologies.

Read the rest of this entry »

PhD Thesis: Scientific Computing on Heterogeneous Architectures

December 22nd, 2010

Abstract:

The CPU has traditionally been the computational work horse in scientific computing, but we have seen a tremendous increase in the use of accelerators, such as Graphics Processing Units (GPUs), in the last decade. These architectures are used because they consume less power and offer higher performance than equivalent CPU solutions. They are typically also far less expensive, as more CPUs, and even clusters, are required to match their performance. Even though these accelerators are powerful in terms of floating point operations per second, they are considerably more primitive in terms of capabilities. For example, they cannot even open a file on disk without the use of the CPU. Thus, most applications can benefit from using accelerators to perform heavy computation, whilst running complex tasks on the CPU. This use of different compute resources is often referred to as heterogeneous computing, and we explore the use of heterogeneous architectures for scientific computing in this thesis. Through six papers, we present qualitative and quantitative comparisons of different heterogeneous architectures, the use of GPUs to accelerate linear algebra operations in MATLAB, and efficient shallow water simulation on GPUs. Our results show that the use of heterogeneous architectures can give large performance gains.

(André R. Brodtkorb, “Scientific Computing on Heterogeneous Architectures”, Ph.D. thesis, University of Oslo, Faculty of Mathematics and Natural Sciences, 2010, (PDF))

PhD Thesis: Fast and Accurate Finite-Element Multigrid Solvers for PDE Simulations on GPU Clusters

May 30th, 2010

Abstract:

The main contribution of this thesis is to demonstrate that graphics processors (GPUs) as representatives of emerging many-core architectures are very well-suited for the fast and accurate solution of large sparse linear systems of equations, using parallel multigrid methods on heterogeneous compute clusters. Such systems arise for instance in the discretisation of (elliptic) partial differential equations with finite elements. We report on at least one order of magnitude speedup over highly-tuned conventional CPU implementations, without sacrificing either accuracy m
or functionality. In more detail, this thesis includes the following contributions:
Read the rest of this entry »

Speeding Up Molecular Docking Calculations Using Consumer Graphics Hardware

November 18th, 2008

The computer-aided prediction of protein-ligand complex conformations, i.e. docking a small ligand into the active site of a protein, is an important application in the early stages of the modern drug discovery process. For this problem a new approach called PLANTS (Protein-Ligand ANT System) is presented which is based on Ant Colony Optimization (ACO). Part of the work deals with the acceleration of this approach by moving the most time-consuming steps, the transformation of the protein and ligand structure and the evaluation of the objective function, to the GPU. The combined CPU-GPU approach is able to reach a speedup of 5 on average when comparing an optimized CPU-version (single core of a dual-core Pentium 4, 3 GHz) with the GPU-accelerated version (Nvidia Geforce 8800 GTX). Especially virtual screening applications, where the complex conformations of thousands to millions of ligands need to be predicted, can benefit from this speedup.

(Efficient Ant Colony Optimization Algorithms for Structure- and Ligand-Based Drug Design.  Oliver Korb, PhD thesis, University of Konstanz, 2008)

Case studies on GPU usage and data structure design

August 11th, 2008

Abstract

Big improvements in the performance of graphics processing units (GPUs) turned them into a compelling platform for high performance computing. In this thesis, we discuss the usage of NVIDIA’s CUDA in two applications — Einstein@Home, a distributed computing software, and OpenSteer, a game-like application. Our work on Einstein@Home demonstrates that CUDA can be integrated into existing applications with minimal changes, even in programs designed without considering GPU usage. However the existing data structure of Einstein@Home performs poorly when used on the GPU. We demonstrate that using a redesigned data structure improves the performance to about three times as fast as the original CPU version, even though the code executed on the device is not optimized. We further discuss the design of a novel spatial data structure called “dynamic grid” that is optimized for CUDA usage. We measure its performance by integrating it into the Boids scenario of OpenSteer. Our new concept outperforms a uniform grid by a margin of up to 15%, even though the dynamic grid still provides optimization potential.

(Case studies on gpu usage and data structure design. J. Breitbart, Master’s thesis, Universität Kassel, 2008)

GPGPU Based Image Segmentation Livewire Algorithm Implementation

April 1st, 2008

This thesis presents a GPU implementation of the Livewire algorithm. The algorithm is divided in three phases: Sobel or Laplacian filter convolution, image modeling as a grid graph and solving the non-negative weighted edges single-source shortest path problem. In order to calculate the shortest path, an adapted version of the delta-stepping algorithm was developed for GPUs, using CUDA. A critical result analysis shows that intense speedups are seen in image filtering algorithms. On the other hand, the wide use of dependent device memory look-ups has constrained delta-stepping algorithm from achieving higher performance than CPU implementation although a better performance is expected for wider graphs. Besides showing the viability of the Livewire algorithm implementation, this thesis makes available an open-source image segmentation GPU based application, which can be used as example for future GPU algorithm implementations at http://code.google.com/p/gpuwire/.

GPU++: An Embedded GPU Development System for General-Purpose Computations

January 14th, 2008

This Ph.D. thesis by Jansen describes a GPGPU development system that is embedded in the C++ programming language using ad-hoc polymorphism (i.e. operator overloading). While this technique is already known from the Sh library and the RapidMind Development Platform, GPU++ uses a more generic class interface and requires no knowledge of GPU programming at all. Furthermore, there is no separation between the different computation units of the CPU and GPU – the appropriate computation frequency is automatically chosen by the GPU++ system using several optimization algorithms. (“GPU++: An Embedded GPU Development System for General-Purpose Computations“. Thomas Jansen. Ph.D. Thesis, University of Munich, Germany.

Ph.D. Dissertation: Glift Generic GPU Data Structures, by Aaron Lefohn

January 18th, 2007

This Ph.D. dissertation by Aaron Lefohn at the University of California, Davis describes the Glift GPU data structure abstraction and its application to both GPU-based data-parallel and interactive rendering algorithms. The applications include octree 3D painting, adaptive shadow maps, resolution matched shadow maps, heat-diffusion depth-of-field, and a GPU-based direct solver for tridiagonal linear systems. While much of this work has been posted previously, this dissertation contains a more in-depth discussion of the Glift data structure library and introduces several GPGPU and rendering algorithms that are not yet published. This dissertation demonstrates that a data structure abstraction for GPUs can simplify the description of new and existing data structures, stimulate development of complex GPU algorithms, and perform equivalently to hand-coded implementations. The dissertation also presents a case that future interactive rendering solutions will be an inseparable mix of general-purpose, data-parallel algorithms and traditional graphics programming. (Aaron Lefohn, “Glift: Generic Data Structures for Graphics Hardware”, Ph.D. dissertation, Computer Science Department, University of California Davis, September 2006.)

Ph.D. dissertation discusses GPU-accelerated advanced rendering and image processing techniques

August 10th, 2006

The Ph.D. dissertation Rendering Methods for Augmented Reality by Jan Fischer describes several GPU-based methods for artistic and illustrative rendering. A real-time video filter is described, which generates a cartoon-like version of the input video and is executed entirely on the GPU (Section 3.3). Section 4.2 of the thesis discusses a GPU-based algorithm for the real-time illustrative display of hidden structures in polygonal datasets. In Section 4.3, the real-time conversion of augmented reality video streams into an illustrative style on the GPU is described. The thesis discusses the underlying image processing and rendering algorithms as well as implementation-specific aspects of the respective GPU techniques. (Jan Fischer, Rendering Methods for Augmented Reality, Dissertation, University of Tübingen, June 2006)

Universal employment of modern graphics hardware by the example of the optimization of a speech recognition system

May 24th, 2006

In this masters thesis by Christian Fenzl (accomplished at the University of Applied Sciences in Darmstadt), an easy to use framework is implemented with additional demos to show the main concepts of gpgpu. Furthermore, a demo implementation is included which calculates scores on feature vectors used in a speech recognition system (about 12 times faster than an equivalent cpu implementation). An application with several demos using the framework including the fully documented source code (English) and the paper itself (German) is available. The framework code is recommended especially for gpgpu beginners to look into the OpenGL and DirectX code which shows how gpgpu programs can be developed.

Page 1 of 212