Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: pmodels/mpich
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: main
Choose a base ref
...
head repository: swblaster/mpich
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: master
Choose a head ref
Can’t automatically merge. Don’t worry, you can still create the pull request.
  • 9 commits
  • 5 files changed
  • 3 contributors

Commits on Jun 13, 2018

  1. Copy the full SHA
    499cbac View commit details
  2. Revert "Pipelining for two-phase collective I/O in ROMIO adio lustre …

    …driver."
    
    This reverts commit 499cbac.
    swblaster committed Jun 13, 2018
    Copy the full SHA
    b6e924e View commit details

Commits on Jun 14, 2018

  1. Copy the full SHA
    e644387 View commit details

Commits on Jun 15, 2018

  1. Copy the full SHA
    86eeb7c View commit details
  2. The old code used to assign a separate memory space for my_req[i].len…

    … but
    
    the new code doesn't. Fix our pipelining code not to free my_req[i].len.
    swblaster committed Jun 15, 2018
    Copy the full SHA
    aa25eac View commit details

Commits on Jun 16, 2018

  1. Copy the full SHA
    b6a69c9 View commit details
  2. Copy the full SHA
    3f154cf View commit details

Commits on Jun 30, 2018

  1. 1. Remove configure option for pipelining I/O.

    2. Add a lustre hint for pipelining.
    Sunwoo Lee committed Jun 30, 2018
    Copy the full SHA
    9d5408e View commit details

Commits on Jul 9, 2018

  1. Test

    Sunwoo Lee committed Jul 9, 2018
    Copy the full SHA
    ede5692 View commit details
54 changes: 54 additions & 0 deletions src/mpi/romio/adio/ad_lustre/ad_lustre.h
Original file line number Diff line number Diff line change
@@ -55,6 +55,40 @@
#endif
#endif /* End of HAVE_AIO_LITE_H */

typedef struct {
ADIO_Offset fd_size; /* size of coalesced file domains */
ADIO_Offset AAR_st_offset; /* min offset of aggregate access region */
ADIO_Offset AAR_end_offset; /* max offset of aggregate access region */
int AAR_st_rank; /* start process rank of AAR */
int AAR_end_rank; /*end process rank of AAR */
int MAR_num_stripes; /* number of stripes in my access region */
int num_stripes_per_group; /* AAR stripes / striping_factor */
int pivot;
int rem_groups; /*number of groups in last (AAR_num_stripes % cb_nodes) */
ADIO_Offset *starts; /* [cb_nodes] start offsets of all domains */
ADIO_Offset *ends; /* [cb_nodes] end offsets of all domains */
int *num_stripes; /* [cb_nodes] number of stripes in each domains */
int *ntimes; /* [cb_nodes] number of two-phase I/O */
ADIO_Offset **offsets; /* [cb_nodes][ntimes] offset of each phase */
ADIO_Offset **sizes; /* [cb_nodes][ntimes] size of each phase, non-coalesced */
int my_agg_rank;
int pipelining; /* pipelining flag */
} ADIOI_LUSTRE_file_domain;

/* structure for storing access info of this process's request
to the file domains on all other processes, and vice-versa. used
as array of structures indexed by process number. */
typedef struct {
ADIO_Offset start_offset; /* my start offset */
ADIO_Offset end_offset; /* my end offset */
int contig_access_count;
ADIO_Offset *offset_list; /* [contig_access_count] */
ADIO_Offset *len_list; /* [contig_access_count] */
int buftype_is_contig;
int *buf_idx; /* [nprocs] 4-byte integer assuming the buffer size < 2GB */
ADIO_Offset buf_size;
} ADIOI_LUSTRE_Access;

void ADIOI_LUSTRE_Open(ADIO_File fd, int *error_code);
void ADIOI_LUSTRE_Close(ADIO_File fd, int *error_code);
void ADIOI_LUSTRE_ReadContig(ADIO_File fd, void *buf, int count,
@@ -88,8 +122,28 @@ void ADIOI_LUSTRE_Calc_my_req(ADIO_File fd, ADIO_Offset * offset_list,
int *striping_info, int nprocs,
int *count_my_req_procs_ptr,
int **count_my_req_per_proc_ptr,
ADIOI_LUSTRE_file_domain * file_domain,
ADIOI_Access ** my_req_ptr, ADIO_Offset *** buf_idx_ptr);

void ADIOI_LUSTRE_Calc_my_off_len(ADIO_File fd,
int bufcount,
MPI_Datatype datatype,
int file_ptr_type,
ADIO_Offset offset, ADIOI_LUSTRE_Access * my_access);

void ADIOI_LUSTRE_Calc_file_domains(ADIO_File fd,
int nprocs,
int myrank,
ADIOI_LUSTRE_Access * my_access,
ADIOI_LUSTRE_file_domain * file_domain);

void ADIOI_LUSTRE_Calc_others_req(ADIO_File fd,
int nprocs,
int myrank,
int *count_my_req_per_proc,
ADIOI_Access * my_req, ADIOI_Access ** others_req_ptr);

int ADIOI_LUSTRE_Calc_aggregator(ADIO_File fd, ADIO_Offset off,
ADIOI_LUSTRE_file_domain * file_domain,
ADIO_Offset * len, int *striping_info);
#endif /* AD_LUSTRE_H_INCLUDED */
Loading