A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion
Abstract
:1. Introduction
- We propose and implement a large-scale matrix block-recursive inversion algorithm based on the Strassen’s method while using distributed and parallel technologies.
- We describe the theorem used in our algorithm; furthermore, we prove the theorem and describe the algorithm steps.
- Through numerous experiments, we prove that the proposed method is superior to LU decomposition and Gauss-Jordan elimination under the same conditions.
2. Related Work
2.1. Gauss-Jordan Elimination
- (1)
- Multiply the first row by a constant, such that becomes 1 (initially, if this element is zero, add any other row whose first element is not zero to this row).
- (2)
- Subtract the first row multiplied by a constant from the second row such that become zero. Perform the same operation for the remaining rows, written as .
- (3)
- Repeat steps (1)–(2) for each column sequentially to transform the left half into an upper triangular matrix.
2.2. LU Decomposition
3. Theoretical Demonstration and Algorithm Design
3.1. Matrix Completion
3.2. Block Inversion Theorem
3.3. Recursive Algorithm
Algorithm 1 The recursion algorithm. |
|
4. Experimental Evaluation
4.1. Experimental Environment
4.2. Comparison of Performance
5. Conclusions
Author Contributions
Funding
Conflicts of Interest
References
- Yan, M.; Sang, J.; Xu, C. Unified youtube video recommendation via cross-network collaboration. In Proceedings of the 5th ACM on International Conference on Multimedia Retrieval, Shanghai, China, 23–26 June 2015; pp. 19–26. [Google Scholar]
- Matsue, T.; Sekitsuka, T.; Shingyoji, R. Satellite Radiowave Receiving Device, Electronic Timepiece, Method for Controlling Positioning Operations, and Storage Device. U.S. Patent App. 16/135,383, 28 March 2019. [Google Scholar]
- Porras, J.; Baena, J.; Ding, J. ZHFE, a new multivariate public key encryption scheme. In Proceedings of the International Workshop on Post-Quantum Cryptography, Waterloo, ON, Canada, 1–3 October 2014; pp. 229–245. [Google Scholar]
- Althoen, S.C.; Mclaughlin, R. Gauss-Jordan reduction: A brief history. Am. Math. Mon. 1987, 94, 130–142. [Google Scholar] [CrossRef]
- Krishnamoorthy, A.; Menon, D. Matrix inversion using Cholesky decomposition. In Proceedings of the 2013 Signal Processing: Algorithms, Architectures, Arrangements, and Applications (SPA), Poznan, Poland, 26–28 September 2013; pp. 70–72. [Google Scholar]
- Press, W.; Teukolsky, S.; Vetterling, W.; Flannery, B. Numerical Recipes: The Art of Scientific Computing, 3rd ed.; Cambridge University Press: Cambridge, UK, 2007. [Google Scholar]
- Vajargah, B.F. A way to obtain Monte Carlo matrix inversion with minimal error. Appl. Math. Comput. 2007, 191, 225–233. [Google Scholar] [CrossRef]
- Huang, Y.; McColl, W. Analytical inversion of general tridiagonal matrices. J. Phys. A Math. Gen. 1997, 30, 7919. [Google Scholar] [CrossRef]
- Kanal, M. Parallel algorithm on inversion for adjacent pentadiagonal matrices with mpi. J. Supercomput. 2012, 59, 1071–1078. [Google Scholar] [CrossRef]
- Ries, F.; De Marco, T.; Guerrieri, R. Triangular matrix inversion on heterogeneous multicore systems. IEEE Trans. Parallel Distrib. Syst. 2012, 23, 177–184. [Google Scholar] [CrossRef]
- Strassen, V. Gaussian elimination is not optimal. Numer. Math. 1969, 13, 354–356. [Google Scholar] [CrossRef]
- Pan, V.Y. Strassen’s algorithm is not optimal trilinear technique of aggregating, uniting and canceling for constructing fast algorithms for matrix operations. In Proceedings of the 19th Annual Symposium on Foundations of Computer Science (sfcs 1978), Ann Arbor, MI, USA, 16–18 October 1978; pp. 166–176. [Google Scholar]
- Coppersmith, D.; Winograd, S. On the asymptotic complexity of matrix multiplication. SIAM J. Comput. 1982, 11, 472–492. [Google Scholar] [CrossRef]
- Xiang, J.; Meng, H.; Aboulnaga, A. Scalable matrix inversion using mapreduce. In Proceedings of the 23rd International Symposium on High-Performance Parallel and Distributed Computing, Vancouver, BC, Canada, 23–27 June 2014; pp. 177–190. [Google Scholar]
- Liu, J.; Liang, Y.; Ansari, N. Spark-based large-scale matrix inversion for big data processing. IEEE Access 2016, 4, 2166–2176. [Google Scholar] [CrossRef]
Matrix | Order (PC) | Order (GPUs) |
---|---|---|
M1 | 1000 | 10,000 |
M2 | 2000 | 20,000 |
M3 | 3000 | 30,000 |
M4 | 4000 | 40,000 |
M5 | 5000 | 50,000 |
M6 | 6000 | 60,000 |
M7 | 7000 | 70,000 |
M8 | 8000 | 80,000 |
M9 | 10,000 | 100,000 |
M10 | 20,000 | 140,000 |
Method | G-J (4 Threads) | G-J (8 Threads) | NovelIn (1000) | NovelIn (500) | NovelIn (200) | NovelIn (100) | Speedup | ||
---|---|---|---|---|---|---|---|---|---|
Times (s) | |||||||||
Dimension | |||||||||
1000 | 9 | 3.2 | 10 | 4.6 | 2.2 | 1.8 | 1.78 | ||
2000 | 52 | 24 | 30 | 17 | 14 | 13 | 1.85 | ||
3000 | 192 | 74 | 98 | 48 | 46 | 42 | 1.76 | ||
4000 | 745 | 174 | 375 | 101 | 101 | 99 | 1.76 | ||
5000 | 990 | 374 | 810 | 200 | 196 | 193 | 1.94 | ||
6000 | 1842 | 692 | 1253 | 358 | 337 | 332 | 2.08 | ||
8000 | 9621 | 1839 | 3000 | 810 | 782 | 780 | 2.36 | ||
10,000 | 22,100 | 3625 | 5320 | 1580 | 1530 | 1526 | 2.38 | ||
20,000 | 29,090.4 | 24,700 | 13,521 | 12,862 | 12,121 | 2.40 |
Finite Field | |||||
---|---|---|---|---|---|
Times (s) | |||||
Dimension | |||||
10,000 | 9 | 20 | 20 | ||
20,000 | 35 | 94 | 94 | ||
30,000 | 77 | 273 | 273 | ||
40,000 | 152 | 545 | 545 | ||
50,000 | 260 | 1066 | 1066 | ||
60,000 | 424 | 1870 | 1870 | ||
80,000 | 940 | 4058 | 4058 | ||
100,000 | 1754 | 7898 | 7898 | ||
140,000 | 4757 |
Finite Field | G-J () | NovelIn () | Speedup () | G-J () | NovelIn () | Speedup () | ||
---|---|---|---|---|---|---|---|---|
Times (s) | ||||||||
Dimension | ||||||||
1000 | 3.9 | 1.8 | 2.17 | 3.9 | 85 | 0.05 | ||
2000 | 32 | 13 | 2.46 | 32 | 328 | 0.10 | ||
3000 | 116 | 40 | 2.90 | 116 | 40 | 2.90 | ||
4000 | 310 | 94 | 3.30 | 310 | 1809 | 0.17 | ||
5000 | 583 | 181 | 3.22 | 583 | 3592 | 0.16 | ||
6000 | 1048 | 310 | 3.38 | 1048 | 310 | 3.38 | ||
8000 | 2601 | 731 | 3.56 | 2601 | 12,908 | 0.20 | ||
10,000 | 4910 | 1426 | 3.44 | 4910 | 25452 | 0.19 | ||
12,000 | 8827 | 2452 | 3.60 | 8827 | 2452 | 3.60 | ||
20,000 | 46,082 | 11,326 | 4.07 | 46,082 | 11,326 | 4.07 |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2020 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Wang, H.; Guo, Y.; Zhang, H. A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion. Information 2020, 11, 523. https://doi.org/10.3390/info11110523
Wang H, Guo Y, Zhang H. A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion. Information. 2020; 11(11):523. https://doi.org/10.3390/info11110523
Chicago/Turabian StyleWang, HouZhen, Yan Guo, and HuanGuo Zhang. 2020. "A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion" Information 11, no. 11: 523. https://doi.org/10.3390/info11110523
APA StyleWang, H., Guo, Y., & Zhang, H. (2020). A Method of Ultra-Large-Scale Matrix Inversion Using Block Recursion. Information, 11(11), 523. https://doi.org/10.3390/info11110523