Inversão esparsa Scipy ou spsolve levam a UMFPACK_ERROR_OUT_OF_MEMORY

Estou tentando inverter uma grande(150000,150000) matriz esparsa da seguinte forma:

import scipy as sp
import scipy.sparse.linalg as splu

#Bs is a large sparse matrix with shape=(150000,150000)

#calculating the sparse inverse
iBs=splu.inv(Bs)

leva à seguinte mensagem de erro:

Traceback (most recent call last):
    iBs=splu.inv(Bs)
  File "/usr/lib/python2.7/dist-packages/scipy/sparse/linalg/dsolve/linsolve.py", line 134, in spsolve
autoTranspose=True)
  File "/usr/lib/python2.7/dist-packages/scipy/sparse/linalg/dsolve/umfpack/umfpack.py", line 603, in linsolve
self.numeric(mtx)
  File "/usr/lib/python2.7/dist-packages/scipy/sparse/linalg/dsolve/umfpack/umfpack.py", line 450, in numeric
umfStatus[status]))
RuntimeError: <function umfpack_di_numeric at 0x7f2c76b1d320> failed with UMFPACK_ERROR_out_of_memory

Rejeitei o programa para simplesmente resolver um sistema de equações diferenciais lineares:

import numpy as np

N=Bs.shape[0]

I=np.ones(N)

M=splu.spsolve(Bs,I)

e encontro o mesmo erro novamente

Eu estava usando esse código em uma máquina com 16 GB de RAM e depois o movi para um servidor com 32 GB de RAM, sem sucesso.

Alguém encontrou isso antes?

questionAnswers(2)

yourAnswerToTheQuestion