Skip to main content

Python wrapper for dynamically loaded ScaLAPACK and BLACS libraries

Project description

Dynamic ScaLAPACK wrapper for Python

Python wrapper for dynamically loaded ScaLAPACK and BLACS libraries

from scalapack4py import ScaLAPACK4py, parprint, ordprint
from ctypes import cast, py_object, CDLL, RTLD_GLOBAL

scalapack_lib = CDLL('libscalapack-openmpi.so.2.0', mode=RTLD_GLOBAL)
sl = ScaLAPACK4py(scalapack_lib)


descr = sl.wrap_blacs_desc(descr)
locshape = (descr.locrow, descr.loccol)
data = np.ctypeslib.as_array(data, shape=locshape)
sl.scatter(data_src, descr, data)

Or

# run as:  mpiexec -n 2 python3 -u test_scatter_complex.py
import numpy as np, os
from mpi4py import MPI
from scalapack4py import ScaLAPACK4py
from ctypes import CDLL, RTLD_GLOBAL, POINTER, c_int, c_double

sl = ScaLAPACK4py(CDLL('libscalapack-openmpi.so.2.0', mode=RTLD_GLOBAL))

n = 5
dtype=np.complex128
a = np.arange(n*n, dtype=dtype).reshape((n,n), order='F') * (MPI.COMM_WORLD.rank+1) if MPI.COMM_WORLD.rank==0 else None

print (a)

MP, NP = 2,1

ctx = sl.make_blacs_context(sl.get_default_system_context(), MP, NP)
descr = sl.make_blacs_desc(ctx, n, n)
print("descr", descr, descr.locrow, descr.loccol)

b = np.zeros((descr.locrow, descr.loccol), dtype=dtype)

sl.scatter_numpy(a, POINTER(c_int)(descr), b.ctypes.data_as(POINTER(c_double)), b.dtype)
print (b)


c = sl.gather_numpy(POINTER(c_int)(descr), b, (n, n))
print (c)

Project details


Download files

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

Source Distribution

scalapack4py-0.0.8.tar.gz (7.0 kB view details)

Uploaded Source

Built Distribution

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

scalapack4py-0.0.8-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file scalapack4py-0.0.8.tar.gz.

File metadata

  • Download URL: scalapack4py-0.0.8.tar.gz
  • Upload date:
  • Size: 7.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for scalapack4py-0.0.8.tar.gz
Algorithm Hash digest
SHA256 c8bf02fc080e43ce320631c384b8875742d5d1ac8e6c0e49d9f9ec442aec4427
MD5 86fe29b9a8e1c2a6ff39708c74c24bfd
BLAKE2b-256 2ffece305b55ca5983dc42cd7ccda6ab9ca0ad1afa697d77104264a9a76818bc

See more details on using hashes here.

File details

Details for the file scalapack4py-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: scalapack4py-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.13.0

File hashes

Hashes for scalapack4py-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 70c979eb9a681de8456d64e99dcf91b048e0063cea4a15e9df4b2f8155927111
MD5 7046d852ab17015c343f6ff22c21597f
BLAKE2b-256 59a0036b5d8ac7496ca866ccafc0a08edd2f7db6132b26acba0f31b9807e677c

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