Homogeneous and Heterogeneous Implementations of a tridiagonal solver on Intel® Xeon® E-2176G with oneMKL getrs
Oluwatosin
Unknown
- 0 Collaborators
Homogeneous and Heterogeneous implementations of a tridiagonal solver with oneMKL getrs ...learn more
Project status: Published/In Market
Intel Technologies
DevCloud,
oneAPI,
DPC++,
MKL,
Intel CPU,
Other
Overview / Usage
The oneMKL getrs() routine is a solver for a system of linear equations with an LU-factored square coefficient matrix, with multiple right-hand sides. This project explores the use case of the getrs solver for a tridiagonal system with the following characteristics:
Characteristics of tridiagonal system tested
- Symmetric tridiagonal system;
- Weakly diagonally dominant;
- Irreducible and nonsingular with a nontrivial solution and a unique LU-factorization.
- Column dominant and does not need pivoting for a LU-factorization.
- Symmetric and positive definite, thus it is positive definite symmetric.
Applications of a tridiagonal system
Tridiagonal systems have applications in the areas of differential equations, computational fluid dynamics, heat transfer, Non-equilibrium statistical physics and many more.
Implementations
oneMKL getrs Unified shared Memory and Buffer versions are used to implement a homogeneous and heterogeneous solver for a tridiagonal system.
Homogeneous implementation: Implementation is executed on either host or gpu device.
Heterogeneous implementation: Queues are used to specify what section of code uses a particular device.
These implementations explain the practicality of the device management, memory management, data management and error handling features of DPC++.
Analysis
The different implementations are tested with matrix sizes 500, 2500, 5000 and 10000 to choose a best implementation. The best implementation is relative to the choice of device and data size being tested.
What to learn:
How to implement a homogeneous and heterogeneous tridiagonal solver with USM and buffer oneMKL getrs versions.
Methodology / Approach
Using DPC++ and oneMKL
This project aims at explaining the following characteristics of DPC++ with practical implementation
- device management;
- memory management;
- data management;
- error handling;
In this project, the use of the DPC++ features listed above are used to develop homogeneous and heterogeneous tridiagonal solvers with the USM and buffer oneMKL getrs versions. The solvers are then tested with the Intel® Xeon® E-2176G, an heterogeneous multi-core processor, embedded with Intel® UHD Graphics P630 [0x3e96].
Development Environment:
The Intel devcloud environment is used to test, develop and run the project.
Technologies Used
oneMKL, oneapi, intel devcloud