2016-05-12 8 views
1

Ich habe scipy.sparse.linalg.eigs auf einigen großen Matrizen verwendet, und nicht überraschend dauert es eine Weile. Also habe ich nach Wegen gesucht, um es zu beschleunigen. Mein Verständnis ist, dass, unter der Haube, der scipy Code ARPACK verwendet, und es gibt eine parallele Version von ARPACK, die MPI verwendet. Ist es möglich, scipy verwenden die parallele Version von ARPACK ohne zu viel Schmerz? Wenn das so ist, wie?Kann ich paralleles ARPACK in scipy verwenden?

(Ich sollte anmerken, dass MATLAB Äquivalent von GIE multithreaded zu sein scheint, so dass die am wenigsten schmerzhafte Option sein kann.)

Antwort

0

Es scheint, dass die (MPI-) parallele Version von ARPACK ist eine ganz andere Projekt namens PARPACK.

„A parallel Version der ARPACK Bibliothek ist jetzt availible die Message-Passing-Schichten derzeit unterstützten BLACS und MPI parallel ARPACK (PARPACK) als eine Erweiterung des aktuellen ARPACK vorgesehen ist. Bibliothek (Release 2.1). "

Haben Sie sich PETsc4py angesehen? Oder vielleicht sogar

„erforschen eine parallele spärliche lineare Algebra-Bibliothek wie SPITZE oder cuSPARSE von Python aufrufen, wenn die Geschwindigkeit Ihre Sorge ist, und Sie haben eine NVIDIA GPU.“

(siehe this answer)