From a6cfe0c574ab8da4fb1fe39a99f4d153ecbd4a19 Mon Sep 17 00:00:00 2001 From: Jeff Squyres Date: Mon, 7 Jul 2008 22:08:26 +0000 Subject: [PATCH] Remove LANL-specific Panasas patches. This is step 1 in upgrading the ROMIO in Open MPI (the new version of ROMIO will make this patch defunct, and David Daniel has confirmed that no one at LANL is using this functionality, anyway). Refs trac:1370. This commit was SVN r18819. The following Trac tickets were found above: Ticket 1370 --> https://svn.open-mpi.org/trac/ompi/ticket/1370 --- .../romio/adio/ad_panfs/ad_panfs_hints.c | 17 ---- .../mca/io/romio/romio/adio/common/ad_hints.c | 30 +------ .../romio/romio/adio/common/ad_write_coll.c | 84 ++----------------- ompi/mca/io/romio/src/io_romio_component.c | 5 -- 4 files changed, 8 insertions(+), 128 deletions(-) diff --git a/ompi/mca/io/romio/romio/adio/ad_panfs/ad_panfs_hints.c b/ompi/mca/io/romio/romio/adio/ad_panfs/ad_panfs_hints.c index d1f320e97d..06b177b8d3 100644 --- a/ompi/mca/io/romio/romio/adio/ad_panfs/ad_panfs_hints.c +++ b/ompi/mca/io/romio/romio/adio/ad_panfs/ad_panfs_hints.c @@ -23,15 +23,10 @@ void ADIOI_PANFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) unsigned long int layout_total_num_comps = 0; pan_fs_client_layout_visit_t layout_visit_policy = PAN_FS_CLIENT_LAYOUT_VISIT__ROUND_ROBIN; int gen_error_code; - int ompi_parallel_opts = 0; *error_code = MPI_SUCCESS; if (fd->info == MPI_INFO_NULL) { - mca_base_param_lookup_int(mca_base_param_find("io", "romio", - "enable_parallel_optimizations"), - &ompi_parallel_opts); - /* This must be part of the open call. can set striping parameters * if necessary. */ @@ -53,12 +48,6 @@ void ADIOI_PANFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) MPI_Abort(MPI_COMM_WORLD, 1); } MPI_Info_set(fd->info, "panfs_concurrent_write", value); - } else if (ompi_parallel_opts != 0) { - /* ------------------------------------------------------------------------ */ - /* OMPI: User hints supplied, but not panfs_concurrent_write: */ - /* OMPI: Make panfs_concurrent_write == 1 the default */ - /* ------------------------------------------------------------------------ */ - MPI_Info_set(fd->info, "panfs_concurrent_write", "1"); } MPI_Info_get(users_info, "panfs_layout_type", MPI_MAX_INFO_VAL, @@ -141,12 +130,6 @@ void ADIOI_PANFS_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) ADIOI_Free(value); - } else if (ompi_parallel_opts) { - /* ------------------------------------------------------------------------ */ - /* OMPI: No user hints supplied. */ - /* OMPI: Make panfs_concurrent_write == 1 the default */ - /* ------------------------------------------------------------------------ */ - MPI_Info_set(fd->info, "panfs_concurrent_write", "1"); } } diff --git a/ompi/mca/io/romio/romio/adio/common/ad_hints.c b/ompi/mca/io/romio/romio/adio/common/ad_hints.c index 45e26bf216..0f6093072f 100644 --- a/ompi/mca/io/romio/romio/adio/common/ad_hints.c +++ b/ompi/mca/io/romio/romio/adio/common/ad_hints.c @@ -5,9 +5,6 @@ * See COPYRIGHT notice in top-level directory. */ -#include "ompi_config.h" -#include "opal/mca/base/mca_base_param.h" - #include "adio.h" #include "adio_extern.h" @@ -23,11 +20,6 @@ void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) char *value; int flag, intval, tmp_val, nprocs=0, nprocs_is_valid = 0, len; static char myname[] = "ADIOI_GEN_SETINFO"; - int ompi_parallel_opts = 0; - - mca_base_param_lookup_int(mca_base_param_find("io", "romio", - "enable_parallel_optimizations"), - &ompi_parallel_opts); if (fd->info == MPI_INFO_NULL) MPI_Info_create(&(fd->info)); info = fd->info; @@ -45,10 +37,6 @@ void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) * previously initialized */ if (!fd->hints->initialized) { - if (ompi_parallel_opts != 0) { - MPI_Info_set(info, "ompi_enable_parallel_optimizations", "true"); - } - /* buffer size for collective I/O */ MPI_Info_set(info, "cb_buffer_size", ADIOI_CB_BUFFER_SIZE_DFLT); fd->hints->cb_buffer_size = atoi(ADIOI_CB_BUFFER_SIZE_DFLT); @@ -58,14 +46,8 @@ void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) */ MPI_Info_set(info, "romio_cb_read", "automatic"); fd->hints->cb_read = ADIOI_HINT_AUTO; - - if (ompi_parallel_opts != 0) { - MPI_Info_set(info, "romio_cb_write", "enable"); - fd->hints->cb_write = ADIOI_HINT_ENABLE; - } else { - MPI_Info_set(info, "romio_cb_write", "automatic"); - fd->hints->cb_write = ADIOI_HINT_AUTO; - } + MPI_Info_set(info, "romio_cb_write", "automatic"); + fd->hints->cb_write = ADIOI_HINT_AUTO; fd->hints->cb_config_list = NULL; @@ -294,13 +276,7 @@ void ADIOI_GEN_SetInfo(ADIO_File fd, MPI_Info users_info, int *error_code) MPI_Info_set(info, "cb_nodes", value); fd->hints->cb_nodes = intval; } - - } else { - /* OMPI: allow run-time override of cb_nodes during collective calls */ - if (ompi_parallel_opts != 0) { - MPI_Info_set(info, "ompi_cb_nodes_runtime_override", "true"); - } - } + } MPI_Info_get(users_info, "ind_wr_buffer_size", MPI_MAX_INFO_VAL, value, &flag); diff --git a/ompi/mca/io/romio/romio/adio/common/ad_write_coll.c b/ompi/mca/io/romio/romio/adio/common/ad_write_coll.c index 907f1c617b..304adce79c 100644 --- a/ompi/mca/io/romio/romio/adio/common/ad_write_coll.c +++ b/ompi/mca/io/romio/romio/adio/common/ad_write_coll.c @@ -11,8 +11,6 @@ #include "mpe.h" #endif -#include "limits.h" - /* prototypes of functions used for collective writes only. */ static void ADIOI_Exch_and_write(ADIO_File fd, void *buf, MPI_Datatype datatype, int nprocs, int myrank, @@ -78,17 +76,8 @@ void ADIOI_GEN_WriteStridedColl(ADIO_File fd, void *buf, int count, ADIO_Offset *offset_list = NULL, *st_offsets = NULL, *fd_start = NULL, *fd_end = NULL, *end_offsets = NULL; int *buf_idx = NULL, *len_list = NULL; - char value[MPI_MAX_INFO_VAL]; - int info_flag, ompi_parallel_opts = 0; - unsigned long long min_pe_request = ULONG_MAX; - unsigned long long max_pe_request = 0; - unsigned long long min_rd_request = ULONG_MAX; - unsigned long long max_rd_request = 0; int old_error, tmp_error; - MPI_Info_get(fd->info, "ompi_enable_parallel_optimizations", MPI_MAX_INFO_VAL, value, - &info_flag); - if (info_flag) ompi_parallel_opts = 1; #ifdef PROFILE MPE_Log_event(13, 0, "start computation"); @@ -118,77 +107,14 @@ void ADIOI_GEN_WriteStridedColl(ADIO_File fd, void *buf, int count, /* each process communicates its start and end offsets to other processes. The result is an array each of start and end offsets stored in order of process rank. */ - + st_offsets = (ADIO_Offset *) ADIOI_Malloc(nprocs*sizeof(ADIO_Offset)); end_offsets = (ADIO_Offset *) ADIOI_Malloc(nprocs*sizeof(ADIO_Offset)); - if (ompi_parallel_opts) { - /* OMPI: reduce the collectives calls from 2 to 1, to improve scaling */ - ADIO_Offset *stend_offsets, min_rd_st_offset, max_rd_end_offset, total_rd_size; - ADIO_Offset my_offsets[2]; - int nprocs_for_creq; - - stend_offsets = (ADIO_Offset *) ADIOI_Malloc(2*nprocs*sizeof(ADIO_Offset)); - my_offsets[0] = start_offset; - my_offsets[1] = end_offset; - - MPI_Allgather(my_offsets, 2, ADIO_OFFSET, stend_offsets, 2, ADIO_OFFSET, fd->comm); - min_rd_st_offset = stend_offsets[0]; - max_rd_end_offset = stend_offsets[1]; - for (i=0; iinfo, "ompi_cb_nodes_runtime_override", MPI_MAX_INFO_VAL, value, - &info_flag); - if (info_flag) { - /* ------------------------------------------------------------------ */ - /* OMPI: swh@lanl.gov (Steve Hodson): */ - /* If user has not specified cb_nodes then calculate it as follows: */ - /* 1)nprocs_for_coll depends initially on the collective request size.*/ - /* For larger requests the denominator is directly proportional to */ - /* the number of times the collective buffer is reused per request. */ - /* 2)nprocs_for_coll limited to 1/4 the number of processes */ - /* 3)nprocs_for_coll is at least to 1/32 the number of processes */ - /* 4)nprocs_for_coll limited to range 1-32. Need at least 1, */ - /* but don't exceed expected number of disks in use at a time */ - /* 5)nprocs_for_coll even workaround */ - /* 6)nprocs_for_coll at least 2 for more than 15 processes, */ - /* regardless of how small collective request is. */ - /* Caveat: */ - /* The preceeding recipe was arrived at empirically for the */ - /* Panasas file system on Flash. Applicability to other file systems */ - /* needs to be demonstrated. */ - /* Caution: Care must be taken below to make sure that nprocs_for_coll*/ - /* NEVER exceeds the default aggregator configuration list build once */ - /* in open: ADIOI_cb_config_list_parse. Since nprocs_for_coll is */ - /* usually less that this number, only a subset of the previously */ - /* allocated aggregators will be used. */ - /* ------------------------------------------------------------------ */ - total_rd_size = max_rd_end_offset - min_rd_st_offset + 1; - nprocs_for_creq = (int)(total_rd_size / ( 8 * 1024 * 1024 )); - nprocs_for_coll = ADIOI_MIN(nprocs_for_creq, nprocs/ 4); - nprocs_for_coll = ADIOI_MAX(nprocs_for_coll, nprocs/32); - nprocs_for_coll = ADIOI_MAX(nprocs_for_coll, 1); - nprocs_for_coll = ADIOI_MIN(nprocs_for_coll, 32); - if (nprocs_for_coll > 1 && nprocs_for_coll%2 ) nprocs_for_coll--; - if ( nprocs > 15 ) nprocs_for_coll = ADIOI_MAX(nprocs_for_coll, 2 ); - } - } else { - MPI_Allgather(&start_offset, 1, ADIO_OFFSET, st_offsets, 1, - ADIO_OFFSET, fd->comm); - MPI_Allgather(&end_offset, 1, ADIO_OFFSET, end_offsets, 1, - ADIO_OFFSET, fd->comm); - } + MPI_Allgather(&start_offset, 1, ADIO_OFFSET, st_offsets, 1, + ADIO_OFFSET, fd->comm); + MPI_Allgather(&end_offset, 1, ADIO_OFFSET, end_offsets, 1, + ADIO_OFFSET, fd->comm); /* are the accesses of different processes interleaved? */ for (i=1; i