@@ -40,7 +40,12 @@ PROTOTYPE ERROR_CLASS alltoallv(BUFFER sendbuf, COUNT_ARRAY sendcounts,
40
40
DATATYPE recvtype , COMM comm )
41
41
{
42
42
int i , size , err ;
43
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_DECL (sendcounts );
44
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_DECL (sdispls );
45
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_DECL (recvcounts );
46
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_DECL (rdispls );
43
47
48
+ size = OMPI_COMM_IS_INTER (comm )?ompi_comm_remote_size (comm ):ompi_comm_size (comm );
44
49
SPC_RECORD (OMPI_SPC_ALLTOALLV , 1 );
45
50
46
51
MEMCHECKER (
@@ -56,7 +61,6 @@ PROTOTYPE ERROR_CLASS alltoallv(BUFFER sendbuf, COUNT_ARRAY sendcounts,
56
61
57
62
memchecker_comm (comm );
58
63
59
- size = OMPI_COMM_IS_INTER (comm )?ompi_comm_remote_size (comm ):ompi_comm_size (comm );
60
64
for ( i = 0 ; i < size ; i ++ ) {
61
65
if (MPI_IN_PLACE != sendbuf ) {
62
66
/* check if send chunks are defined. */
@@ -125,10 +129,21 @@ PROTOTYPE ERROR_CLASS alltoallv(BUFFER sendbuf, COUNT_ARRAY sendcounts,
125
129
}
126
130
#endif
127
131
132
+ /* TODO: MPI_IN_PLACE? */
133
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_PREPARE (sendcounts , size , i );
134
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_PREPARE (sdispls , size , i );
135
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_PREPARE (recvcounts , size , i );
136
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_PREPARE (rdispls , size , i );
128
137
/* Invoke the coll component to perform the back-end operation */
129
- err = comm -> c_coll -> coll_alltoallv (sendbuf , sendcounts , sdispls , sendtype ,
130
- recvbuf , recvcounts , rdispls , recvtype ,
131
- comm , comm -> c_coll -> coll_alltoallv_module );
138
+ err = comm -> c_coll -> coll_alltoallv (sendbuf , OMPI_BIGCOUNT_ARRAY_NAME (sendcounts ),
139
+ OMPI_BIGCOUNT_ARRAY_NAME (sdispls ), sendtype ,
140
+ recvbuf , OMPI_BIGCOUNT_ARRAY_NAME (recvcounts ),
141
+ OMPI_BIGCOUNT_ARRAY_NAME (rdispls ), recvtype ,
142
+ comm , comm -> c_coll -> coll_alltoallv_module );
143
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_POST (sendcounts );
144
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_POST (sdispls );
145
+ OMPI_BIGCOUNT_ARRAY_COUNT_IN_POST (recvcounts );
146
+ OMPI_BIGCOUNT_ARRAY_DISPL_IN_POST (rdispls );
132
147
OMPI_ERRHANDLER_RETURN (err , comm , err , FUNC_NAME );
133
148
}
134
149
0 commit comments