Scipy update and Linalgfuncs speed check

I have updated the Scipy code to remove repeated loading of the Numpy code, and to fix a number of other warnings from the pyxll log file. I have also updated the speed check of the various linear algebra solvers, previously reported at Speed of Scipy Linear Algebra Solvers.

The updated files can be downloaded from:

pyLinAlgfuncs3.zip

TimeLinAlg.zip

Note that the spreadsheets require pyxll to link the Python code to Excel. See Python and pyxll for details of the pyxll package, including a coupon code for a 10% discount.

The file Time Lin-Alg2.xlsx has the larger matrix and time results for both:

As before, the solver times show the time for complete solution in the first column, or where applicable the time for factorisation in the first column, and extraction of the results from a factorised matrix in the second. The results are generally similar to before, but there are significant differences in the sparse solver option results:

The pyPardiso library (which must be installed separately to Scipy) remains very much faster than the built-in Scipy options, and is the default solver called by py_Spsolve, where installed. If pyPardiso is not available, option 3 (MMD_AT_PLUS_A) is now significantly faster than the others, and has been set as the default option in that case. These times were using Python 3.12.8, Scipy 1.14.1, and Numpy 2.0.2.

The iterative solver results are similar to before, with Option 7 being significantly faster than the others, and options 4 and 10 still failing to converge.

This entry was posted in Arrays, Excel, Frame Analysis, Link to Python, Newton, NumPy and SciPy, PyXLL, UDFs and tagged , , , , , , . Bookmark the permalink.

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.