Web Analytics

PyPardiso

⭐ 151 stars French by haasad

pypardiso-tests

PyPardiso

PyPardiso est un paquet python pour résoudre de grands systèmes linéaires creux avec le solveur Intel oneAPI Math Kernel Library PARDISO, un solveur direct creux parallèle multiprocesseur en mémoire partagée.

PyPardiso fournit la même fonctionnalité que scipy.sparse.linalg.spsolve de SciPy pour résoudre le système linéaire creux Ax=b. Cependant, dans de nombreux cas, il est significativement plus rapide que le solveur SuperLU mono-thread intégré à SciPy.

PyPardiso n’est pas une interface python au solveur PARDISO du PARDISO 7.2 Solver Project et ne prend pas non plus en charge actuellement les nombres complexes. Consultez JuliaSparse/Pardiso.jl pour ces cas d’utilisation plus avancés. Pour les utilisateurs macOS, nous recommandons scikit-umfpack comme solveur rapide alternatif, car MKL n’est pas disponible sur Apple silicon.

Installation

PyPardiso fonctionne sous Linux et Windows. Il peut être installé avec __conda__ ou __pip__. Il est recommandé d’installer PyPardiso en utilisant un environnement virtuel.

conda-forge | PyPI :---:|:---: conda-forge version | PyPI version conda install -c conda-forge pypardiso | pip install pypardiso

Utilisation basique

Comment résoudre le système linéaire creux Ax=b pour x, où A est une matrice carrée creuse au format CSR (ou CSC) et b est un vecteur (ou une matrice) :

In [1]: import pypardiso

In [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 ---