A Parallel Computing Method for the Computation of the Moore–Penrose Generalized Inverse for Shared-Memory Architectures (2023)
The computation of the Moore–Penrose generalized inverse is a commonly used operation in various fields such as the training of neural networks based on random weights. Therefore, a fast computation of this inverse is important for problems where such neural networks provide a solution. However, due to the growth of databases, the matrices involved have large dimensions, thus requiring a significant amount of processing and execution time. In this paper, we propose a parallel computing method for the computation of the Moore–Penrose generalized inverse of large-size full-rank rectangular matrices. The proposed method employs the Strassen algorithm to compute the inverse of a nonsingular matrix and is implemented on a shared-memory architecture. The results show a significant reduction in computation time, especially for high-rank matrices. Furthermore, in a sequential computing scenario (using a single execution thread), our method achieves a reduced computation time compared with other previously reported algorithms. Consequently, our approach provides a promising solution for the efficient computation of the Moore–Penrose generalized inverse of large-size matrices employed in practical scenarios.