Я хочу решить уравнение Ax = b с большой, симметричной, плотной матрицей A (> 100 ГБ).Я пытаюсь использовать Dask, потому что предполагается, что это хороший API высокого уровня для работы с большими данными на python.
Это мой код:
n = 100000 # makes 75GB array
chunk_size = 5000
A = da.random.random(size=(n, n), chunks=(chunk_size, chunk_size))
b = np.random.random(n)
x = da.linalg.solve(A, b)
res = x.compute()
К сожалению, я получаю следующую ошибку, по-видимому, потому что A слишком велик.Есть ли в Dask какой-нибудь умный механизм, предотвращающий ошибку MemoryError (например, итеративное решение проблемы)?
Traceback (most recent call last):
File "test_solver.py", line 27, in <module>
x = da.linalg.solve(A, b)
File "..\venv\lib\site-packages\dask\array\linalg.py", line 916, in solve
File "..\venv\lib\site-packages\dask\array\linalg.py", line 755, in lu
MemoryError
Заранее большое спасибо!