1

I've been using scipy.sparse.linalg.eigs on some large matrices, and not surprisingly, it takes a while. So, I've been looking for ways to speed it up. My understand is that, under the hood, the scipy code use ARPACK, and there is a parallel version of ARPACK which uses MPI. Is it possible to have scipy use the parallel version of ARPACK without too much pain? If so, how?

(I should note that MATLAB's equivalent of eigs does seem to be multithreaded, so that may be the least painful option.)

lnmaurer
  • 1,687
  • 4
  • 22
  • 32

1 Answers1

0

It would seem that the (MPI-) parallel version of ARPACK is an entirely different project called PARPACK:

"A parallel version of the ARPACK library is now availible. The message passing layers currently supported are BLACS and MPI . Parallel ARPACK (PARPACK) is provided as an extension to the current ARPACK library (Release 2.1)."

Have you looked at PETsc4py? Or maybe even

"explore calling a parallel sparse linear algebra library like CUSP or cuSPARSE from Python if speed is your concern and you have an NVIDIA GPU."

(see this answer)

Community
  • 1
  • 1
Inon
  • 2,106
  • 3
  • 12
  • 17