diff --git a/MANIFEST b/MANIFEST index 61771390ca..06085f235a 100644 --- a/MANIFEST +++ b/MANIFEST @@ -410,7 +410,6 @@ ./perform/chunk.c ./perform/gen_report.pl ./perform/iopipe.c -./perform/mpi-perf.c ./perform/overhead.c ./perform/perf.c ./perform/perf_meta.c diff --git a/perform/Makefile.am b/perform/Makefile.am index 4b44b4335e..5d0e11d21e 100644 --- a/perform/Makefile.am +++ b/perform/Makefile.am @@ -38,7 +38,7 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # specifying --enable-build-all at configure time. # Also, some of these programs should only be built in parallel. if BUILD_PARALLEL_CONDITIONAL - PARA_BUILD_ALL=benchpar mpi-perf + PARA_BUILD_ALL=benchpar endif if BUILD_ALL_CONDITIONAL BUILD_ALL_PROGS=$(PARA_BUILD_ALL) diff --git a/perform/Makefile.in b/perform/Makefile.in index 13c4904b51..139d1eacd0 100644 --- a/perform/Makefile.in +++ b/perform/Makefile.in @@ -90,8 +90,7 @@ CONFIG_HEADER = $(top_builddir)/src/H5config.h CONFIG_CLEAN_FILES = CONFIG_CLEAN_VPATH_FILES = am__installdirs = "$(DESTDIR)$(bindir)" -@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_1 = benchpar$(EXEEXT) \ -@BUILD_PARALLEL_CONDITIONAL_TRUE@ mpi-perf$(EXEEXT) +@BUILD_PARALLEL_CONDITIONAL_TRUE@am__EXEEXT_1 = benchpar$(EXEEXT) @BUILD_ALL_CONDITIONAL_TRUE@am__EXEEXT_2 = $(am__EXEEXT_1) PROGRAMS = $(bin_PROGRAMS) benchpar_SOURCES = benchpar.c @@ -123,10 +122,6 @@ h5perf_serial_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ iopipe_SOURCES = iopipe.c iopipe_OBJECTS = iopipe.$(OBJEXT) iopipe_DEPENDENCIES = $(LIBH5TEST) $(LIBHDF5) -mpi_perf_SOURCES = mpi-perf.c -mpi_perf_OBJECTS = mpi-perf.$(OBJEXT) -mpi_perf_LDADD = $(LDADD) -mpi_perf_DEPENDENCIES = $(LIBHDF5) overhead_SOURCES = overhead.c overhead_OBJECTS = overhead.$(OBJEXT) overhead_LDADD = $(LDADD) @@ -175,10 +170,10 @@ am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) am__v_CCLD_0 = @echo " CCLD " $@; am__v_CCLD_1 = SOURCES = benchpar.c chunk.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ + $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ perf_meta.c zip_perf.c DIST_SOURCES = benchpar.c chunk.c $(h5perf_SOURCES) \ - $(h5perf_serial_SOURCES) iopipe.c mpi-perf.c overhead.c perf.c \ + $(h5perf_serial_SOURCES) iopipe.c overhead.c perf.c \ perf_meta.c zip_perf.c am__can_run_installinfo = \ case $$AM_UPDATE_INFO_DIR in \ @@ -482,7 +477,7 @@ h5perf_serial_LDFLAGS = $(LT_STATIC_EXEC) $(AM_LDFLAGS) # Some programs are not built or run by default, but can be built by hand or by # specifying --enable-build-all at configure time. # Also, some of these programs should only be built in parallel. -@BUILD_PARALLEL_CONDITIONAL_TRUE@PARA_BUILD_ALL = benchpar mpi-perf +@BUILD_PARALLEL_CONDITIONAL_TRUE@PARA_BUILD_ALL = benchpar @BUILD_ALL_CONDITIONAL_TRUE@BUILD_ALL_PROGS = $(PARA_BUILD_ALL) # Define programs that will be run in 'make check' @@ -632,9 +627,6 @@ h5perf_serial$(EXEEXT): $(h5perf_serial_OBJECTS) $(h5perf_serial_DEPENDENCIES) $ iopipe$(EXEEXT): $(iopipe_OBJECTS) $(iopipe_DEPENDENCIES) $(EXTRA_iopipe_DEPENDENCIES) @rm -f iopipe$(EXEEXT) $(AM_V_CCLD)$(LINK) $(iopipe_OBJECTS) $(iopipe_LDADD) $(LIBS) -mpi-perf$(EXEEXT): $(mpi_perf_OBJECTS) $(mpi_perf_DEPENDENCIES) $(EXTRA_mpi_perf_DEPENDENCIES) - @rm -f mpi-perf$(EXEEXT) - $(AM_V_CCLD)$(LINK) $(mpi_perf_OBJECTS) $(mpi_perf_LDADD) $(LIBS) overhead$(EXEEXT): $(overhead_OBJECTS) $(overhead_DEPENDENCIES) $(EXTRA_overhead_DEPENDENCIES) @rm -f overhead$(EXEEXT) $(AM_V_CCLD)$(LINK) $(overhead_OBJECTS) $(overhead_LDADD) $(LIBS) @@ -657,7 +649,6 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/benchpar.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/chunk.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/iopipe.Po@am__quote@ -@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/mpi-perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/overhead.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/perf_meta.Po@am__quote@ diff --git a/perform/mpi-perf.c b/perform/mpi-perf.c deleted file mode 100644 index a09d6723c4..0000000000 --- a/perform/mpi-perf.c +++ /dev/null @@ -1,373 +0,0 @@ -/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * - * Copyright by The HDF Group. * - * Copyright by the Board of Trustees of the University of Illinois. * - * All rights reserved. * - * * - * This file is part of HDF5. The full HDF5 copyright notice, including * - * terms governing use, modification, and redistribution, is contained in * - * the files COPYING and Copyright.html. COPYING can be found at the root * - * of the source code distribution tree; Copyright.html can be found at the * - * root level of an installed copy of the electronic HDF5 document set and * - * is linked from the top-level documents page. It can also be found at * - * http://hdfgroup.org/HDF5/doc/Copyright.html. If you do not have * - * access to either file, you may request a copy from help@hdfgroup.org. * - * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ - -/* - * (C) 1995-2001 Clemson University and Argonne National Laboratory. - * - * See COPYING in top-level directory. - * - * This is contributed by Robert Ross to the HDF5 software. - * and was called mpi-io-test.c - */ - -#include "hdf5.h" -#include "H5private.h" -#ifdef H5_HAVE_PARALLEL -/* mpi-perf.c - * - * This is derived from code given to me by Rajeev Thakur. Dunno where - * it originated. - * - * It's purpose is to produce aggregate bandwidth numbers for varying - * block sizes, number of processors, an number of iterations. - * - * This is strictly an mpi program - it is used to test the MPI I/O - * functionality implemented by Romio. - * - * Compiling is usually easiest with something like: - * mpicc -Wall -Wstrict-prototypes mpi-io-test.c -o mpi-io-test - * - * NOTE: This code assumes that all command line arguments make it out to all - * the processes that make up the parallel job, which isn't always the case. - * So if it doesn't work on some platform, that might be why. - */ -/* Modifications: - * Albert Cheng, Apr 30, 20001 - * Changed MPI_File_open to use MPI_COMM_WORLD (was MPI_COMM_SELF). - * Albert Cheng, May 5, 20001 - * Changed MPI_File_seek then MPI_File_write or MPI_File_read to just - * MPI_File_write_at and MPI_File_read_at. Some compiler, e.g., IBM - * mpcc_r does not support MPI_File_seek and MPI_File_read or MPI_File_write. - */ - -#include -#include -#include -#ifdef H5_HAVE_UNISTD_H -#include -#endif -#include -#include -#if defined(H5_TIME_WITH_SYS_TIME) -# include -# include -#elif defined(H5_HAVE_SYS_TIME_H) -# include -#else -# include -#endif -#include -#ifndef MPI_FILE_NULL /*MPIO may be defined in mpi.h already */ -# include -#endif - - - -/* DEFAULT VALUES FOR OPTIONS */ -int64_t opt_block = 1048576*16; -int opt_iter = 1; -int opt_stripe = -1; -int opt_correct = 0; -int amode = O_RDWR | O_CREAT; -char opt_file[256] = "/tmp/test.out\0"; -char opt_pvfstab[256] = "notset\0"; -int opt_pvfstab_set = 0; - -/* function prototypes */ -static int parse_args(int argc, char **argv); - -extern int errno; - -/* globals needed for getopt */ -extern char *optarg; - -int main(int argc, char **argv) -{ - char *buf, *tmp, *buf2, *tmp2, *check; - int i, j, mynod=0, nprocs=1, err, my_correct = 1, correct, myerrno; - double stim, etim; - double write_tim = 0; - double read_tim = 0; - double read_bw, write_bw; - double max_read_tim, max_write_tim; - double min_read_tim, min_write_tim; - double ave_read_tim, ave_write_tim; - int64_t iter_jump = 0; - int64_t seek_position = 0; - MPI_File fh; - MPI_Status status; - int nchars; - - /* startup MPI and determine the rank of this process */ - MPI_Init(&argc,&argv); - MPI_Comm_size(MPI_COMM_WORLD, &nprocs); - MPI_Comm_rank(MPI_COMM_WORLD, &mynod); - - /* parse the command line arguments */ - parse_args(argc, argv); - - if (mynod == 0) printf("# Using mpi-io calls.\n"); - - - /* kindof a weird hack- if the location of the pvfstab file was - * specified on the command line, then spit out this location into - * the appropriate environment variable: */ - -#if H5_HAVE_SETENV -/* no setenv or unsetenv */ - if (opt_pvfstab_set) { - if((setenv("PVFSTAB_FILE", opt_pvfstab, 1)) < 0){ - perror("setenv"); - goto die_jar_jar_die; - } - } -#endif - - /* this is how much of the file data is covered on each iteration of - * the test. used to help determine the seek offset on each - * iteration */ - iter_jump = nprocs * opt_block; - - /* setup a buffer of data to write */ - if (!(tmp = (char *) malloc(opt_block + 256))) { - perror("malloc"); - goto die_jar_jar_die; - } - buf = tmp + 128 - (((long)tmp) % 128); /* align buffer */ - - if (opt_correct) { - /* do the same buffer setup for verifiable data */ - if (!(tmp2 = (char *) malloc(opt_block + 256))) { - perror("malloc2"); - goto die_jar_jar_die; - } - buf2 = tmp + 128 - (((long)tmp) % 128); - } - - /* open the file for writing */ - err = MPI_File_open(MPI_COMM_WORLD, opt_file, - MPI_MODE_CREATE | MPI_MODE_RDWR, MPI_INFO_NULL, &fh); - if (err < 0) { - fprintf(stderr, "node %d, open error: %s\n", mynod, strerror(errno)); - goto die_jar_jar_die; - } - - /* now repeat the write operations the number of times - * specified on the command line */ - for (j=0; j < opt_iter; j++) { - - /* calculate the appropriate position depending on the iteration - * and rank of the current process */ - seek_position = (j*iter_jump)+(mynod*opt_block); - - if (opt_correct) /* fill in buffer for iteration */ { - for (i=mynod+j, check=buf; i