And now the optimization step.
This commit was SVN r12521.
Этот коммит содержится в:
родитель
1d80f685b5
Коммит
4cb7910a8b
@ -426,12 +426,12 @@ int32_t ompi_convertor_set_position_nocheck( ompi_convertor_t* convertor,
|
||||
OMPI_CONVERTOR_PREPARE( convertor, datatype, count, pUserBuf ); \
|
||||
\
|
||||
if( 0 == bdt_mask ) { \
|
||||
convertor->flags |= CONVERTOR_HOMOGENEOUS; \
|
||||
convertor->remote_size = convertor->local_size; \
|
||||
convertor->use_desc = &(datatype->opt_desc); \
|
||||
} else { \
|
||||
ompi_convertor_master_t* master; \
|
||||
int i; \
|
||||
convertor->flags ^= CONVERTOR_HOMOGENEOUS; \
|
||||
bdt_mask = datatype->bdt_used; \
|
||||
master = convertor->master; \
|
||||
convertor->remote_size = 0; \
|
||||
@ -450,9 +450,9 @@ int32_t ompi_convertor_set_position_nocheck( ompi_convertor_t* convertor,
|
||||
if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_NO_GAPS)) \
|
||||
== DT_FLAG_NO_GAPS) && \
|
||||
(convertor->flags & (CONVERTOR_SEND | CONVERTOR_HOMOGENEOUS)) ) { \
|
||||
convertor->flags |= CONVERTOR_NO_OP; \
|
||||
return OMPI_SUCCESS; \
|
||||
} \
|
||||
convertor->flags ^= CONVERTOR_NO_OP; \
|
||||
{ \
|
||||
uint32_t required_stack_length = datatype->btypes[DT_LOOP] + 1; \
|
||||
\
|
||||
|
@ -202,6 +202,7 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
|
||||
/* Grab the datatype part of the flags */ \
|
||||
convertor->flags &= CONVERTOR_TYPE_MASK; \
|
||||
convertor->flags |= (CONVERTOR_DATATYPE_MASK & datatype->flags); \
|
||||
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
|
||||
convertor->pDesc = (ompi_datatype_t*)datatype; \
|
||||
convertor->bConverted = 0; \
|
||||
\
|
||||
@ -212,7 +213,7 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
|
||||
* the convertor->local_size but we can test the 2 components. \
|
||||
*/ \
|
||||
if( 0 == (convertor->count | datatype->size) ) { \
|
||||
convertor->flags |= (CONVERTOR_COMPLETED | CONVERTOR_NO_OP); \
|
||||
convertor->flags |= CONVERTOR_COMPLETED; \
|
||||
convertor->remote_size = 0; \
|
||||
return OMPI_SUCCESS; \
|
||||
} \
|
||||
@ -221,15 +222,12 @@ ompi_convertor_get_unpacked_size( const ompi_convertor_t* pConv,
|
||||
convertor->remote_size = convertor->local_size; \
|
||||
convertor->use_desc = &(datatype->opt_desc); \
|
||||
if( (convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_NO_GAPS)) == DT_FLAG_NO_GAPS ) { \
|
||||
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
|
||||
return OMPI_SUCCESS; \
|
||||
} \
|
||||
if( ((convertor->flags & (CONVERTOR_WITH_CHECKSUM | DT_FLAG_CONTIGUOUS)) \
|
||||
== DT_FLAG_CONTIGUOUS) && (1 == count) ) { \
|
||||
convertor->flags |= (CONVERTOR_NO_OP | CONVERTOR_HOMOGENEOUS); \
|
||||
return OMPI_SUCCESS; \
|
||||
} \
|
||||
convertor->flags |= CONVERTOR_HOMOGENEOUS; \
|
||||
} \
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user