Skip to content

Commit 9757f85

Browse files
authored
Merge pull request pmodels#7364 from roblatham00/remove-old-platforms
romio: remove a bunch of obsolete platform specific stuff
2 parents 34c62df + 683beec commit 9757f85

18 files changed

+1
-1835
lines changed

src/mpi/romio/adio/Makefile.mk

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,6 @@ noinst_HEADERS += \
2424

2525
include $(top_srcdir)/adio/ad_daos/Makefile.mk
2626
include $(top_srcdir)/adio/ad_gpfs/Makefile.mk
27-
include $(top_srcdir)/adio/ad_gpfs/bg/Makefile.mk
28-
include $(top_srcdir)/adio/ad_gpfs/pe/Makefile.mk
2927
include $(top_srcdir)/adio/ad_lustre/Makefile.mk
3028
include $(top_srcdir)/adio/ad_nfs/Makefile.mk
3129
## NTFS builds are handled entirely by the separate Windows build system

src/mpi/romio/adio/ad_gpfs/ad_gpfs.c

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ struct ADIOI_Fns_struct ADIO_GPFS_operations = {
2727
ADIOI_GEN_WriteStrided, /* WriteStrided */
2828
ADIOI_GPFS_Close, /* Close */
2929
#ifdef ROMIO_HAVE_WORKING_AIO
30-
#warning Consider BG support for NFS before enabling this.
3130
ADIOI_GEN_IreadContig, /* IreadContig */
3231
ADIOI_GEN_IwriteContig, /* IwriteContig */
3332
#else
@@ -44,13 +43,7 @@ struct ADIOI_Fns_struct ADIO_GPFS_operations = {
4443
ADIOI_GEN_Resize, /* Resize */
4544
ADIOI_GEN_Delete, /* Delete */
4645
ADIOI_GEN_Feature, /* Features */
47-
#ifdef BGQPLATFORM
48-
"GPFS+BGQ: IBM GPFS for Blue Gene",
49-
#elif PEPLATFORM
50-
"GPFS+PE: IBM GPFS for PE",
51-
#else
5246
"GPFS: IBM GPFS",
53-
#endif
5447
ADIOI_GEN_IreadStridedColl, /* IreadStridedColl */
5548
ADIOI_GEN_IwriteStridedColl, /* IwriteStridedColl */
5649
#if defined(F_SETLKW64)

src/mpi/romio/adio/ad_gpfs/ad_gpfs_aggrs.c

Lines changed: 0 additions & 98 deletions
Original file line numberDiff line numberDiff line change
@@ -289,101 +289,6 @@ void ADIOI_GPFS_Calc_file_domains(ADIO_File fd,
289289
ADIO_Offset naggs_large = n_gpfs_blk - naggs * (n_gpfs_blk / naggs);
290290
ADIO_Offset naggs_small = naggs - naggs_large;
291291

292-
#ifdef BGQPLATFORM
293-
if (gpfsmpio_balancecontig == 1) {
294-
/* File domains blocks are assigned to aggregators in a breadth-first
295-
* fashion relative to the ions - additionally, file domains on the
296-
* aggregators sharing the same bridgeset and ion have contiguous
297-
* offsets. */
298-
299-
// initialize everything to small
300-
for (i = 0; i < naggs; i++)
301-
fd_size[i] = nb_cn_small * blksize;
302-
303-
// go thru and distribute the large across the bridges
304-
305-
/* bridelistoffset: agg rank list offsets using the bridgelist - each
306-
* entry is created by adding up the indexes for the aggs from all
307-
* previous bridges */
308-
int *bridgelistoffset = ADIOI_Malloc(fd->hints->fs_hints.bg.numbridges * sizeof(int));
309-
/* tmpbridgelistnum: copy of the bridgelistnum whose entries can be
310-
* decremented to keep track of bridge assignments during the actual
311-
* large block assignments to the agg rank list*/
312-
int *tmpbridgelistnum = ADIOI_Malloc(fd->hints->fs_hints.bg.numbridges * sizeof(int));
313-
314-
int j;
315-
for (j = 0; j < fd->hints->fs_hints.bg.numbridges; j++) {
316-
int k, bridgerankoffset = 0;
317-
for (k = 0; k < j; k++) {
318-
bridgerankoffset += fd->hints->fs_hints.bg.bridgelistnum[k];
319-
}
320-
bridgelistoffset[j] = bridgerankoffset;
321-
}
322-
323-
for (j = 0; j < fd->hints->fs_hints.bg.numbridges; j++)
324-
tmpbridgelistnum[j] = fd->hints->fs_hints.bg.bridgelistnum[j];
325-
int bridgeiter = 0;
326-
327-
/* distribute the large blocks across the aggs going breadth-first
328-
* across the bridgelist - this distributes the fd sizes across the
329-
* ions, so later in the file domain assignment when it iterates thru
330-
* the ranklist the offsets will be contiguous within the bridge and
331-
* ion as well */
332-
for (j = 0; j < naggs_large; j++) {
333-
int foundbridge = 0;
334-
int numbridgelistpasses = 0;
335-
while (!foundbridge) {
336-
if (tmpbridgelistnum[bridgeiter] > 0) {
337-
foundbridge = 1;
338-
/*
339-
* printf("bridgeiter is %d tmpbridgelistnum[bridgeiter] is %d bridgelistoffset[bridgeiter] is %d\n",bridgeiter,tmpbridgelistnum[bridgeiter],bridgelistoffset[bridgeiter]);
340-
* printf("naggs is %d bridgeiter is %d bridgelistoffset[bridgeiter] is %d tmpbridgelistnum[bridgeiter] is %d\n",naggs, bridgeiter,bridgelistoffset[bridgeiter],tmpbridgelistnum[bridgeiter]);
341-
* printf("naggs is %d bridgeiter is %d setting fd_size[%d]\n",naggs, bridgeiter,bridgelistoffset[bridgeiter]+(fd->hints->bridgelistnum[bridgeiter]-tmpbridgelistnum[bridgeiter]));
342-
*/
343-
int currentbridgelistnum =
344-
(fd->hints->fs_hints.bg.bridgelistnum[bridgeiter] -
345-
tmpbridgelistnum[bridgeiter]);
346-
int currentfdsizeindex = bridgelistoffset[bridgeiter] + currentbridgelistnum;
347-
fd_size[currentfdsizeindex] = (nb_cn_small + 1) * blksize;
348-
tmpbridgelistnum[bridgeiter]--;
349-
}
350-
if (bridgeiter == (fd->hints->fs_hints.bg.numbridges - 1)) {
351-
/* guard against infinite loop - should only ever make 1 pass
352-
* thru bridgelist */
353-
ADIOI_Assert(numbridgelistpasses == 0);
354-
numbridgelistpasses++;
355-
bridgeiter = 0;
356-
} else
357-
bridgeiter++;
358-
}
359-
}
360-
ADIOI_Free(tmpbridgelistnum);
361-
ADIOI_Free(bridgelistoffset);
362-
363-
} else {
364-
/* BG/L- and BG/P-style distribution of file domains: simple allocation of
365-
* file domins to each aggregator */
366-
for (i = 0; i < naggs; i++) {
367-
if (i < naggs_large) {
368-
fd_size[i] = (nb_cn_small + 1) * blksize;
369-
} else {
370-
fd_size[i] = nb_cn_small * blksize;
371-
}
372-
}
373-
}
374-
#ifdef balancecontigtrace
375-
int myrank;
376-
MPI_Comm_rank(fd->comm, &myrank);
377-
if (myrank == 0) {
378-
fprintf(stderr, "naggs_small is %d nb_cn_small is %d\n", naggs_small, nb_cn_small);
379-
for (i = 0; i < naggs; i++) {
380-
fprintf(stderr, "fd_size[%d] set to %d agg rank is %d\n", i, fd_size[i],
381-
fd->hints->ranklist[i]);
382-
}
383-
}
384-
#endif
385-
386-
#else // not BGQ platform
387292
for (i = 0; i < naggs; i++) {
388293
if (i < naggs_large) {
389294
fd_size[i] = (nb_cn_small + 1) * blksize;
@@ -392,9 +297,6 @@ void ADIOI_GPFS_Calc_file_domains(ADIO_File fd,
392297
}
393298
}
394299

395-
#endif
396-
397-
398300
#if AGG_DEBUG
399301
DBG_FPRINTF(stderr, "%s(%d): "
400302
"gpfs_ub %llu, "

src/mpi/romio/adio/ad_gpfs/ad_gpfs_hints.c

Lines changed: 0 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818
#define ADIOI_GPFS_IND_RD_BUFFER_SIZE_DFLT "4194304"
1919
#define ADIOI_GPFS_IND_WR_BUFFER_SIZE_DFLT "4194304"
2020

21-
#ifdef BGQPLATFORM
22-
#define ADIOI_BG_NAGG_IN_PSET_HINT_NAME "bg_nodes_pset"
23-
#endif
24-
2521
/** \page mpiio_vars MPIIO Configuration
2622
*
2723
* GPFS MPIIO configuration and performance tuning. Used by ad_gpfs ADIO.
@@ -44,13 +40,6 @@
4440
* - key = ind_wr_buffer_size value = 4194304
4541
*/
4642

47-
#ifdef BGQPLATFORM
48-
/* Compute the aggregator-related parameters that are required in 2-phase collective IO of ADIO. */
49-
extern int ADIOI_BG_gen_agg_ranklist(ADIO_File fd, int n_proxy_per_pset);
50-
#elif PEPLATFORM
51-
extern int ADIOI_PE_gen_agg_ranklist(ADIO_File fd);
52-
#endif
53-
5443
void ADIOI_GPFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
5544
{
5645
/* if fd->info is null, create a new info object.
@@ -65,8 +54,6 @@ void ADIOI_GPFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
6554
static char myname[] = "ADIOI_GPFS_SETINFO";
6655
size_t len;
6756

68-
int did_anything = 0;
69-
7057
if (fd->info == MPI_INFO_NULL)
7158
MPI_Info_create(&(fd->info));
7259
info = fd->info;
@@ -107,11 +94,7 @@ void ADIOI_GPFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
10794
MPI_Comm_size(fd->comm, &nprocs);
10895
snprintf(value, MPI_MAX_INFO_VAL + 1, "%d", nprocs);
10996
ADIOI_Info_set(info, "cb_nodes", value);
110-
#ifdef BGQPLATFORM
111-
fd->hints->cb_nodes = -1;
112-
#else
11397
fd->hints->cb_nodes = nprocs;
114-
#endif
11598

11699
/* hint indicating that no indep. I/O will be performed on this file */
117100
ADIOI_Info_set(info, "romio_no_indep_rw", "false");
@@ -223,16 +206,6 @@ void ADIOI_GPFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
223206
ADIOI_Info_check_and_install_int(fd, users_info, "striping_unit",
224207
&(fd->hints->striping_unit), myname, error_code);
225208

226-
#ifdef BGQPLATFORM
227-
memset(value, 0, MPI_MAX_INFO_VAL + 1);
228-
ADIOI_Info_get(users_info, ADIOI_BG_NAGG_IN_PSET_HINT_NAME, MPI_MAX_INFO_VAL, value, &flag);
229-
if (flag && ((intval = atoi(value)) > 0)) {
230-
231-
did_anything = 1;
232-
ADIOI_Info_set(info, ADIOI_BG_NAGG_IN_PSET_HINT_NAME, value);
233-
fd->hints->cb_nodes = intval;
234-
}
235-
#endif
236209
}
237210

238211
/* note that we track i/o aggregators two ways:
@@ -256,15 +229,6 @@ void ADIOI_GPFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code)
256229
ADIOI_Strncpy(fd->hints->cb_config_list, ADIOI_CB_CONFIG_LIST_DFLT, len);
257230
}
258231

259-
/* special CB aggregator assignment */
260-
if (did_anything) {
261-
#ifdef BGQPLATFORM
262-
ADIOI_BG_gen_agg_ranklist(fd, fd->hints->cb_nodes);
263-
#elif PEPLATFORM
264-
ADIOI_PE_gen_agg_ranklist(fd);
265-
#endif
266-
}
267-
268232
/* deferred_open won't be set by callers, but if the user doesn't
269233
* explicitly disable collecitve buffering (two-phase) and does hint that
270234
* io w/o independent io is going on, we'll set this internal hint as a

src/mpi/romio/adio/ad_gpfs/ad_gpfs_tuning.c

Lines changed: 1 addition & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ double gpfsmpio_prof_cr[GPFSMPIO_CIO_LAST + 1];
121121

122122
void ad_gpfs_get_env_vars(void)
123123
{
124-
char *x, *dummy;
124+
char *x;
125125

126126
gpfsmpio_comm = 0;
127127
x = getenv("GPFSMPIO_COMM");
@@ -135,20 +135,6 @@ void ad_gpfs_get_env_vars(void)
135135
x = getenv("GPFSMPIO_TUNEBLOCKING");
136136
if (x)
137137
gpfsmpio_tuneblocking = atoi(x);
138-
bglocklessmpio_f_type = PVFS2_SUPER_MAGIC;
139-
x = getenv("BGLOCKLESSMPIO_F_TYPE");
140-
if (x)
141-
bglocklessmpio_f_type = strtol(x, &dummy, 0);
142-
DBG_FPRINTF(stderr, "BGLOCKLESSMPIO_F_TYPE=%ld/%#lX\n",
143-
bglocklessmpio_f_type, bglocklessmpio_f_type);
144-
/* note: this value will be 'sanity checked' in ADIOI_BG_persInfo_init(),
145-
* when we know a bit more about what "largest possible value" and
146-
* "smallest possible value" should be */
147-
gpfsmpio_bg_nagg_pset = ADIOI_BG_NAGG_PSET_DFLT;
148-
x = getenv("GPFSMPIO_NAGG_PSET");
149-
if (x)
150-
gpfsmpio_bg_nagg_pset = atoi(x);
151-
152138
gpfsmpio_p2pcontig = 0;
153139
x = getenv("GPFSMPIO_P2PCONTIG");
154140
if (x)
@@ -163,12 +149,6 @@ void ad_gpfs_get_env_vars(void)
163149
x = getenv("GPFSMPIO_DEVNULLIO");
164150
if (x)
165151
gpfsmpio_devnullio = atoi(x);
166-
167-
gpfsmpio_bridgeringagg = 0;
168-
x = getenv("GPFSMPIO_BRIDGERINGAGG");
169-
if (x)
170-
gpfsmpio_bridgeringagg = atoi(x);
171-
172152
}
173153

174154
/* report timing breakdown for MPI I/O collective call */

src/mpi/romio/adio/ad_gpfs/ad_gpfs_tuning.h

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -64,26 +64,10 @@ extern int gpfsmpio_timing;
6464
extern int gpfsmpio_timing_cw_level;
6565
extern int gpfsmpio_comm;
6666
extern int gpfsmpio_tuneblocking;
67-
extern long bglocklessmpio_f_type;
6867
extern int gpfsmpio_pthreadio;
6968
extern int gpfsmpio_p2pcontig;
7069
extern int gpfsmpio_balancecontig;
7170
extern int gpfsmpio_devnullio;
72-
extern int gpfsmpio_bridgeringagg;
73-
74-
/* Default is, well, kind of complicated. Blue Gene /L and /P had "psets": one
75-
* i/o node and all compute nodes wired to it. On Blue Gene /Q that
76-
* relationship is a lot more fluid. There are still I/O nodes, and compute
77-
* nodes are assigned to an i/o node, but there are two routes to the i/o node,
78-
* via compute nodes designated as "bridge nodes". In this code, what we used
79-
* to call a "pset" is actually "compute nodes associated with and including a
80-
* bridge node". So, "nAgg" is roughly "number of aggregators per bridge", but
81-
* look closely at ADIOI_BG_persInfo_init() for the details */
82-
83-
#define ADIOI_BG_NAGG_PSET_DFLT 16
84-
85-
extern int gpfsmpio_bg_nagg_pset;
86-
8771

8872
/* set internal variables for tuning environment variables */
8973
void ad_gpfs_get_env_vars(void);

src/mpi/romio/adio/ad_gpfs/ad_gpfs_wrcoll.c

Lines changed: 0 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,6 @@
1313
#include "ad_gpfs.h"
1414
#include "ad_gpfs_aggrs.h"
1515

16-
#ifdef BGQPLATFORM
17-
#include "bg/ad_bg_pset.h"
18-
#endif
19-
2016
#ifdef AGGREGATION_PROFILE
2117
#include "mpe.h"
2218
#endif
@@ -522,53 +518,6 @@ static void gpfs_wr_access_end(int fd, ADIO_Offset offset, ADIO_Offset length)
522518
ADIOI_Assert(rc == 0);
523519
}
524520

525-
#ifdef BGQPLATFORM
526-
/* my_start, my_end: this processes file domain. coudd be -1,-1 for "no i/o"
527-
* fd_start, fd_end: arrays of length fd->hints->cb_nodes specifying all file domains */
528-
static int gpfs_find_access_for_ion(ADIO_File fd,
529-
ADIO_Offset my_start, ADIO_Offset my_end,
530-
ADIO_Offset * fd_start, ADIO_Offset * fd_end,
531-
ADIO_Offset * start, ADIO_Offset * end)
532-
{
533-
int my_ionode = BGQ_IO_node_id();
534-
int *rank_to_ionode;
535-
int i, nprocs, rank;
536-
ADIO_Offset group_start = LLONG_MAX, group_end = 0;
537-
538-
MPI_Comm_size(fd->comm, &nprocs);
539-
MPI_Comm_rank(fd->comm, &rank);
540-
541-
rank_to_ionode = ADIOI_Calloc(nprocs, sizeof(int));
542-
MPI_Allgather(&my_ionode, 1, MPI_INT, rank_to_ionode, 1, MPI_INT, fd->comm);
543-
544-
/* rank_to_ionode now contains a mapping from MPI rank to IO node */
545-
/* fd->hints->ranklist[] contains a list of MPI ranks that are aggregators */
546-
/* fd_start[] and fd_end[] contain a list of file domains. */
547-
548-
/* what we really want to do is take all the file domains associated
549-
* with a given i/o node and find the begin/end of that range.
550-
*
551-
* Because gpfs_fcntl hints are expected to be released, we'll pass this
552-
* start/end back to the caller, who will both declare and free this range
553-
*/
554-
if (my_start == -1 || my_end == -1) {
555-
ADIOI_Free(rank_to_ionode);
556-
return 0; /* no work to do */
557-
}
558-
559-
for (i = 0; i < fd->hints->cb_nodes; i++) {
560-
if (my_ionode == rank_to_ionode[fd->hints->ranklist[i]]) {
561-
group_start = MPL_MIN(fd_start[i], group_start);
562-
group_end = MPL_MAX(fd_end[i], group_end);
563-
}
564-
}
565-
*start = group_start;
566-
*end = group_end;
567-
ADIOI_Free(rank_to_ionode);
568-
return 1;
569-
}
570-
#endif // BGQPLATFORM
571-
572521

573522
/* If successful, error_code is set to MPI_SUCCESS. Otherwise an error
574523
* code is created and returned in error_code.
@@ -661,19 +610,6 @@ static void ADIOI_Exch_and_write(ADIO_File fd, const void *buf, MPI_Datatype
661610
}
662611

663612
ADIO_Offset st_loc_ion = 0, end_loc_ion = 0, needs_gpfs_access_cleanup = 0;
664-
#ifdef BGQPLATFORM
665-
if (ntimes > 0) { /* only set the gpfs hint if we have io - ie this rank is
666-
* an aggregator -- otherwise will fail for deferred open */
667-
668-
if (getenv("ROMIO_GPFS_DECLARE_ION_ACCESS") != NULL) {
669-
if (gpfs_find_access_for_ion(fd, st_loc, end_loc, fd_start, fd_end,
670-
&st_loc_ion, &end_loc_ion)) {
671-
gpfs_wr_access_start(fd->fd_sys, st_loc_ion, end_loc_ion - st_loc_ion);
672-
needs_gpfs_access_cleanup = 1;
673-
}
674-
}
675-
}
676-
#endif
677613

678614
MPI_Allreduce(&ntimes, &max_ntimes, 1, MPI_INT, MPI_MAX, fd->comm);
679615

src/mpi/romio/adio/ad_gpfs/bg/Makefile.mk

Lines changed: 0 additions & 16 deletions
This file was deleted.

0 commit comments

Comments
 (0)