change the default value of the grouping option. Also add new grouping option which skips the refinement step in the aggregator selection.
Этот коммит содержится в:
родитель
e8e117503d
Коммит
66c1ea5fcb
@ -1030,13 +1030,29 @@ int ompi_io_ompio_set_aggregator_props (struct mca_io_ompio_file_t *fh,
|
||||
fh->f_flags |= OMPIO_AGGREGATOR_IS_SET;
|
||||
|
||||
if (-1 == num_aggregators) {
|
||||
mca_io_ompio_create_groups(fh,bytes_per_proc);
|
||||
if ( SIMPLE == mca_io_ompio_grouping_option ||
|
||||
NO_REFINEMENT == mca_io_ompio_grouping_option ) {
|
||||
fh->f_aggregator_index = 0;
|
||||
fh->f_final_num_aggrs = fh->f_init_num_aggrs;
|
||||
fh->f_procs_per_group = fh->f_init_procs_per_group;
|
||||
|
||||
fh->f_procs_in_group = (int*)malloc (fh->f_procs_per_group * sizeof(int));
|
||||
if (NULL == fh->f_procs_in_group) {
|
||||
opal_output (1, "OUT OF MEMORY\n");
|
||||
return OMPI_ERR_OUT_OF_RESOURCE;
|
||||
}
|
||||
|
||||
for (j=0 ; j<fh->f_procs_per_group ; j++) {
|
||||
fh->f_procs_in_group[j] = fh->f_init_procs_in_group[j];
|
||||
}
|
||||
}
|
||||
else {
|
||||
mca_io_ompio_create_groups(fh,bytes_per_proc);
|
||||
}
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
|
||||
//Forced number of aggregators
|
||||
else
|
||||
{
|
||||
/* calculate the offset at which each group of processes will start */
|
||||
procs_per_group = ceil ((float)fh->f_size/num_aggregators);
|
||||
|
||||
@ -1062,7 +1078,6 @@ int ompi_io_ompio_set_aggregator_props (struct mca_io_ompio_file_t *fh,
|
||||
fh->f_final_num_aggrs = num_aggregators;
|
||||
|
||||
return OMPI_SUCCESS;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -101,12 +101,17 @@ OMPI_DECLSPEC extern int mca_io_ompio_coll_timing_info;
|
||||
#define OMPIO_MERGE 1
|
||||
#define OMPIO_SPLIT 2
|
||||
#define OMPIO_RETAIN 3
|
||||
|
||||
#define DATA_VOLUME 1
|
||||
#define UNIFORM_DISTRIBUTION 2
|
||||
#define OMPIO_UNIFORM_DIST_THRESHOLD 0.5
|
||||
#define CONTIGUITY 3
|
||||
#define OMPIO_CONTG_THRESHOLD 1048576
|
||||
#define OPTIMIZE_GROUPING 4
|
||||
#define SIMPLE 5
|
||||
#define NO_REFINEMENT 6
|
||||
|
||||
|
||||
#define OMPIO_UNIFORM_DIST_THRESHOLD 0.5
|
||||
#define OMPIO_CONTG_THRESHOLD 1048576
|
||||
#define OMPIO_PROCS_PER_GROUP_TAG 0
|
||||
#define OMPIO_PROCS_IN_GROUP_TAG 1
|
||||
#define OMPIO_MERGE_THRESHOLD 0.5
|
||||
|
@ -38,7 +38,7 @@ int mca_io_ompio_record_offset_info = 0;
|
||||
int mca_io_ompio_coll_timing_info = 0;
|
||||
int mca_io_ompio_sharedfp_lazy_open = 1;
|
||||
|
||||
int mca_io_ompio_grouping_option=0;
|
||||
int mca_io_ompio_grouping_option=4;
|
||||
|
||||
/*
|
||||
* Private functions
|
||||
@ -202,10 +202,13 @@ static int register_component(void)
|
||||
MCA_BASE_VAR_SCOPE_READONLY,
|
||||
&mca_io_ompio_sharedfp_lazy_open);
|
||||
|
||||
mca_io_ompio_grouping_option = 0;
|
||||
mca_io_ompio_grouping_option = 4;
|
||||
(void) mca_base_component_var_register(&mca_io_ompio_component.io_version,
|
||||
"grouping_option",
|
||||
"Option for grouping of processes in the aggregator selection",
|
||||
"Option for grouping of processes in the aggregator selection "
|
||||
"1: Data volume based grouping 2: create uniform groups 3: maximimze "
|
||||
"contiguity 4: hybrid optimization (default) 5: simple/no optimization "
|
||||
"6: skip refinement step",
|
||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
||||
OPAL_INFO_LVL_9,
|
||||
MCA_BASE_VAR_SCOPE_READONLY,
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user