1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
cimport mpi4py.MPI as MPI
from mpi4py.mpi_c cimport *
cdef extern from "stdio.h":
int printf(char*, ...)
cdef void c_sayhello(MPI_Comm comm):
cdef int size, rank, plen
cdef char pname[MPI_MAX_PROCESSOR_NAME]
if comm == MPI_COMM_NULL:
printf("You passed MPI_COMM_NULL !!!\n")
return
MPI_Comm_size(comm, &size)
MPI_Comm_rank(comm, &rank)
MPI_Get_processor_name(pname, &plen)
printf("Hello, World! I am process %d of %d on %s.\n",
rank, size, pname)
def sayhello(MPI.Comm comm not None ):
cdef MPI_Comm c_comm = comm.ob_mpi
c_sayhello(c_comm)
|