PyPardiso
PyPardisoは、Intel oneAPI Math Kernel Library PARDISOソルバーを用いて、大規模な疎線形方程式系を解くためのPythonパッケージです。これは共有メモリマルチプロセッシング並列直接疎ソルバーです。
PyPardisoは、疎線形系 Ax=b を解くためのSciPyのscipy.sparse.linalg.spsolveと同様の機能を提供します。ただし、多くの場合、SciPyの組み込みの単一スレッドのSuperLUソルバーよりも大幅に高速です。
PyPardisoは、PARDISO 7.2 Solver ProjectのPARDISOソルバーのPythonインターフェースではなく、現在複素数には対応していません。これらのより高度なユースケースにはJuliaSparse/Pardiso.jlを参照してください。macOSユーザーには、Appleシリコン上でMKLが利用できないため、代替の高速ソルバーとしてscikit-umfpackを推奨します。
インストール
PyPardisoはLinuxおよびWindowsで動作します。__conda__または__pip__でインストール可能です。仮想環境を使用してPyPardisoをインストールすることを推奨します。
conda-forge | PyPI
:---:|:---:
|
conda install -c conda-forge pypardiso | pip install pypardiso
基本的な使い方
A がCSR(またはCSC)形式の正方疎行列で、b がベクトル(または行列)のとき、疎線形系 Ax=b を x について解く方法:
In [1]: import pypardisoIn [2]: import numpy as np
In [3]: import scipy.sparse as sp
In [4]: A = sp.rand(10, 10, density=0.5, format='csr')
In [5]: A
Out[5]:
<10x10 sparse matrix of type ''
with 50 stored elements in Compressed Sparse Row format>
In [6]: b = np.random.rand(10)
In [7]: x = pypardiso.spsolve(A, b)
In [8]: x
Out[8]:
array([ 0.02918389, 0.59629935, 0.33407289, -0.48788966, 3.44508841,
0.52565687, -0.48420646, 0.22136413, -0.95464127, 0.58297397])
--- Tranlated By Open Ai Tx | Last indexed: 2025-12-06 ---