Sciweavers

PAAPP
2006

Algorithmic optimizations of a conjugate gradient solver on shared memory architectures

13 years 10 months ago
Algorithmic optimizations of a conjugate gradient solver on shared memory architectures
OpenMP is an architecture-independent language for programming in the shared memory model. OpenMP is designed to be simple and in terms of programming abstractions. Unfortunately, the ture-independent abstractions sometimes come with the price of low parallel performance. This is especially true for applications with unstructured data access pattern running on distributed shared memory systems (DSM). Here proper data distribution and algorithmic optimizations play a vital role for performance. In this article we have investigated ways of improving the performance of an industrial class conjugate gradient (CG) solver, implemented in OpenMP running on two types of shared memory systems. We have evaluated bandwidth minimization, graph partitioning and reformulations of the original algorithm reducing global barriers. By a detailed analysis of barrier time and memory system performance we found that bandwidth minimization is the most important optimization reducing both L2 misses and remo...
Henrik Löf, Jarmo Rantakokko
Added 14 Dec 2010
Updated 14 Dec 2010
Type Journal
Year 2006
Where PAAPP
Authors Henrik Löf, Jarmo Rantakokko
Comments (0)