fix a couple of bugs. Recursive doubling seems to be working.
This commit was SVN r17777.
Этот коммит содержится в:
родитель
eb1dfaf4d5
Коммит
c230b65543
@ -359,7 +359,6 @@ int mca_coll_sm2_allreduce_intra_recursive_doubling(void *sbuf, void *rbuf,
|
|||||||
extra_ctl_pointer;
|
extra_ctl_pointer;
|
||||||
mca_coll_sm2_module_t *sm_module;
|
mca_coll_sm2_module_t *sm_module;
|
||||||
|
|
||||||
|
|
||||||
sm_module=(mca_coll_sm2_module_t *) module;
|
sm_module=(mca_coll_sm2_module_t *) module;
|
||||||
|
|
||||||
/* get size of data needed - same layout as user data, so that
|
/* get size of data needed - same layout as user data, so that
|
||||||
@ -454,8 +453,7 @@ int mca_coll_sm2_allreduce_intra_recursive_doubling(void *sbuf, void *rbuf,
|
|||||||
ctl_size;
|
ctl_size;
|
||||||
|
|
||||||
/* wait until remote data is read */
|
/* wait until remote data is read */
|
||||||
while(!
|
while( extra_ctl_pointer->flag < tag ) {
|
||||||
( extra_ctl_pointer->flag == tag ) ) {
|
|
||||||
opal_progress();
|
opal_progress();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -519,12 +517,9 @@ int mca_coll_sm2_allreduce_intra_recursive_doubling(void *sbuf, void *rbuf,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* reduce data into my write buffer */
|
/* reduce data into my write buffer */
|
||||||
rc=ompi_ddt_copy_content_same_ddt(dtype, count_this_stripe,
|
/* apply collective operation */
|
||||||
(char *)my_write_pointer,
|
ompi_op_reduce(op,(void *)partner_read_pointer,
|
||||||
(char *)partner_read_pointer);
|
(void *)my_write_pointer, count_this_stripe,dtype);
|
||||||
if( 0 != rc ) {
|
|
||||||
return OMPI_ERROR;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* signal that I am done reading my peer's data */
|
/* signal that I am done reading my peer's data */
|
||||||
tag++;
|
tag++;
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user