io/ompio: Add barrier to file_close and to file_set_size
This fixes a bug reported on the mailing for ompio. https://www.open-mpi.org/community/lists/users/2016/05/29333.php
Этот коммит содержится в:
родитель
c2634612d7
Коммит
9c3180160c
@ -231,6 +231,14 @@ int mca_common_ompio_file_close (mca_io_ompio_file_t *ompio_fh)
|
|||||||
int delete_flag = 0;
|
int delete_flag = 0;
|
||||||
char name[256];
|
char name[256];
|
||||||
|
|
||||||
|
ret = ompio_fh->f_comm->c_coll.coll_barrier ( ompio_fh->f_comm, ompio_fh->f_comm->c_coll.coll_barrier_module);
|
||||||
|
if ( OMPI_SUCCESS != ret ) {
|
||||||
|
/* Not sure what to do */
|
||||||
|
opal_output (1,"mca_common_ompio_file_close: error in Barrier \n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if(mca_io_ompio_coll_timing_info){
|
if(mca_io_ompio_coll_timing_info){
|
||||||
strcpy (name, "WRITE");
|
strcpy (name, "WRITE");
|
||||||
if (!mca_common_ompio_empty_print_queue(ompio_fh->f_coll_write_time)){
|
if (!mca_common_ompio_empty_print_queue(ompio_fh->f_coll_write_time)){
|
||||||
|
@ -230,18 +230,34 @@ int mca_io_ompio_file_set_size (ompi_file_t *fh,
|
|||||||
|
|
||||||
tmp = size;
|
tmp = size;
|
||||||
|
|
||||||
data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
|
ret = data->ompio_fh.f_comm->c_coll.coll_bcast (&tmp,
|
||||||
1,
|
1,
|
||||||
OMPI_OFFSET_DATATYPE,
|
OMPI_OFFSET_DATATYPE,
|
||||||
OMPIO_ROOT,
|
OMPIO_ROOT,
|
||||||
data->ompio_fh.f_comm,
|
data->ompio_fh.f_comm,
|
||||||
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
|
data->ompio_fh.f_comm->c_coll.coll_bcast_module);
|
||||||
|
if ( OMPI_SUCCESS != ret ) {
|
||||||
|
opal_output(1, ",mca_io_ompio_file_set_size: error in bcast\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if (tmp != size) {
|
if (tmp != size) {
|
||||||
return OMPI_ERROR;
|
return OMPI_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
ret = data->ompio_fh.f_fs->fs_file_set_size (&data->ompio_fh, size);
|
ret = data->ompio_fh.f_fs->fs_file_set_size (&data->ompio_fh, size);
|
||||||
|
if ( OMPI_SUCCESS != ret ) {
|
||||||
|
opal_output(1, ",mca_io_ompio_file_set_size: error in fs->set_size\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
ret = data->ompio_fh.f_comm->c_coll.coll_barrier (data->ompio_fh.f_comm,
|
||||||
|
data->ompio_fh.f_comm->c_coll.coll_barrier_module);
|
||||||
|
if ( OMPI_SUCCESS != ret ) {
|
||||||
|
opal_output(1, ",mca_io_ompio_file_set_size: error in barrier\n");
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user