# HiPLAR

HiPLAR (High Performance Linear Algebra in R) delivers high performance linear algebra (LA) routines for the R platform for statistical computing using the latest software libraries for heterogeneous architectures.

### Multi-core and GPU acceleration

HiPLAR allows R users to make use of the PLASMA (Parallel Linear Algebra for Scalable Multi-core Architectures) and MAGMA (Matrix Algebra on GPU and Multicore Architectures) libraries developed at the Innovative Computing Laboratory in Tennessee. PLASMA provides high performance LA routines for multicore CPUs whilst MAGMA aims to take advantage of GPU computing by providing a suite of LA routines that exploit both single and multiple GPU configurations in laptops, desktops or GPU clusters.

### Why R

The R project for statistical computing is a popular, open-source platform used world-wide by a large community of statisticians, engineers, physicists and other scientists. R is used across a diverse range of applications areas including bioinformatics/genomics, cosmology, particle physics, astronomy and image processing.

Through HiPLAR, R users make use of the latest advances in heterogeneous computing using multi-core processors and NVIDIAs Tesla, Fermi and now Kepler GPUs. Using the MAGMA and PLASMA libraries, users can access the latest high performance LA routines without learning any new programming paradigms or even any new R syntax.

Another unique feature is that HiPLAR chooses to use the multi-core CPU or the GPU depending on the problem size. For smaller problem sizes where there may be a data transfer bottleneck to the GPU the CPU is used automatically. For larger problem sizes the GPU is used. Users can immediately start using these technologies simply by loading HiPLAR once at the start of R scripts and programs.

### Introducing HiPLARb (for R) and HiPLARM (for the R Matrix package)

HiPLAR consists of two packages, HiPLARb and HiPLARM. HiPLARb improves performance of those LA routines that come as standard in the R environment with HiPLARM targeting the Matrix package add-on for R. The Matrix package provides extended support for LA operations and matrix types. The Matrix package supports matrices of the general, tri-diagonal and symmetric matrix types in addition to variations of these matrices. The features of the Matrix package are maintained exactly in HiPLARM, again allowing a seamless transition between packages. HiPLAR is available as open software.

To download the packages or obtain more information: www.hiplar.org

R-Base | HiPLARb(1 core) | HiPLARb(6 core) | HiPLARb(GPU) | |

Matrix Multiply | 258.0 s | 43.54 s | 9.47 s | 3.26 s |

Cholesky Factorisation | 19.42 s | 3.80 s | 0.85 s | 0.37 s |

Least Squares | 153.32 s | 26.24 s | 5.93 s | 2.15 s |

Table 1: Performance metrics for matrices of size 10000 x 5000 and 5000 x 5000 for Cholesky Decomposition. Tests were performed on HP workstation with a 6 core Intel W3680 @3.33Ghz and a NVIDIA C2075 GPU. |