Fixes for the 2gb limitation. This fixes problems both static and two-phase
algorithms.
1.1 --- a/ompi/mca/fcoll/static/fcoll_static_file_write_all.c Mon Nov 12 03:03:48 2012 +0000
1.2 +++ b/ompi/mca/fcoll/static/fcoll_static_file_write_all.c Mon Nov 12 17:39:58 2012 +0000
1.3 @@ -71,7 +71,8 @@
1.4 int i=0,j=0,l=0, temp_index;
1.5 int ret=OMPI_SUCCESS, cycles, local_cycles, *bytes_per_process=NULL;
1.6 int index, *disp_index=NULL, **blocklen_per_process=NULL;
1.7 - int *iovec_count_per_process=NULL, *displs=NULL, total_bytes_written=0;
1.8 + int *iovec_count_per_process=NULL, *displs=NULL;
1.9 + size_t total_bytes_written=0;
1.10 MPI_Aint **displs_per_process=NULL, *memory_displacements=NULL;
1.11 MPI_Aint bytes_to_write_in_cycle=0, global_iov_count=0, global_count=0;
1.12
2.1 --- a/ompi/mca/fcoll/two_phase/fcoll_two_phase.h Mon Nov 12 03:03:48 2012 +0000
2.2 +++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase.h Mon Nov 12 17:39:58 2012 +0000
2.3 @@ -109,7 +109,7 @@
2.4 int *count_my_req_procs_ptr,
2.5 int **count_my_req_per_proc_ptr,
2.6 mca_io_ompio_access_array_t **my_req_ptr,
2.7 - int **buf_indices,
2.8 + size_t **buf_indices,
2.9 int striping_unit,
2.10 int num_aggregators,
2.11 int *aggregator_list);
3.1 --- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c Mon Nov 12 03:03:48 2012 +0000
3.2 +++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c Mon Nov 12 17:39:58 2012 +0000
3.3 @@ -53,7 +53,7 @@
3.4 OMPI_MPI_OFFSET_TYPE *fd_start,
3.5 OMPI_MPI_OFFSET_TYPE *fd_end,
3.6 Flatlist_node *flat_buf,
3.7 - int *buf_idx, int striping_unit,
3.8 + size_t *buf_idx, int striping_unit,
3.9 int *aggregator_list);
3.10
3.11 static int two_phase_exchange_data(mca_io_ompio_file_t *fh,
3.12 @@ -71,7 +71,7 @@
3.13 Flatlist_node *flat_buf,
3.14 mca_io_ompio_access_array_t *others_req,
3.15 int iter,
3.16 - int *buf_idx, MPI_Aint buftype_extent,
3.17 + size_t *buf_idx, MPI_Aint buftype_extent,
3.18 int striping_unit, int *aggregator_list);
3.19
3.20
3.21 @@ -120,7 +120,8 @@
3.22 struct iovec *decoded_iov = NULL, *temp_iov = NULL, *iov = NULL;
3.23 size_t max_data = 0, total_bytes = 0;
3.24 int domain_size=0, *count_my_req_per_proc=NULL, count_my_req_procs = 0;
3.25 - int count_other_req_procs, *buf_indices=NULL;
3.26 + int count_other_req_procs;
3.27 + size_t *buf_indices=NULL;
3.28 int *aggregator_list = NULL, local_count = 0, local_size = 0;
3.29 OMPI_MPI_OFFSET_TYPE start_offset = 0, end_offset = 0, fd_size = 0;
3.30 OMPI_MPI_OFFSET_TYPE *start_offsets=NULL, *end_offsets=NULL;
3.31 @@ -507,7 +508,7 @@
3.32 OMPI_MPI_OFFSET_TYPE *fd_start,
3.33 OMPI_MPI_OFFSET_TYPE *fd_end,
3.34 Flatlist_node *flat_buf,
3.35 - int *buf_idx, int striping_unit,
3.36 + size_t *buf_idx, int striping_unit,
3.37 int *aggregator_list){
3.38
3.39
3.40 @@ -817,7 +818,7 @@
3.41 OMPI_MPI_OFFSET_TYPE *fd_end,
3.42 Flatlist_node *flat_buf,
3.43 mca_io_ompio_access_array_t *others_req,
3.44 - int iter, int *buf_idx,
3.45 + int iter, size_t *buf_idx,
3.46 MPI_Aint buftype_extent, int striping_unit,
3.47 int *aggregator_list)
3.48 {
4.1 --- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c Mon Nov 12 03:03:48 2012 +0000
4.2 +++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c Mon Nov 12 17:39:58 2012 +0000
4.3 @@ -61,7 +61,7 @@
4.4 OMPI_MPI_OFFSET_TYPE *fd_start,
4.5 OMPI_MPI_OFFSET_TYPE *fd_end,
4.6 Flatlist_node *flat_buf,
4.7 - int *buf_idx, int striping_unit,
4.8 + size_t *buf_idx, int striping_unit,
4.9 int *aggregator_list);
4.10
4.11
4.12 @@ -84,7 +84,7 @@
4.13 mca_io_ompio_access_array_t *others_req,
4.14 int *send_buf_idx, int *curr_to_proc,
4.15 int *done_to_proc, int iter,
4.16 - int *buf_idx, MPI_Aint buftype_extent,
4.17 + size_t *buf_idx, MPI_Aint buftype_extent,
4.18 int striping_unit, int *aggregator_list,
4.19 int *hole);
4.20
4.21 @@ -148,7 +148,8 @@
4.22 struct iovec *decoded_iov=NULL, *temp_iov=NULL;
4.23 size_t max_data = 0, total_bytes = 0;
4.24 int domain_size=0, *count_my_req_per_proc=NULL, count_my_req_procs;
4.25 - int count_other_req_procs, *buf_indices, ret=OMPI_SUCCESS;
4.26 + int count_other_req_procs, ret=OMPI_SUCCESS;
4.27 + size_t *buf_indices=NULL;
4.28 int local_count = 0, local_size=0,*aggregator_list = NULL;
4.29 struct iovec *iov = NULL;
4.30
4.31 @@ -560,7 +561,7 @@
4.32 OMPI_MPI_OFFSET_TYPE *fd_start,
4.33 OMPI_MPI_OFFSET_TYPE *fd_end,
4.34 Flatlist_node *flat_buf,
4.35 - int *buf_idx, int striping_unit,
4.36 + size_t *buf_idx, int striping_unit,
4.37 int *aggregator_list)
4.38
4.39 {
4.40 @@ -907,7 +908,7 @@
4.41 mca_io_ompio_access_array_t *others_req,
4.42 int *send_buf_idx, int *curr_to_proc,
4.43 int *done_to_proc, int iter,
4.44 - int *buf_idx,MPI_Aint buftype_extent,
4.45 + size_t *buf_idx,MPI_Aint buftype_extent,
4.46 int striping_unit, int *aggregator_list,
4.47 int *hole){
4.48
5.1 --- a/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c Mon Nov 12 03:03:48 2012 +0000
5.2 +++ b/ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c Mon Nov 12 17:39:58 2012 +0000
5.3 @@ -337,14 +337,14 @@
5.4 int *count_my_req_procs_ptr,
5.5 int **count_my_req_per_proc_ptr,
5.6 mca_io_ompio_access_array_t **my_req_ptr,
5.7 - int **buf_indices,
5.8 + size_t **buf_indices,
5.9 int striping_unit,
5.10 int num_aggregators,
5.11 int *aggregator_list)
5.12 {
5.13
5.14 int *count_my_req_per_proc, count_my_req_procs;
5.15 - int *buf_idx;
5.16 + size_t *buf_idx = NULL;
5.17 int i, l, proc;
5.18 OMPI_MPI_OFFSET_TYPE fd_len, rem_len, curr_idx, off;
5.19 mca_io_ompio_access_array_t *my_req;
5.20 @@ -362,7 +362,7 @@
5.21 count_my_req_per_proc[i] = 0;
5.22 }
5.23
5.24 - buf_idx = (int *) malloc (fh->f_size * sizeof(int));
5.25 + buf_idx = (size_t *) malloc (fh->f_size * sizeof(size_t));
5.26
5.27 if ( NULL == buf_idx ){
5.28 return OMPI_ERR_OUT_OF_RESOURCE;
5.29 @@ -432,7 +432,7 @@
5.30 fd_size, fd_start, fd_end,
5.31 striping_unit, num_aggregators,
5.32 aggregator_list);
5.33 - if (buf_idx[proc] == -1){
5.34 + if (buf_idx[proc] == (size_t) -1){
5.35 buf_idx[proc] = (int) curr_idx;
5.36 }
5.37 l = my_req[proc].count;
5.38 @@ -451,7 +451,7 @@
5.39 num_aggregators,
5.40 aggregator_list);
5.41
5.42 - if (buf_idx[proc] == -1){
5.43 + if (buf_idx[proc] == (size_t) -1){
5.44 buf_idx[proc] = (int) curr_idx;
5.45 }
5.46