17
18
int flag, stripe_val[3], str_factor = -1, str_unit=0, start_iodev=-1;
18
19
struct lov_user_md lum = { 0 };
19
20
int err, myrank, fd_sys, perm, amode, old_mask;
21
21
static char myname[] = "ADIOI_LUSTRE_SETINFO";
23
23
value = (char *) ADIOI_Malloc((MPI_MAX_INFO_VAL+1)*sizeof(char));
138
138
if (users_info != MPI_INFO_NULL) {
139
139
/* CO: IO Clients/OST,
140
140
* to keep the load balancing between clients and OSTs */
141
ADIOI_Info_get(users_info, "romio_lustre_co_ratio", MPI_MAX_INFO_VAL, value,
143
if (flag && (int_val = atoi(value)) > 0) {
145
MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
146
if (tmp_val != int_val) {
147
MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
148
"romio_lustre_co_ratio",
153
ADIOI_Info_set(fd->info, "romio_lustre_co_ratio", value);
154
fd->hints->fs_hints.lustre.co_ratio = atoi(value);
141
ADIOI_Info_check_and_install_int(fd, users_info, "romio_lustre_co_ratio",
142
&(fd->hints->fs_hints.lustre.co_ratio), myname, error_code );
156
144
/* coll_threshold:
157
145
* if the req size is bigger than this, collective IO may not be performed.
159
ADIOI_Info_get(users_info, "romio_lustre_coll_threshold", MPI_MAX_INFO_VAL, value,
161
if (flag && (int_val = atoi(value)) > 0) {
163
MPI_Bcast(&tmp_val, 1, MPI_INT, 0, fd->comm);
164
if (tmp_val != int_val) {
165
MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
166
"romio_lustre_coll_threshold",
171
ADIOI_Info_set(fd->info, "romio_lustre_coll_threshold", value);
172
fd->hints->fs_hints.lustre.coll_threshold = atoi(value);
147
ADIOI_Info_check_and_install_int(fd, users_info, "romio_lustre_coll_threshold",
148
&(fd->hints->fs_hints.lustre.coll_threshold), myname, error_code );
174
150
/* ds_in_coll: disable data sieving in collective IO */
175
ADIOI_Info_get(users_info, "romio_lustre_ds_in_coll", MPI_MAX_INFO_VAL,
177
if (flag && (!strcmp(value, "disable") ||
178
!strcmp(value, "DISABLE"))) {
179
tmp_val = int_val = 2;
180
MPI_Bcast(&tmp_val, 2, MPI_INT, 0, fd->comm);
181
if (tmp_val != int_val) {
182
MPIO_ERR_CREATE_CODE_INFO_NOT_SAME(myname,
183
"romio_lustre_ds_in_coll",
188
ADIOI_Info_set(fd->info, "romio_lustre_ds_in_coll", "disable");
189
fd->hints->fs_hints.lustre.ds_in_coll = ADIOI_HINT_DISABLE;
151
ADIOI_Info_check_and_install_enabled(fd, users_info, "romio_lustre_ds_in_coll",
152
&(fd->hints->fs_hints.lustre.ds_in_coll), myname, error_code );
192
155
/* set the values for collective I/O and data sieving parameters */
193
156
ADIOI_GEN_SetInfo(fd, users_info, error_code);