Systems and methods to reduce I/O and/or speed up out-of-core linear solvers
AssigneeInternational Business Machines Corporation
InventorsHaim Avron, Anshul Gupta
Life of this patent
Estimating the term…
Abstract
Systems and methods to reduce I/O (input/output) with regard to out-of-core liner solvers and/or to speed up out-of-core linear solvers.
Claims26
A method for solving linear equations, wherein the method is implemented in a computer system configured for one of:
- (i) single precision calculation;
- and (ii) double precision calculation, wherein the computer system includes at least a random access memory and a disk storage device, the method comprising the steps of:
- applying an out-of-core linear solver process to a set of data, wherein at least one computation associated with the application of the linear solver process to the set of data generates at least one interim result;
- compressing, using a compression algorithm, the interim result associated with the linear solver process;
- storing the compressed interim result to the disk storage device;
- retrieving the stored compressed interim result from the disk storage device;
- decompressing the retrieved compressed interim result;
- and
- using the decompressed interim result in at least one further computation associated with the liner solver process;
- wherein the interim result is expressed in the form of at least:
- (i) an exponent e;
- and (ii) a significant value s;
- and
- wherein the compression algorithm comprises:
- compressing the exponent e associated with the interim result;
- determining a number of bits B used to represent the compressed exponent e;
- and
- rounding off the Y least significant bits of the significant value s associated with the interim result;
- wherein Y=K−(11−B) when the computer system is configured for double precision calculation and Y=K−(8−B) when the computer system is configured for single precision calculation;
- and
- wherein K is an integer in the range of between 11 and 52, inclusive, when the computer system is configured for double precision calculation and K is an integer in the range of between 8 and 23, inclusive, when the computer system is configured for single precision calculation.
A method for solving linear equations, wherein the method is implemented in a computer system configured for one of:
- (i) single precision calculation;
- and (ii) double precision calculation, wherein the computer system includes at least a random access memory and a disk storage device, the method comprising the steps of:
- applying an out-of-core linear solver process to a set of data, wherein at least a first computation associated with the application of the linear solver process to the set of data generates at least a first interim result;
- compressing, using a compression algorithm, the first interim result associated with the linear solver process;
- storing the compressed first interim result to the disk storage device;
- retrieving the stored compressed first interim result from the disk storage device;
- decompressing the retrieved compressed first interim result;
- using the decompressed first interim result in at least a second computation associated with the liner solver process, wherein the second computation associated with the application of the linear solver process to the set of data generates at least a second interim result;
- compressing, using the compression algorithm, the second interim result associated with the linear solver process;
- storing the compressed second interim result to the disk storage device;
- retrieving the stored compressed second interim result from the disk device;
- decompressing the retrieved compressed second interim result;
- and
- using the decompressed second interim result in at least one further computation associated with the liner solver process;
- wherein the first interim result is expressed in the form of at least:
- (i) an exponent e;
- and (ii) a significant value s;
- and
- wherein the second interim result is expressed in the form of at least:
- (i) an exponent e′;
- and (ii) a significant value s′;
- wherein the compression algorithm comprises:
- compressing the exponent e associated with the first interim result;
- determining a number of bits B used to represent the compressed exponent e;
- and
- rounding off the Y least significant bits of the significant value s associated with the first interim result;
- compressing the exponent e′ associated with the second interim result;
- determining a number of bits B′ used to represent the compressed exponent e′;
- and
- rounding off the Y′ least significant bits of the significant value s′ associated with the second interim result;
- wherein Y=K−(11−B) when the computer system is configured for double precision calculation and Y=K−(8−B) when the computer system is configured for single precision calculation;
- wherein K is an integer in the range of between 11 and 52, inclusive, when the computer system is configured for double precision calculation and K is an integer in the range of between 8 and 23, inclusive, when the computer system is configured for single precision calculation;
- wherein Y′=K′−(11−B′) when the computer system is configured for double precision calculation and Y′=K−(8−B) when the computer system is configured for single precision calculation;
- and
- wherein K′ is an integer in the range of between 11 and 52, inclusive, when the computer system is configured for double precision calculation and K′ is an integer in the range of between 8 and 23, inclusive, when the computer system is configured for single precision calculation.
A program storage device readable by computer, tangibly embodying a program of instructions executable by the computer to perform a method for solving linear equations, wherein the computer is configured for one of:
- (i) single precision calculation;
- and (ii) double precision calculation and wherein the computer includes at least a random access memory and a disk storage device, the method comprising the steps of:
- applying an out-of-core linear solver process to a set of data, wherein at least one computation associated with the application of the linear solver process to the set of data generates at least one interim result;
- compressing, using a compression algorithm, the interim result associated with the linear solver process;
- storing the compressed interim result to the disk storage device;
- retrieving the stored compressed interim result from the disk storage device;
- decompressing the retrieved compressed interim result;
- and
- using the decompressed interim result in at least one further computation associated with the liner solver process;
- wherein the interim result is expressed in the form of at least:
- (i) an exponent e;
- and (ii) a significant value s;
- and
- wherein the compression algorithm comprises:
- compressing the exponent e associated with the interim result;
- determining a number of bits B used to represent the compressed exponent e;
- and
- rounding off the Y least significant bits of the significant value s associated with the interim result;
- wherein Y=K−(11−B) when the computer is configured for double precision calculation and Y=K−(8−B) when the computer is configured for single precision calculation;
- and
- wherein K is an integer in the range of between 11 and 52, inclusive, when the computer is configured for double precision calculation and K is an integer in the range of 8 and 23, inclusive, when the computer is configured for single precision calculation.
A computer-implemented system for solving linear equations, wherein the computer is configured for one of:
- (i) single precision calculation;
- and (ii) double precision calculation and wherein the computer includes at least a random access memory and a disk storage device, the system comprising:
- a computation component to apply an out-of-core linear solver process to a set of data, wherein at least one computation associated with the application of the linear solver process to the set of data generates at least one interim result;
- a compression component in operative communication with the computation component to compress, using a compression algorithm, the interim result associated with the linear solver process;
- a storage component in operative communication with the compression component to store the compressed interim result to the disk storage device;
- a retrieval component to retrieve the stored compressed interim result from the disk storage device;
- and
- a decompression component in operative communication with the retrieval component and the computation component to decompress the retrieved compressed interim result and provide the decompressed interim result to the computation component;
- wherein the decompressed interim result is used by the computation component in at least one further computation associated with the liner solver process;
- wherein the interim result is expressed in the form of at least:
- (i) an exponent e;
- and (ii) a significant value s;
- and
- wherein the compression algorithm comprises:
- compressing the exponent e associated with the interim result;
- determining a number of bits B used to represent the compressed exponent e;
- and
- rounding off the Y least significant bits of the significant value s associated with the interim result;
- wherein Y=K−(11−B) when the computer is configured for double precision calculation and Y=K−(8−B) when the computer system is configured for single precision calculation;
- and
- wherein K is an integer in the range of between 11 and 52, inclusive, when the computer is configured for double precision calculation and K is an integer in the range of between 8 and 23, inclusive, when the computer is configured for single precision calculation.
Dependencies are inferred from the claim text.