65

Fast Strassen-based AtAA^t A Parallel Multiplication

Abstract

Matrix multiplication AtAA^t A appears as intermediate operation during the solution of a wide set of problems. In this paper, we propose a new cache-oblivious algorithm for the AtAA^t A multiplication. Our algorithm, AT\scriptstyle \mathsf{T}A, calls classical Strassen's algorithm as sub-routine, decreasing the computational cost %(expressed in number of performed products) of the conventional AtAA^t A multiplication to 27nlog27\frac{2}{7}n^{\log_2 7}. It works for generic rectangular matrices and exploits the peculiar symmetry of the resulting product matrix for sparing memory. We used the MPI paradigm to implement AT\scriptstyle \mathsf{T}A in parallel, and we tested its performances on a small subset of nodes of the Galileo cluster. Experiments highlight good scalability and speed-up, also thanks to minimal number of exchanged messages in the designed communication system. Parallel overhead and inherently sequential time fraction are negligible in the tested configurations.

View on arXiv
Comments on this paper