Physics Informed Preconditioners and Solvers
Project description
Physics Informed Preconditioners
Introduction
HIPO, short for High Performance Precondition Operators, is a large-scale linear equation solver package. It supports distributed heterogeneous parallel computing (MPI+CPU/GPU/DCU/...) and provides physics-informed preconditioners for solvers, especially physics-informed AMG preconditioners. It is dedicated to stably and efficiently solving large-scale linear algebraic equations derived from the discretization of mathematical and physical models.
Install
$ pip install hipo
Usage
use the following command to get the help message:
$ python -m hipo help
copy the example out
$ cp -r path_to_hipo/examples .
then run the example:
$ python solver.py thermal1.mtx thermal1_b.mtx solver.json
The following python script shows the above solver.py. read matrix A and vector b from MatrixMarket files, using CUDA to solve Ax=b.
# solver.py
import hipo
import sys, re, os
#import json
import commentjson as json
fnA = sys.argv[1]
fnb = sys.argv[2]
config = sys.argv[3]
params = json.load(open(config))
A = hipo.ParCSRMatrix()
A.loadFromFile(fnA)
b = hipo.ParMatrix()
b.loadFromFile(fnb)
if b.getSize() == 0:
b.resize(A.getRows(), 1)
b.fill(1)
# transfer the matrix and vector to gpu 0.
dev = hipo.Device("cuda:0")
A = A.toDevice(dev)
b = b.toDevice(dev)
# use gpu 0 to finish the computation.
precond = hipo.createPrecond(params["preconditioner"])
precond.setup(A)
solver = hipo.createSolver(params["solver"])
solver.setup(A)
out = solver.solve(precond, A, b)
Solvers and Preconditioners
use
$ python -m hipo info
to show the builtin solvers, preconditioners, smoothers, level_transfers.
Compatibility
-
OS version
Now support Linux, Ubuntu/Federa/... will be OK. Windows version will be available later.
-
PYTHON version
the python version is >=3.8.
-
GPU/CUDA version
If you want to use CUDA, ensure that CUDA Version >= 12.4.
-
DCU version
please contact us to compile the specified version.
-
DISTRIBUTED version
hipo support MPI since hipo-1.0.4.
License
This software is free software distributed under the Lesser General Public License or LGPL, version 3.0 or any later versions. This software distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with HIPO. If not, see http://www.gnu.org/licenses/.
This software depends on GLOG, AMGCL, their license files are located in the package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hipo-1.0.4.20250822-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 20.4 MB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0f1478579cadef76f0b09f59bdb7208d22785fa47ca0094c86216f7a3afec6a1
|
|
| MD5 |
7315fbc2e45d15799e2c1bc7654468bd
|
|
| BLAKE2b-256 |
22ee5b4345bb3fc2f6dd6da6ffe3604f828139c0d98d76f76deb5c76e1910548
|
File details
Details for the file hipo-1.0.4.20250822-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.14, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
01eda94c473844b3b4a1cb7a5ef8b3e5c9f32d29627194b6617a3dfe1cdfd1d8
|
|
| MD5 |
dfce193b1571989d282bf0c9bf1f4e74
|
|
| BLAKE2b-256 |
8a5550e000b94e0fd22e983abf79a102f38ffccc5005d019ee3cc9a84373053d
|
File details
Details for the file hipo-1.0.4.20250822-cp313-cp313-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp313-cp313-win_amd64.whl
- Upload date:
- Size: 20.0 MB
- Tags: CPython 3.13, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a91e379f2597e62b94e595b84bfcecf63ffc83fb12c9981af138e894420fb101
|
|
| MD5 |
5643b8d65dd4c9ec5f978b265a54e661
|
|
| BLAKE2b-256 |
ffe964ba2c7413b9f043c430d3df35645ad4924140d42c15c376b09c78c0332a
|
File details
Details for the file hipo-1.0.4.20250822-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.13, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5590e6e25eb6ecd0ea91c879d6a207047f363b34080e8cea8ea6c050398cd324
|
|
| MD5 |
bade07b8341a1cac29cc49c023a583af
|
|
| BLAKE2b-256 |
33245a800f8c97400a93cef03da742e796b32492b561a53120f9828358a3a776
|
File details
Details for the file hipo-1.0.4.20250822-cp312-cp312-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp312-cp312-win_amd64.whl
- Upload date:
- Size: 20.0 MB
- Tags: CPython 3.12, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1923daedb4e8f4bf389093d50185be3e6b83ad50b8f500047ffc781a5b539989
|
|
| MD5 |
8ff7465550c5154c15518c238f616ccf
|
|
| BLAKE2b-256 |
a153b3e575e02eeb86e03aa514878df868aabdfc553861f13608bd2c074f7d78
|
File details
Details for the file hipo-1.0.4.20250822-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
77f57edf1f6be8ccfac48eded2f3daec91bbb87217090eccf526aa961955b18b
|
|
| MD5 |
f26a8a5ab536b2512ced0f255c4d905c
|
|
| BLAKE2b-256 |
7039699516fc9a6fe2fc26362d0e1baa54d3313e24066836695dd12068de2177
|
File details
Details for the file hipo-1.0.4.20250822-cp311-cp311-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp311-cp311-win_amd64.whl
- Upload date:
- Size: 20.0 MB
- Tags: CPython 3.11, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5295cc0c2a80d34f40082b2031b983c18e96d65b3567bbdf10224e2b8002c9cf
|
|
| MD5 |
792993c4400a39c63d13a60c588075b3
|
|
| BLAKE2b-256 |
d1eb48e93d3a4e53b7fe515e557f4b01c92ea555466af27de4e828db77e9f659
|
File details
Details for the file hipo-1.0.4.20250822-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1533913fade5adcc6c13d98a2521a7ca37fbc62357e64b3284ab0a0194edcabb
|
|
| MD5 |
bf983a0323782dc51804318603e3bfb5
|
|
| BLAKE2b-256 |
41459b13821f3980db007feabbb7fbd89edea4d7be01e2a37cf72fe3115b5e03
|
File details
Details for the file hipo-1.0.4.20250822-cp310-cp310-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp310-cp310-win_amd64.whl
- Upload date:
- Size: 20.0 MB
- Tags: CPython 3.10, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3746de039a18a1654af635cd7f715d2b296fc46491917e73efc8d61faf13f72
|
|
| MD5 |
3219e419a12b881ba7bd79a83678e671
|
|
| BLAKE2b-256 |
3db3e86330b4d56fd3f6331233f40035795c97fddc43453b89b9eba357f85500
|
File details
Details for the file hipo-1.0.4.20250822-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9b66520890bea7cb4b2199b061cccca288ca04bc834bc7d13962107148a0a9e8
|
|
| MD5 |
d5c23c1f6782060647252751acfb9d77
|
|
| BLAKE2b-256 |
02d63e665775cc8be7698417488779552ad51b1bd4786d1800e46136a6ab851d
|
File details
Details for the file hipo-1.0.4.20250822-cp39-cp39-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp39-cp39-win_amd64.whl
- Upload date:
- Size: 20.1 MB
- Tags: CPython 3.9, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eb136faa81a7887b268c6b8fac9dfd5af0ea5d9b7501eb2a1385d72f05702302
|
|
| MD5 |
2ab8038b51fe5f0f6c2bc8cf989953eb
|
|
| BLAKE2b-256 |
765fdccc570f895d66d013f43705e77d2e1a1c4d45a97f2220520a537e465d10
|
File details
Details for the file hipo-1.0.4.20250822-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
700b629cf334aaf0b5fd894004a3270a93a6e8f5a65520ad9281597e2c8d12db
|
|
| MD5 |
1a2a52005d0da4e460dc38836b62daf5
|
|
| BLAKE2b-256 |
faba15d64f8cb086f4e4af20826b887100fcc636974e865da841a3df888f8e91
|
File details
Details for the file hipo-1.0.4.20250822-cp38-cp38-win_amd64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp38-cp38-win_amd64.whl
- Upload date:
- Size: 20.0 MB
- Tags: CPython 3.8, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
644424fe56efe91b024e629fcbd02805fff8df73485c1000dafaa37324e359ea
|
|
| MD5 |
d6d9b708c84bca3dbdcd28da2138562e
|
|
| BLAKE2b-256 |
806a498f3ac6605a1bbb6360a8f27ee7b25af23bc9a2312a8dd17a65ece0523f
|
File details
Details for the file hipo-1.0.4.20250822-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.
File metadata
- Download URL: hipo-1.0.4.20250822-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
- Upload date:
- Size: 41.3 MB
- Tags: CPython 3.8, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2ebc698eeffb65d4c4bacc67a0d3fe03916a255d127526479a24cb805fa2d32f
|
|
| MD5 |
cbcf7de94a2dc2c7a321e3ee5685e8da
|
|
| BLAKE2b-256 |
cd820f2b5d7f8bf05ffec0023182b4bfb0cdac25de3ca192ff31911ae4ed3b54
|