Homogeneous and Heterogeneous Implementations of a tridiagonal solver on Intel® Xeon® E-2176G with oneMKL getrs

Oluwatosin

Oluwatosin

Unknown

1 0
  • 0 Collaborators

Homogeneous and Heterogeneous implementations of a tridiagonal solver with oneMKL getrs ...learn more

Project status: Published/In Market

oneAPI

Intel Technologies
DevCloud, oneAPI, DPC++, MKL, Intel CPU, Other

Docs/PDFs [1]Code Samples [1]

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

  1. Symmetric tridiagonal system;
  2. Weakly diagonally dominant;
  3. Irreducible and nonsingular with a nontrivial solution and a unique LU-factorization.
  4. Column dominant and does not need pivoting for a LU-factorization.
  5. 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

  1. device management;
  2. memory management;
  3. data management;
  4. 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

Documents and Presentations

Repository

https://github.com/olutosinbanjo/oneMKL_getrs.git

Comments (0)