forked from szy21/pycles_GCM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ParallelMPI.pxd
75 lines (63 loc) · 3.3 KB
/
ParallelMPI.pxd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
cimport mpi4py.libmpi as mpi
cimport Grid
cdef class ParallelMPI:
cdef:
mpi.MPI_Comm comm_world
mpi.MPI_Comm cart_comm_world
mpi.MPI_Comm cart_comm_sub_x
mpi.MPI_Comm cart_comm_sub_y
mpi.MPI_Comm cart_comm_sub_z
mpi.MPI_Comm cart_comm_sub_xy
public int rank
int size
int sub_x_size
int sub_y_size
int sub_z_size
int sub_x_rank
int sub_y_rank
int sub_z_rank
void create_sub_communicators(self)
double domain_scalar_sum(self, double local_value)
double domain_scalar_max(self, double local_value)
double domain_scalar_min(self, double local_value)
double domain_integral(self, Grid.Grid Gr, double* values, double* rho)
double [:] domain_vector_sum(self, double [:] local_vector, Py_ssize_t n)
double [:] HorizontalMean(self,Grid.Grid Gr, double* values)
double [:] HorizontalMeanofSquares(self,Grid.Grid Gr, double* values1, double* values2)
double [:] HorizontalMeanofCubes(self, Grid.Grid Gr, double* values1, double* values2, double* values3)
double [:] HorizontalMaximum(self, Grid.Grid Gr, double* values)
double [:] HorizontalMinimum(self, Grid.Grid Gr, double* values)
double HorizontalMeanSurface(self, Grid.Grid Gr, double* values)
double [:] HorizontalMeanConditional(self,Grid.Grid Gr, double* values, double* mask)
double [:] HorizontalMeanofSquaresConditional(self,Grid.Grid Gr, double* values1, double* values2, double* mask)
cpdef void barrier(self)
cpdef root_print(self, txt_output)
cpdef kill(self)
cdef class Pencil:
cdef:
long n_total_pencils
long n_local_pencils
long pencil_length
long [:] n_pencil_map
long [:] nl_map
long n_local_values
int [:] send_counts
int [:] recv_counts
int [:] sdispls
int [:] rdispls
int dim
int size
int rank
cpdef initialize(self, Grid.Grid Gr, ParallelMPI Pa, int dim)
cdef double [:,:] forward_double(self, Grid.DimStruct *dims, ParallelMPI Pa, double *data)
cdef void build_buffer_double(self, Grid.DimStruct *dims, double *data, double *local_transpose)
cdef void unpack_buffer_double(self,Grid.DimStruct *dims, double *recv_buffer, double [:,:] pencils)
cdef void reverse_double(self, Grid.DimStruct *dims, ParallelMPI Pa, double [:,:] pencils, double *data)
cdef void reverse_build_buffer_double(self, Grid.DimStruct *dims, double [:,:] pencils, double *send_buffer)
cdef void reverse_unpack_buffer_double(self, Grid.DimStruct *dims, double *recv_buffer, double *data )
cdef complex [:,:] forward_complex(self, Grid.DimStruct *dims, ParallelMPI Pa, complex *data)
cdef void build_buffer_complex(self, Grid.DimStruct *dims, complex *data, complex *local_transpose)
cdef void unpack_buffer_complex(self,Grid.DimStruct *dims, complex *recv_buffer, complex [:,:] pencils)
cdef void reverse_complex(self, Grid.DimStruct *dims, ParallelMPI Pa, complex [:,:] pencils, complex *data)
cdef void reverse_build_buffer_complex(self, Grid.DimStruct *dims, complex [:,:] pencils, complex *send_buffer)
cdef void reverse_unpack_buffer_complex(self, Grid.DimStruct *dims, complex *recv_buffer, complex *data )