Skip to main content

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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

hipo-1.0.4.20250822-cp314-cp314-win_amd64.whl (20.4 MB view details)

Uploaded CPython 3.14Windows x86-64

hipo-1.0.4.20250822-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp313-cp313-win_amd64.whl (20.0 MB view details)

Uploaded CPython 3.13Windows x86-64

hipo-1.0.4.20250822-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp312-cp312-win_amd64.whl (20.0 MB view details)

Uploaded CPython 3.12Windows x86-64

hipo-1.0.4.20250822-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp311-cp311-win_amd64.whl (20.0 MB view details)

Uploaded CPython 3.11Windows x86-64

hipo-1.0.4.20250822-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp310-cp310-win_amd64.whl (20.0 MB view details)

Uploaded CPython 3.10Windows x86-64

hipo-1.0.4.20250822-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp39-cp39-win_amd64.whl (20.1 MB view details)

Uploaded CPython 3.9Windows x86-64

hipo-1.0.4.20250822-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

hipo-1.0.4.20250822-cp38-cp38-win_amd64.whl (20.0 MB view details)

Uploaded CPython 3.8Windows x86-64

hipo-1.0.4.20250822-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl (41.3 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

File details

Details for the file hipo-1.0.4.20250822-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0f1478579cadef76f0b09f59bdb7208d22785fa47ca0094c86216f7a3afec6a1
MD5 7315fbc2e45d15799e2c1bc7654468bd
BLAKE2b-256 22ee5b4345bb3fc2f6dd6da6ffe3604f828139c0d98d76f76deb5c76e1910548

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 01eda94c473844b3b4a1cb7a5ef8b3e5c9f32d29627194b6617a3dfe1cdfd1d8
MD5 dfce193b1571989d282bf0c9bf1f4e74
BLAKE2b-256 8a5550e000b94e0fd22e983abf79a102f38ffccc5005d019ee3cc9a84373053d

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 a91e379f2597e62b94e595b84bfcecf63ffc83fb12c9981af138e894420fb101
MD5 5643b8d65dd4c9ec5f978b265a54e661
BLAKE2b-256 ffe964ba2c7413b9f043c430d3df35645ad4924140d42c15c376b09c78c0332a

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 5590e6e25eb6ecd0ea91c879d6a207047f363b34080e8cea8ea6c050398cd324
MD5 bade07b8341a1cac29cc49c023a583af
BLAKE2b-256 33245a800f8c97400a93cef03da742e796b32492b561a53120f9828358a3a776

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1923daedb4e8f4bf389093d50185be3e6b83ad50b8f500047ffc781a5b539989
MD5 8ff7465550c5154c15518c238f616ccf
BLAKE2b-256 a153b3e575e02eeb86e03aa514878df868aabdfc553861f13608bd2c074f7d78

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 77f57edf1f6be8ccfac48eded2f3daec91bbb87217090eccf526aa961955b18b
MD5 f26a8a5ab536b2512ced0f255c4d905c
BLAKE2b-256 7039699516fc9a6fe2fc26362d0e1baa54d3313e24066836695dd12068de2177

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 5295cc0c2a80d34f40082b2031b983c18e96d65b3567bbdf10224e2b8002c9cf
MD5 792993c4400a39c63d13a60c588075b3
BLAKE2b-256 d1eb48e93d3a4e53b7fe515e557f4b01c92ea555466af27de4e828db77e9f659

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 1533913fade5adcc6c13d98a2521a7ca37fbc62357e64b3284ab0a0194edcabb
MD5 bf983a0323782dc51804318603e3bfb5
BLAKE2b-256 41459b13821f3980db007feabbb7fbd89edea4d7be01e2a37cf72fe3115b5e03

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3746de039a18a1654af635cd7f715d2b296fc46491917e73efc8d61faf13f72
MD5 3219e419a12b881ba7bd79a83678e671
BLAKE2b-256 3db3e86330b4d56fd3f6331233f40035795c97fddc43453b89b9eba357f85500

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 9b66520890bea7cb4b2199b061cccca288ca04bc834bc7d13962107148a0a9e8
MD5 d5c23c1f6782060647252751acfb9d77
BLAKE2b-256 02d63e665775cc8be7698417488779552ad51b1bd4786d1800e46136a6ab851d

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eb136faa81a7887b268c6b8fac9dfd5af0ea5d9b7501eb2a1385d72f05702302
MD5 2ab8038b51fe5f0f6c2bc8cf989953eb
BLAKE2b-256 765fdccc570f895d66d013f43705e77d2e1a1c4d45a97f2220520a537e465d10

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 700b629cf334aaf0b5fd894004a3270a93a6e8f5a65520ad9281597e2c8d12db
MD5 1a2a52005d0da4e460dc38836b62daf5
BLAKE2b-256 faba15d64f8cb086f4e4af20826b887100fcc636974e865da841a3df888f8e91

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 644424fe56efe91b024e629fcbd02805fff8df73485c1000dafaa37324e359ea
MD5 d6d9b708c84bca3dbdcd28da2138562e
BLAKE2b-256 806a498f3ac6605a1bbb6360a8f27ee7b25af23bc9a2312a8dd17a65ece0523f

See more details on using hashes here.

File details

Details for the file hipo-1.0.4.20250822-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for hipo-1.0.4.20250822-cp38-cp38-manylinux2014_x86_64.manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 2ebc698eeffb65d4c4bacc67a0d3fe03916a255d127526479a24cb805fa2d32f
MD5 cbcf7de94a2dc2c7a321e3ee5685e8da
BLAKE2b-256 cd820f2b5d7f8bf05ffec0023182b4bfb0cdac25de3ca192ff31911ae4ed3b54

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page