HiPLAR (High Performance Linear Algebra in R) is a suite of R packages that use the latest multi-core and GPU libraries to give substantial speed-ups to existing linear algebra functions in R.
Currently, R users are limited to a small number of packages that allow access to current multi-core and accelerator architectures. Those that are available require special objects and classes whilst only targeting specific functions. HiPLAR has the follwowing features:
HiPLAR's over-arching goal is to provide easy access to the latest computational architectures using the latest linear algebra libraries and to do so in an easy and user friendly manner. With our simple installer the user can achieve large speed-ups in a matter of minutes with little understanding of the complexities of multi-core and GPU computing.
The user can also use the package without GPU support (should they not have one) and run purely with the multi-core CPU libraries. For users that have multi-core CPUs and an NVIDIA GPU we provide an auto-tuning feature that calculates the optimal configuration for the problem and the hardware. Currently, HiPLAR provides two packages to target linear algebra functions in the standard R release and Matrix packages.
HiPLARM provides GPU and multi-core functionality to the R Matrix package by overwriting the major linear algebra functions in that package.
The Matrix package has become one of the most used and depended on packages in the R ecosystem and with HiPLARM the package can now be used faster and more efficiently while still retaining the main characteristics and structure of the package. With only a single line, loading the HiPLARM library, the user can unlock the power of their multi-core machines or NVIDIA GPUs. Due to HiPLARM's strong dependency on the Matrix package it is completely compatible with legacy Matrix code and can provide large speedups for the user.
Here we provide some brief examples to highlight the benefits of using HiPLARM. The following are using HiPLARM and Matrix. These examples were performed on a HP desktop with a Tesla C2075 and a 6 core Intel Xeon against a version of optimised BLAS on a single core.
This code sample shows a Cholesky decomposition of a 8192 x 8192 matrix.
This code sample shows a square and a non square LU decomposition and how to switch to the CPU only mode or to "Auto" mode where the CPU/GPU is chosen automatically depending on the problem size.Back to top
HiPLARb gives multi-core and GPU support to the standard R release by overwriting the existing linear algebra functions with new functions to take advantage of the latest CPUs and GPU accelerators. Similar to HiPLARM, the user will experience no qualitative difference between standard R and HiPLARb except the loading of the library. We have targeted approximately 26 linear algebra functions for GPU and multi-core CPU support. Should the user not have an NVIDIA GPU they can opt to use only the multi-core CPU functionality. For a full list of available functions please see our HiPLARb functionality page.
Below are some simple examples of the HiPLARb package. The first is a simple example of eigenvalue/vector calculation. The timings were taken from a HP workstation with an NVIDIA Tesla C2075 GPU and 6 core Intel Xeon.
The next example is a simple matrix multiplication. Again the user will see no difference between using HiPLARb and standard R.
HiPLARb is available for download here and we provide an extensive list of examples on our examples page. We are currently putting together an extensive list of benchmarks which will be available very soon.
The HiPLAR packages provide wrappers to the MAGMA and PLASMA libraries for the standard R release and Matrix packages. MAGMA and PLASMA are the latest libraries to come out of the Innovative Computing Laboratory (ICL) which is at the forefront of scientific and high performance computing. The PLASMA library is explictly designed to take advantage of the latest processor architectures which combine multi-core and shared memory architectures amongst other features. The MAGMA library is built on the premise that future computational trends are moving towards hybrid and heterogeneous architectures, that is, combining multi-core CPUs with accelerators such as GPUs. HiPLAR aims to take advantage of these high performance libraries and architectures for all R users.Back to top