ooops, need to handle case where extents are not same as type sizes
This commit was SVN r15423.
Этот коммит содержится в:
родитель
1b66a52c50
Коммит
c9ad5d1f24
@ -45,10 +45,22 @@ static int copy_##TYPENAME( ompi_convertor_t *pConvertor, uint32_t count,
|
||||
char* to, size_t to_len, ptrdiff_t to_extent, \
|
||||
ptrdiff_t *advance) \
|
||||
{ \
|
||||
size_t remote_TYPE_size = sizeof(TYPE) * (COUNT); /* TODO */ \
|
||||
size_t local_TYPE_size = (COUNT) * sizeof(TYPE); \
|
||||
ompi_osc_base_convertor_t *osc_convertor = \
|
||||
(ompi_osc_base_convertor_t*) pConvertor; \
|
||||
\
|
||||
if( (from_extent == (ptrdiff_t)local_TYPE_size) && \
|
||||
(to_extent == (ptrdiff_t)remote_TYPE_size) ) { \
|
||||
ompi_op_reduce(osc_convertor->op, from, to, count, osc_convertor->datatype); \
|
||||
} else { \
|
||||
uint32_t i; \
|
||||
for( i = 0; i < count; i++ ) { \
|
||||
ompi_op_reduce(osc_convertor->op, from, to, 1, osc_convertor->datatype); \
|
||||
to += to_extent; \
|
||||
from += from_extent; \
|
||||
} \
|
||||
} \
|
||||
*advance = count * from_extent; \
|
||||
return count; \
|
||||
}
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user