Correclt compute the dargs even for the first data.
This commit was SVN r5557.
Этот коммит содержится в:
родитель
b25a5a24be
Коммит
a03ea3e82c
@ -74,7 +74,7 @@ int MPI_Type_create_darray(int size,
|
|||||||
MPI_Datatype *newtype)
|
MPI_Datatype *newtype)
|
||||||
|
|
||||||
{
|
{
|
||||||
int32_t i, step, end_loop, *r;
|
int32_t i, darg_i, step, end_loop, *r;
|
||||||
MPI_Datatype temptype;
|
MPI_Datatype temptype;
|
||||||
|
|
||||||
if (MPI_PARAM_CHECK) {
|
if (MPI_PARAM_CHECK) {
|
||||||
@ -135,9 +135,8 @@ int MPI_Type_create_darray(int size,
|
|||||||
end_loop = -1;
|
end_loop = -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
temptype = cyclic( darg_array[i], gsize_array[i], r[i], psize_array[i], oldtype );
|
do {
|
||||||
for( i += step; i != end_loop; i += step ) {
|
darg_i = darg_array[i];
|
||||||
int darg_i = darg_array[i];
|
|
||||||
if( distrib_array[i] == MPI_DISTRIBUTE_BLOCK ) {
|
if( distrib_array[i] == MPI_DISTRIBUTE_BLOCK ) {
|
||||||
if( darg_array[i] == MPI_DISTRIBUTE_DFLT_DARG )
|
if( darg_array[i] == MPI_DISTRIBUTE_DFLT_DARG )
|
||||||
darg_i = (gsize_array[i] + psize_array[i] - 1) / psize_array[i];
|
darg_i = (gsize_array[i] + psize_array[i] - 1) / psize_array[i];
|
||||||
@ -151,7 +150,8 @@ int MPI_Type_create_darray(int size,
|
|||||||
*newtype = cyclic( darg_i, gsize_array[i], r[i], psize_array[i], temptype );
|
*newtype = cyclic( darg_i, gsize_array[i], r[i], psize_array[i], temptype );
|
||||||
ompi_ddt_destroy( &temptype );
|
ompi_ddt_destroy( &temptype );
|
||||||
temptype = *newtype;
|
temptype = *newtype;
|
||||||
}
|
i += step;
|
||||||
|
} while( i != end_loop );
|
||||||
|
|
||||||
free( r );
|
free( r );
|
||||||
/* This function is not yet implemented */
|
/* This function is not yet implemented */
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user