Fixes for the 2gb limitation. This fixes problems both static and two-phase
algorithms. This commit was SVN r27596.
Этот коммит содержится в:
родитель
58d701fad9
Коммит
f91340f648
@ -71,7 +71,8 @@ mca_fcoll_static_file_write_all (mca_io_ompio_file_t *fh,
|
||||
int i=0,j=0,l=0, temp_index;
|
||||
int ret=OMPI_SUCCESS, cycles, local_cycles, *bytes_per_process=NULL;
|
||||
int index, *disp_index=NULL, **blocklen_per_process=NULL;
|
||||
int *iovec_count_per_process=NULL, *displs=NULL, total_bytes_written=0;
|
||||
int *iovec_count_per_process=NULL, *displs=NULL;
|
||||
size_t total_bytes_written=0;
|
||||
MPI_Aint **displs_per_process=NULL, *memory_displacements=NULL;
|
||||
MPI_Aint bytes_to_write_in_cycle=0, global_iov_count=0, global_count=0;
|
||||
|
||||
|
@ -109,7 +109,7 @@ int mca_fcoll_two_phase_calc_my_requests (mca_io_ompio_file_t *fh,
|
||||
int *count_my_req_procs_ptr,
|
||||
int **count_my_req_per_proc_ptr,
|
||||
mca_io_ompio_access_array_t **my_req_ptr,
|
||||
int **buf_indices,
|
||||
size_t **buf_indices,
|
||||
int striping_unit,
|
||||
int num_aggregators,
|
||||
int *aggregator_list);
|
||||
|
@ -53,7 +53,7 @@ static int two_phase_read_and_exch(mca_io_ompio_file_t *fh,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_start,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_end,
|
||||
Flatlist_node *flat_buf,
|
||||
int *buf_idx, int striping_unit,
|
||||
size_t *buf_idx, int striping_unit,
|
||||
int *aggregator_list);
|
||||
|
||||
static int two_phase_exchange_data(mca_io_ompio_file_t *fh,
|
||||
@ -71,7 +71,7 @@ static int two_phase_exchange_data(mca_io_ompio_file_t *fh,
|
||||
Flatlist_node *flat_buf,
|
||||
mca_io_ompio_access_array_t *others_req,
|
||||
int iter,
|
||||
int *buf_idx, MPI_Aint buftype_extent,
|
||||
size_t *buf_idx, MPI_Aint buftype_extent,
|
||||
int striping_unit, int *aggregator_list);
|
||||
|
||||
|
||||
@ -120,7 +120,8 @@ mca_fcoll_two_phase_file_read_all (mca_io_ompio_file_t *fh,
|
||||
struct iovec *decoded_iov = NULL, *temp_iov = NULL, *iov = NULL;
|
||||
size_t max_data = 0, total_bytes = 0;
|
||||
int domain_size=0, *count_my_req_per_proc=NULL, count_my_req_procs = 0;
|
||||
int count_other_req_procs, *buf_indices=NULL;
|
||||
int count_other_req_procs;
|
||||
size_t *buf_indices=NULL;
|
||||
int *aggregator_list = NULL, local_count = 0, local_size = 0;
|
||||
OMPI_MPI_OFFSET_TYPE start_offset = 0, end_offset = 0, fd_size = 0;
|
||||
OMPI_MPI_OFFSET_TYPE *start_offsets=NULL, *end_offsets=NULL;
|
||||
@ -507,7 +508,7 @@ static int two_phase_read_and_exch(mca_io_ompio_file_t *fh,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_start,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_end,
|
||||
Flatlist_node *flat_buf,
|
||||
int *buf_idx, int striping_unit,
|
||||
size_t *buf_idx, int striping_unit,
|
||||
int *aggregator_list){
|
||||
|
||||
|
||||
@ -817,7 +818,7 @@ static int two_phase_exchange_data(mca_io_ompio_file_t *fh,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_end,
|
||||
Flatlist_node *flat_buf,
|
||||
mca_io_ompio_access_array_t *others_req,
|
||||
int iter, int *buf_idx,
|
||||
int iter, size_t *buf_idx,
|
||||
MPI_Aint buftype_extent, int striping_unit,
|
||||
int *aggregator_list)
|
||||
{
|
||||
|
@ -61,7 +61,7 @@ static int two_phase_exch_and_write(mca_io_ompio_file_t *fh,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_start,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_end,
|
||||
Flatlist_node *flat_buf,
|
||||
int *buf_idx, int striping_unit,
|
||||
size_t *buf_idx, int striping_unit,
|
||||
int *aggregator_list);
|
||||
|
||||
|
||||
@ -84,7 +84,7 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
||||
mca_io_ompio_access_array_t *others_req,
|
||||
int *send_buf_idx, int *curr_to_proc,
|
||||
int *done_to_proc, int iter,
|
||||
int *buf_idx, MPI_Aint buftype_extent,
|
||||
size_t *buf_idx, MPI_Aint buftype_extent,
|
||||
int striping_unit, int *aggregator_list,
|
||||
int *hole);
|
||||
|
||||
@ -148,7 +148,8 @@ mca_fcoll_two_phase_file_write_all (mca_io_ompio_file_t *fh,
|
||||
struct iovec *decoded_iov=NULL, *temp_iov=NULL;
|
||||
size_t max_data = 0, total_bytes = 0;
|
||||
int domain_size=0, *count_my_req_per_proc=NULL, count_my_req_procs;
|
||||
int count_other_req_procs, *buf_indices, ret=OMPI_SUCCESS;
|
||||
int count_other_req_procs, ret=OMPI_SUCCESS;
|
||||
size_t *buf_indices=NULL;
|
||||
int local_count = 0, local_size=0,*aggregator_list = NULL;
|
||||
struct iovec *iov = NULL;
|
||||
|
||||
@ -560,7 +561,7 @@ static int two_phase_exch_and_write(mca_io_ompio_file_t *fh,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_start,
|
||||
OMPI_MPI_OFFSET_TYPE *fd_end,
|
||||
Flatlist_node *flat_buf,
|
||||
int *buf_idx, int striping_unit,
|
||||
size_t *buf_idx, int striping_unit,
|
||||
int *aggregator_list)
|
||||
|
||||
{
|
||||
@ -907,7 +908,7 @@ static int two_phase_exchage_data(mca_io_ompio_file_t *fh,
|
||||
mca_io_ompio_access_array_t *others_req,
|
||||
int *send_buf_idx, int *curr_to_proc,
|
||||
int *done_to_proc, int iter,
|
||||
int *buf_idx,MPI_Aint buftype_extent,
|
||||
size_t *buf_idx,MPI_Aint buftype_extent,
|
||||
int striping_unit, int *aggregator_list,
|
||||
int *hole){
|
||||
|
||||
|
@ -337,14 +337,14 @@ int mca_fcoll_two_phase_calc_my_requests (mca_io_ompio_file_t *fh,
|
||||
int *count_my_req_procs_ptr,
|
||||
int **count_my_req_per_proc_ptr,
|
||||
mca_io_ompio_access_array_t **my_req_ptr,
|
||||
int **buf_indices,
|
||||
size_t **buf_indices,
|
||||
int striping_unit,
|
||||
int num_aggregators,
|
||||
int *aggregator_list)
|
||||
{
|
||||
|
||||
int *count_my_req_per_proc, count_my_req_procs;
|
||||
int *buf_idx;
|
||||
size_t *buf_idx = NULL;
|
||||
int i, l, proc;
|
||||
OMPI_MPI_OFFSET_TYPE fd_len, rem_len, curr_idx, off;
|
||||
mca_io_ompio_access_array_t *my_req;
|
||||
@ -362,7 +362,7 @@ int mca_fcoll_two_phase_calc_my_requests (mca_io_ompio_file_t *fh,
|
||||
count_my_req_per_proc[i] = 0;
|
||||
}
|
||||
|
||||
buf_idx = (int *) malloc (fh->f_size * sizeof(int));
|
||||
buf_idx = (size_t *) malloc (fh->f_size * sizeof(size_t));
|
||||
|
||||
if ( NULL == buf_idx ){
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
@ -432,7 +432,7 @@ int mca_fcoll_two_phase_calc_my_requests (mca_io_ompio_file_t *fh,
|
||||
fd_size, fd_start, fd_end,
|
||||
striping_unit, num_aggregators,
|
||||
aggregator_list);
|
||||
if (buf_idx[proc] == -1){
|
||||
if (buf_idx[proc] == (size_t) -1){
|
||||
buf_idx[proc] = (int) curr_idx;
|
||||
}
|
||||
l = my_req[proc].count;
|
||||
@ -451,7 +451,7 @@ int mca_fcoll_two_phase_calc_my_requests (mca_io_ompio_file_t *fh,
|
||||
num_aggregators,
|
||||
aggregator_list);
|
||||
|
||||
if (buf_idx[proc] == -1){
|
||||
if (buf_idx[proc] == (size_t) -1){
|
||||
buf_idx[proc] = (int) curr_idx;
|
||||
}
|
||||
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user