Fixes for the 2gb limitation. This fixes problems both static and two-phase
authorvvenkatesan
Mon Nov 12 17:39:58 2012 +0000 (6 months ago)
changeset 20994603004f2c318
parent 20993 655a4ce19df6
child 20995 42c4f6ed5175
Fixes for the 2gb limitation. This fixes problems both static and two-phase
algorithms.
ompi/mca/fcoll/static/fcoll_static_file_write_all.c
ompi/mca/fcoll/two_phase/fcoll_two_phase.h
ompi/mca/fcoll/two_phase/fcoll_two_phase_file_read_all.c
ompi/mca/fcoll/two_phase/fcoll_two_phase_file_write_all.c
ompi/mca/fcoll/two_phase/fcoll_two_phase_support_fns.c
     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