IP Library Granted Patent US 11,232,173
Granted Patent B2
US 11,232,173 · App. 15/414,124 · Granted Jan 25, 2022

System, method and computer program product for dense/sparse linear system solver accelerator

Inventors: Damir Anthony Jamsek (Austin, TX); Maysam Mir Ahmadi (Ontario, CA)
Assignee: INTERNATIONAL BUSINESS MACHINES CORPORATION
G06F17/11G06F17/16
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,232,173
App. No.
15/414,124
Granted
Jan 25, 2022
Kind
B2
Abstract

A linear system solving method, system, and computer program product, include calculating a matrix factorization for a matrix in a pair of matrices, in a form of a lower, a diagonal, an upper (LDU) decomposition, solving a first expression for a first value using a substitution module to create a first result, dividing the first result by values stored in the diagonal of the matrix to obtain a second result, and solving a second expression for a second value where a processing of the diagonal is skipped by using the second result.

Claims (147)

1. A computer-implemented linear system solving method that interacts with a cloud computing environment server, the method comprising:

calculating, via a cloud on-demand self-service that communicates with the cloud computing environment server, a matrix factorization for a matrix in a pair of matrices, in a form of a lower, a diagonal, and an upper (LDU) decomposition by interacting directly with a system memory through a Coherent Accelerator Processor Interface (CAPI) interface;

first solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a first expression for a first value calculated from using the first expression using a substitution module based on the LDU decomposition to create a first result;

dividing, via the cloud on-demand self-service that communicates with the cloud computing environment server, the first result by values stored in the diagonal of the matrix to obtain a second result;

second solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a second expression for a second value calculated from using the second expression where a processing of the diagonal is skipped by using the second result; and

determining, via the cloud on-demand self-service that communicates with the cloud computing environment server, a solution set for the pair of matrices in the linear system using the second expression,

wherein the calculating proceeds to calculate a second matrix factorization for a second matrix while the first solving, the dividing, and the second solving are working with the matrix on the system memory, and

wherein the first solving and the second solving are performed using a same substitution module,

further comprising streaming the solution from the cloud to a device,

wherein the cloud computing environment server comprises a cloud computing model of a service delivery comprising two or more clouds of a private cloud, a community cloud, and a public cloud that remain unique entities but are bound together by technology that enables data and application portability that results in load-balancing between the two or more clouds.

2. The computer-implemented method of claim 1 , wherein the first solving comprises a forward substitution, and

wherein the second solving comprises a backwards substitution.

3. The computer-implemented method of claim 1 , wherein, in the first solving, the first expression is L y =b and is solved for the first value of b using the substitution module to create the first result, and

wherein the substitution module performs a forward substitution using the same module as used in the LDU decomposition to calculate a third expression of

b

i

-

k

=

0

i

=

1

L

i

k

x

k

,

wherein the first solving comprises a forward substitution, and

wherein the second solving comprises a backwards substitution.

4. The computer-implemented method of claim 3 , wherein the second solving solves the second expression of

Ux

=

y

D

for the second value of y, and

wherein, in a forward transformation (FTRAN) in the second solving, “y 1 =b 1 ” is set as “L 11 =1”, then “y 2 =b 2 −y 1 L 21 ” and continuing for each element of y using

y

i

=

b

i

-

k

=

0

i

=

1

L

ik

y

k

until a last element is reached.

5. The computer-implemented method of claim 1 , wherein the first solving solves the first expression of Ly=b for the first value y, and

wherein the second solving solves the second expression of Ux=(y/D) for the second value of x.

6. The computer-implemented method of claim 1 , wherein the determining determines the solution for the pair of matrices simultaneously while the calculating calculates a second matrix factorization for a second matrix in a second pair of matrices.

7. The computer-implemented method of claim 1 , wherein the first solving, the dividing, and the second solving work with the second matrix after the determining determines the solution for the matrix, and

wherein the calculating proceeds to calculate a third matrix factorization for a second matrix while the first solving, the dividing, and the second solving are working with the second matrix.

8. The computer-implemented method of claim 7 , wherein the calculating continues to calculate a new matrix each time that the first solving, the dividing, and the second solving are working with a prior calculated matrix.

9. The computer-implemented method of claim 1 , wherein the calculating continues to calculate a new matrix each time that the first solving, the dividing, and the second solving are working with a prior calculated matrix.

10. A computer program product for linear system solving that interacts with a cloud computing environment server, the computer program product comprising a computer-readable storage medium having program instructions embodied therewith, the program instructions executable by a computer to cause the computer to perform:

calculating, via a cloud on-demand self-service that communicates with the cloud computing environment server, a matrix factorization for a matrix in a pair of matrices, in a form of a lower, a diagonal, and an upper (LDU) decomposition by interacting directly with a system memory through a Coherent Accelerator Processor Interface (CAPI) interface;

first solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a first expression for a first value calculated from using the first expression using a substitution module based on the LDU decomposition to create a first result;

dividing, via the cloud on-demand self-service that communicates with the cloud computing environment server, the first result by values stored in the diagonal of the matrix to obtain a second result;

second solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a second expression for a second value calculated from using the second expression where a processing of the diagonal is skipped by using the second result; and

determining, via the cloud on-demand self-service that communicates with the cloud computing environment server, a solution set for the pair of matrices in the linear system using the second expression,

wherein the calculating proceeds to calculate a second matrix factorization for a second matrix while the first solving, the dividing, and the second solving are working with the matrix on the system memory, and

wherein the first solving and the second solving are performed using a same substitution module,

further comprising streaming the solution from the cloud to a device,

wherein the cloud computing environment server comprises a cloud computing model of a service delivery comprising two or more clouds of a private cloud, a community cloud, and a public cloud that remain unique entities but are bound together by technology that enables data and application portability that results in load-balancing between the two or more clouds.

11. The computer program product of claim 10 , wherein the first solving comprises a forward substitution, and

wherein the second solving comprises a backwards substitution.

12. The computer program product claim of 10 , wherein, in the first solving, the first expression is L y =b and is solved for the first value of b using the substitution module to create the result, and

wherein the substitution module performs a forward substitution using a same module as used in the LDU decomposition to calculate a third expression of

b

i

-

k

=

0

i

=

1

L

i

k

x

k

.

13. The computer program product claim of 12 , wherein the second solving solves the second expression of

Ux

=

y

D

for the second value of y, and

wherein, in a forward transformation (FTRAN) in the second solving, “y 1 =b 1 ” is set as “L 11 =1”, then “y 2 =b 2 −y 1 L 21 ” and continuing for each element of y using

y

i

=

b

i

-

k

=

0

i

=

1

L

ik

y

k

until a last element is reached.

14. The computer program product claim of 10 , wherein the first solving solves the first expression of Ly=b for the first value y, and

wherein the second solving solves the second expression of Ux=(y/D) for the second value of x.

15. A linear system solving system, said system comprising:

a processor; and

a memory, the memory storing instructions to cause the processor to perform:

calculating, via a cloud on-demand self-service that communicates with the cloud computing environment server, a matrix factorization for a matrix in a pair of matrices, in a form of a lower, a diagonal, and an upper (LDU) decomposition by interacting directly with a system memory through a Coherent Accelerator Processor Interface (CAPI) interface;

first solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a first expression for a first value calculated from using the first expression using a substitution module based on the LDU decomposition to create a first result;

dividing, via the cloud on-demand self-service that communicates with the cloud computing environment server, the first result by values stored in the diagonal of the matrix to obtain a second result;

second solving, via the cloud on-demand self-service that communicates with the cloud computing environment server, a second expression for a second value calculated from using the second expression where a processing of the diagonal is skipped by using the second result; and

determining, via the cloud on-demand self-service that communicates with the cloud computing environment server, a solution set for the pair of matrices in the linear system using the second expression,

wherein the calculating proceeds to calculate a second matrix factorization for a second matrix while the first solving, the dividing, and the second solving are working with the matrix on the system memory, and

wherein the first solving and the second solving are performed using a same substitution module,

further comprising streaming the solution from the cloud to a device,

wherein the cloud computing environment server comprises a cloud computing model of a service delivery comprising two or more clouds of a private cloud, a community cloud, and a public cloud that remain unique entities but are bound together by technology that enables data and application portability that results in load-balancing between the two or more clouds.

16. The system of claim 15 , wherein the first solving comprises a forward substitution, and

wherein the second solving comprises a backwards substitution.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: JAMSEK, DAMIR ANTHONY; AHMADI, MAYSAM MIR
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 041066/0305 →
Continuity (1)
Related Publication 20180210860A1 · Jul 26, 2018