A Modified Strassen Algorithm to Accelerate Numpy Large Matrix Multiplication with Integer Entries
Anthony Breitzman
Numpy is a popular Python library widely used in
the math and scientific community because of its speed and convenience.
We present a Strassen type algorithm for multiplying large matrices with integer entries.
The algorithm is the standard Strassen divide and conquer algorithm but it crosses over to Numpy when either the row or column dimension of one of the matrices drops below 128. The algorithm was tested on a MacBook, an I7 based Windows machine as well as a Linux machine running a Xeon processor and we found that for matrices with thousands of rows or columns and integer entries, the Strassen based algorithm with crossover performed 8 to 30 times faster than regular Numpy on such matrices. Although there is no apparent advantage for matrices with real entries, there are a number of applications for matrices with integer coefficients.
Strassen, Numpy, Integer Matrix
DOI10.25080/gerudo-f2bc6f59-002