Коммит
c16e639b2f
@ -244,40 +244,33 @@ mca_fcoll_static_file_read_all (mca_io_ompio_file_t *fh,
|
|||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
bytes_remaining = (int *) malloc (fh->f_procs_per_group * sizeof(int));
|
bytes_remaining = (int *) calloc (fh->f_procs_per_group, sizeof(int));
|
||||||
if (NULL == bytes_remaining){
|
if (NULL == bytes_remaining){
|
||||||
opal_output (1, "OUT OF MEMORY\n");
|
opal_output (1, "OUT OF MEMORY\n");
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
current_index = (int *) malloc (fh->f_procs_per_group * sizeof(int));
|
current_index = (int *) calloc (fh->f_procs_per_group, sizeof(int));
|
||||||
if (NULL == current_index){
|
if (NULL == current_index){
|
||||||
opal_output (1, "OUT OF MEMORY\n");
|
opal_output (1, "OUT OF MEMORY\n");
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
blocklen_per_process = (int **)malloc (fh->f_procs_per_group * sizeof (int*));
|
blocklen_per_process = (int **)calloc (fh->f_procs_per_group, sizeof (int*));
|
||||||
if (NULL == blocklen_per_process) {
|
if (NULL == blocklen_per_process) {
|
||||||
opal_output (1, "OUT OF MEMORY\n");
|
opal_output (1, "OUT OF MEMORY\n");
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
displs_per_process = (MPI_Aint **)malloc (fh->f_procs_per_group * sizeof (MPI_Aint*));
|
displs_per_process = (MPI_Aint **)calloc (fh->f_procs_per_group, sizeof (MPI_Aint*));
|
||||||
if (NULL == displs_per_process) {
|
if (NULL == displs_per_process) {
|
||||||
opal_output (1, "OUT OF MEMORY\n");
|
opal_output (1, "OUT OF MEMORY\n");
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0;i<fh->f_procs_per_group;i++){
|
|
||||||
current_index[i] = 0;
|
|
||||||
bytes_remaining[i] = 0;
|
|
||||||
blocklen_per_process[i] = NULL;
|
|
||||||
displs_per_process[i] = NULL;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -646,8 +639,8 @@ mca_fcoll_static_file_read_all (mca_io_ompio_file_t *fh,
|
|||||||
global_iov_count,
|
global_iov_count,
|
||||||
sorted);
|
sorted);
|
||||||
if (current_index[i] == -1){
|
if (current_index[i] == -1){
|
||||||
bytes_per_process = 0; /* no more entries left
|
bytes_per_process[i] = 0; /* no more entries left
|
||||||
to service this request*/
|
to service this request*/
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -960,9 +953,8 @@ exit:
|
|||||||
if (my_aggregator == fh->f_rank) {
|
if (my_aggregator == fh->f_rank) {
|
||||||
|
|
||||||
for(l=0;l<fh->f_procs_per_group;l++){
|
for(l=0;l<fh->f_procs_per_group;l++){
|
||||||
if (NULL != blocklen_per_process[l]){
|
if (blocklen_per_process) {
|
||||||
free(blocklen_per_process[l]);
|
free(blocklen_per_process[l]);
|
||||||
blocklen_per_process[l] = NULL;
|
|
||||||
}
|
}
|
||||||
if (NULL != displs_per_process[l]){
|
if (NULL != displs_per_process[l]){
|
||||||
free(displs_per_process[l]);
|
free(displs_per_process[l]);
|
||||||
|
@ -277,15 +277,9 @@ mca_fcoll_two_phase_file_read_all (mca_io_ompio_file_t *fh,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
flat_buf->count = local_size;
|
flat_buf->count = local_size;
|
||||||
i=0;j=0;
|
for (j = 0 ; j < local_size ; ++j) {
|
||||||
while(j < local_size){
|
flat_buf->indices[j] = (OMPI_MPI_OFFSET_TYPE)(intptr_t)decoded_iov[j].iov_base;
|
||||||
flat_buf->indices[j] = (OMPI_MPI_OFFSET_TYPE)(intptr_t)decoded_iov[i].iov_base;
|
flat_buf->blocklens[j] = decoded_iov[j].iov_len;
|
||||||
flat_buf->blocklens[j] = decoded_iov[i].iov_len;
|
|
||||||
|
|
||||||
if(i < (int)iov_count)
|
|
||||||
i+=1;
|
|
||||||
|
|
||||||
j+=1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
@ -13,7 +13,7 @@
|
|||||||
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
|
* Copyright (c) 2008-2014 University of Houston. All rights reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
* Copyright (c) 2015 Los Alamos National Security, LLC. All rights
|
* Copyright (c) 2015-2016 Los Alamos National Security, LLC. All rights
|
||||||
* reserved.
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -194,6 +194,10 @@ mca_fcoll_two_phase_file_write_all (mca_io_ompio_file_t *fh,
|
|||||||
if ( 0 < iov_count ) {
|
if ( 0 < iov_count ) {
|
||||||
decoded_iov = (struct iovec *)malloc
|
decoded_iov = (struct iovec *)malloc
|
||||||
(iov_count * sizeof(struct iovec));
|
(iov_count * sizeof(struct iovec));
|
||||||
|
if (NULL == decoded_iov) {
|
||||||
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
goto exit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for (ti = 0; ti < iov_count; ti ++){
|
for (ti = 0; ti < iov_count; ti ++){
|
||||||
decoded_iov[ti].iov_base = (IOVBASE_TYPE *)(
|
decoded_iov[ti].iov_base = (IOVBASE_TYPE *)(
|
||||||
@ -320,19 +324,15 @@ mca_fcoll_two_phase_file_write_all (mca_io_ompio_file_t *fh,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
flat_buf->count = local_size;
|
flat_buf->count = local_size;
|
||||||
i=0;j=0;
|
for (j = 0 ; j < local_size ; ++j) {
|
||||||
while(j < local_size){
|
|
||||||
if ( 0 < max_data ) {
|
if ( 0 < max_data ) {
|
||||||
flat_buf->indices[j] = (OMPI_MPI_OFFSET_TYPE)(intptr_t)decoded_iov[i].iov_base;
|
flat_buf->indices[j] = (OMPI_MPI_OFFSET_TYPE)(intptr_t)decoded_iov[j].iov_base;
|
||||||
flat_buf->blocklens[j] = decoded_iov[i].iov_len;
|
flat_buf->blocklens[j] = decoded_iov[j].iov_len;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
flat_buf->indices[j] = 0;
|
flat_buf->indices[j] = 0;
|
||||||
flat_buf->blocklens[j] = 0;
|
flat_buf->blocklens[j] = 0;
|
||||||
}
|
}
|
||||||
if(i < (int)iov_count)
|
|
||||||
i+=1;
|
|
||||||
j+=1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DEBUG_ON
|
#if DEBUG_ON
|
||||||
@ -967,14 +967,14 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
|
|
||||||
|
|
||||||
recv_types = (ompi_datatype_t **)
|
recv_types = (ompi_datatype_t **)
|
||||||
malloc (( nprocs_recv + 1 ) * sizeof(ompi_datatype_t *));
|
calloc (( nprocs_recv + 1 ), sizeof(ompi_datatype_t *));
|
||||||
|
|
||||||
if ( NULL == recv_types ){
|
if ( NULL == recv_types ){
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp_len = (int *) malloc(fh->f_size*sizeof(int));
|
tmp_len = (int *) calloc(fh->f_size, sizeof(int));
|
||||||
|
|
||||||
if ( NULL == tmp_len ) {
|
if ( NULL == tmp_len ) {
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
@ -1005,7 +1005,6 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
|
|
||||||
if ( NULL == srt_off ){
|
if ( NULL == srt_off ){
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
free(tmp_len);
|
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1013,7 +1012,6 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
|
|
||||||
if ( NULL == srt_len ) {
|
if ( NULL == srt_len ) {
|
||||||
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
free(tmp_len);
|
|
||||||
free(srt_off);
|
free(srt_off);
|
||||||
goto exit;
|
goto exit;
|
||||||
}
|
}
|
||||||
@ -1029,6 +1027,7 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
}
|
}
|
||||||
|
|
||||||
free(tmp_len);
|
free(tmp_len);
|
||||||
|
tmp_len = NULL;
|
||||||
|
|
||||||
*hole = 0;
|
*hole = 0;
|
||||||
if (off != srt_off[0]){
|
if (off != srt_off[0]){
|
||||||
@ -1059,7 +1058,8 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
(sizeof(mca_io_ompio_io_array_t));
|
(sizeof(mca_io_ompio_io_array_t));
|
||||||
if (NULL == fh->f_io_array) {
|
if (NULL == fh->f_io_array) {
|
||||||
opal_output(1, "OUT OF MEMORY\n");
|
opal_output(1, "OUT OF MEMORY\n");
|
||||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
ret = OMPI_ERR_OUT_OF_RESOURCE;
|
||||||
|
goto exit;
|
||||||
}
|
}
|
||||||
fh->f_io_array[0].offset =(IOVBASE_TYPE *)(intptr_t) off;
|
fh->f_io_array[0].offset =(IOVBASE_TYPE *)(intptr_t) off;
|
||||||
fh->f_num_of_io_entries = 1;
|
fh->f_num_of_io_entries = 1;
|
||||||
@ -1182,7 +1182,13 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
for (i=0; i<nprocs_recv; i++) ompi_datatype_destroy(recv_types+i);
|
if (recv_types) {
|
||||||
|
for (i=0; i<nprocs_recv; i++) {
|
||||||
|
if (recv_types[i]) {
|
||||||
|
ompi_datatype_destroy(recv_types+i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
free (recv_types);
|
free (recv_types);
|
||||||
|
|
||||||
free (requests);
|
free (requests);
|
||||||
@ -1193,6 +1199,7 @@ exit:
|
|||||||
|
|
||||||
free (send_buf);
|
free (send_buf);
|
||||||
}
|
}
|
||||||
|
free (tmp_len);
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
@ -211,10 +211,6 @@ int mca_pml_ob1_send(const void *buf,
|
|||||||
return OMPI_SUCCESS;
|
return OMPI_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OPAL_UNLIKELY(NULL == endpoint)) {
|
|
||||||
return OMPI_ERR_UNREACH;
|
|
||||||
}
|
|
||||||
|
|
||||||
seqn = (uint16_t) OPAL_THREAD_ADD32(&ob1_proc->send_sequence, 1);
|
seqn = (uint16_t) OPAL_THREAD_ADD32(&ob1_proc->send_sequence, 1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -12,6 +12,8 @@
|
|||||||
* Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2010-2012 Cisco Systems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2015 Research Organization for Information Science
|
* Copyright (c) 2015 Research Organization for Information Science
|
||||||
* and Technology (RIST). All rights reserved.
|
* and Technology (RIST). All rights reserved.
|
||||||
|
* Copyright (c) 2016 Los Alamos National Security, LLC. All rights
|
||||||
|
* reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
* Additional copyrights may follow
|
* Additional copyrights may follow
|
||||||
@ -150,4 +152,5 @@ void ompi_comm_spawn_multiple_f(MPI_Fint *count, char *array_commands,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(c_array_argv);
|
free(c_array_argv);
|
||||||
|
free(c_info);
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user