MPCR: Multi- And Mixed-Precision Computations

Designed for multi- and mixed-precision computations, accommodating 64-bit and 32-bit data structures. This flexibility enables fast execution across various applications. The package enhances performance by optimizing operations in both precision levels, which is achieved by integrating with high-speed 'BLAS' and 'LAPACK' libraries like 'MKL' and 'OpenBLAS'. Including a 32-bit option caters to applications where high precision is unnecessary, accelerating computational processes whenever feasible. The package also provides support for tile-based algorithms in three linear algebra operations: CHOL(), TRSM(), and GEMM(). The tile-based algorithm splits the matrix into smaller tiles, facilitating parallelization through a predefined Directed Acyclic Graph (DAG) for each operation. Enabling 'OpenMP' enhances the efficiency of these operations, leveraging multi-core parallelism. In this case, 'MPCR' facilitates mixed-precision execution by permitting varying precision levels for different tiles. This approach is advantageous in numerous applications, as it maintains the accuracy of the application while accelerating execution in scenarios where single-precision alone does not significantly affect the accuracy of the application.

Getting started

Package details

AuthorDavid Helmy [aut], Sameh Abdulah [cre], KAUST King Abdullah University of Science and Technology [fnd, cph]
MaintainerSameh Abdulah <sameh.abdulah@kaust.edu.sa>
LicenseGPL (>= 3)
Version1.1.4
URL https://github.com/stsds/MPCR
Package repositoryView on CRAN
Installation Install the latest version of this package by entering the following in R:
install.packages("MPCR")

Try the MPCR package in your browser

Any scripts or data that you put into this service are public.

MPCR documentation built on April 13, 2025, 5:08 p.m.