Compatibility with mpi4py <= 1.3.1.
This commit is contained in:
parent
8d87184330
commit
1892b77a46
3 changed files with 13 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -14,3 +14,4 @@
|
||||||
/sharp_oracle.inc
|
/sharp_oracle.inc
|
||||||
|
|
||||||
/python/libsharp/libsharp.c
|
/python/libsharp/libsharp.c
|
||||||
|
/python/libsharp/libsharp_mpi.c
|
||||||
|
|
|
@ -105,7 +105,8 @@ def sht(jobtype, geom_info ginfo, alm_info ainfo, double[:, :, ::1] input,
|
||||||
from mpi4py import MPI
|
from mpi4py import MPI
|
||||||
if not isinstance(comm, MPI.Comm):
|
if not isinstance(comm, MPI.Comm):
|
||||||
raise TypeError('comm must be an mpi4py communicator')
|
raise TypeError('comm must be an mpi4py communicator')
|
||||||
comm_ptr = <void*><size_t>MPI._addressof(comm)
|
from .libsharp_mpi import _addressof
|
||||||
|
comm_ptr = <void*><size_t>_addressof(comm)
|
||||||
with nogil:
|
with nogil:
|
||||||
r = sharp_execute_mpi_maybe (
|
r = sharp_execute_mpi_maybe (
|
||||||
comm_ptr, jobtype_i,
|
comm_ptr, jobtype_i,
|
||||||
|
|
10
python/libsharp/libsharp_mpi.pyx
Normal file
10
python/libsharp/libsharp_mpi.pyx
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
from mpi4py.MPI cimport Comm
|
||||||
|
cdef extern from "Python.h":
|
||||||
|
object PyLong_FromVoidPtr(void*)
|
||||||
|
|
||||||
|
# For compatibility with mpi4py <= 1.3.1
|
||||||
|
# Newer versions could use the MPI._addressof function
|
||||||
|
def _addressof(comm):
|
||||||
|
cdef void *ptr = NULL
|
||||||
|
ptr = <void*>&(<Comm>comm).ob_mpi
|
||||||
|
return PyLong_FromVoidPtr(ptr)
|
Loading…
Add table
Add a link
Reference in a new issue