diff options
author | Paul Harten <pharten@ncsa.uiuc.edu> | 1998-04-23 23:11:06 (GMT) |
---|---|---|
committer | Paul Harten <pharten@ncsa.uiuc.edu> | 1998-04-23 23:11:06 (GMT) |
commit | 9e886e03e544dd1e747ed2ac247d9f266620179c (patch) | |
tree | aa36c11fc14b5c52c98bf75d30f346fdf3b8d5be /testpar | |
parent | 12545e32a138dee811ef73b779da52696d76393e (diff) | |
download | hdf5-9e886e03e544dd1e747ed2ac247d9f266620179c.zip hdf5-9e886e03e544dd1e747ed2ac247d9f266620179c.tar.gz hdf5-9e886e03e544dd1e747ed2ac247d9f266620179c.tar.bz2 |
[svn-r366] Purpose:
New feature
Solution:
Parallel HDF5 support on Intel TFLOPS machine using PFS file system.
Platform tested:
Intel TFLOPS (ASCI Red)
Diffstat (limited to 'testpar')
-rw-r--r-- | testpar/Makefile.ascired | 109 | ||||
-rw-r--r-- | testpar/testphdf5.c | 9 |
2 files changed, 117 insertions, 1 deletions
diff --git a/testpar/Makefile.ascired b/testpar/Makefile.ascired new file mode 100644 index 0000000..b76f49e --- /dev/null +++ b/testpar/Makefile.ascired @@ -0,0 +1,109 @@ + +# Things that Make needs +.SUFFIXES: +.SUFFIXES: .c .o + +# Programs +SHELL=/bin/sh + +MPICH=/usr/community/mpi-io/romio/mpich_1.1.0 +ROMIO=/usr/community/mpi-io/romio/current + +# MPI include directories and libs +MPI_INC=-I$(MPICH)/include +MPI_LIBS=$(MPICH)/lib/tflops/ptls/libmpi.a +MPIO_INC=-I$(ROMIO)/include +MPIO_LIBS=$(ROMIO)/lib/tflops/libmpio.a + +RUN=yod -sz 8 +RUNSEQ=yod -sz 1 +LIBS = -lnoop_stubs + +CC=cicc +# 1429 -- long long non-standard +CFLAGS=-g +CPPFLAGS=-I. -I../src $(MPI_INC) $(MPIO_INC) +RM=rm -f + +# temporary test files that can be cleaned away +MOSTLYCLEAN=/pfs/multi/tmp_1/your_own/Eg1.h5f /pfs/multi/tmp_1/your_own/Eg2.h5f go + +# The default is to build the library and programs. +all: testphdf5 shdf5 + + +# These are our main targets. They should be listed in the order to be +# executed, generally most specific tests to least specific tests. +PROGS=testphdf5 shdf5 +TESTS=$(PROGS) + +# Source and object files for programs... The PROG_SRC list contains all the +# source files and is used for things like dependencies, archiving, etc. The +# other source lists are for the individual tests, the files of which may +# overlap with other tests. +PROG_SRC=testphdf5.c shdf5.c +PROG_OBJ=$(PROG_SRC:.c=.o) + +TESTPHDF5_SRC=testphdf5.c +TESTPHDF5_OBJ=$(TESTPHDF5_SRC:.c=.o) + +# Private header files (not to be installed)... +PRIVATE_HDR=testhdf5.h + +# How to build the programs... +testphdf5: $(TESTPHDF5_OBJ) ../src/libhdf5.a + $(CC) $(CFLAGS) -o $@ $(TESTPHDF5_OBJ) ../src/libhdf5.a $(MPIO_LIBS) $(MPI_LIBS) $(LIBS) + +shdf5: testphdf5.c ../src/libhdf5.a + cp testphdf5.c shdf5.c + $(CC) -UHAVE_PARALLEL $(CFLAGS) $(CPPFLAGS) -o $@ $@.c ../src/libhdf5.a $(MPIO_LIBS) $(MPI_LIBS) $(LIBS) + + +#------------------------------------------------------------- -*- makefile -*- +# The following section of this makefile comes from the +# `./config/conclude' file which was generated with config.status +# from `./config/conclude.in'. +#------------------------------------------------------------------------------ + + +progs: $(PROGS) + +# Runs each test in order, passing $(TEST_FLAGS) to the program. +test: $(PROGS) + $(RUN) testphdf5 + $(RUNSEQ) shdf5 + +# Removes temporary files without removing the final target files. That is, +# remove things like object files but not libraries or executables. +# +mostlyclean: + $(RM) $(LIB_OBJ) $(PROG_OBJ) $(MOSTLYCLEAN) + +# Like `mostlyclean' except it also removes the final targets: things like +# libraries and executables. This target doesn't remove any file that +# is part of the HDF5 distribution. +# +clean: mostlyclean + $(RM) $(LIB) $(PROGS) $(CLEAN) + +# Like `clean' except it also removes files that were created by running +# configure. If you've unpacked the source and built HDF5 without creating +# any other files, then `make distclean' will leave only the files that were +# in the distribution. +# +distclean: clean + $(RM) .depend TAGS *~ core *.bak *.old *.new $(DISTCLEAN) + @if test -f Makefile.in; then \ + (set -x; $(RM) Makefile); \ + fi + +# Like `distclean' except it deletes all files that can be regenerated from +# the makefile, including those generated from autoheader and autoconf. +# +maintainer-clean: distclean + +# Implicit rules +.c.o: + $(CC) $(CFLAGS) $(CPPFLAGS) -c $< + + diff --git a/testpar/testphdf5.c b/testpar/testphdf5.c index 6ffeac2..d81827e 100644 --- a/testpar/testphdf5.c +++ b/testpar/testphdf5.c @@ -25,7 +25,7 @@ /* Define some handy debugging shorthands, routines, ... */ /* debugging tools */ #define MESG(x)\ - if (verbose) printf("%s\n", x);\ + if (verbose) printf("%s\n", x); #define MPI_BANNER(mesg)\ {printf("--------------------------------\n");\ @@ -917,10 +917,12 @@ test_split_comm_access(char *filenames[]) /* setup file access template */ acc_tpl = H5Pcreate (H5P_FILE_ACCESS); assert(acc_tpl != FAIL); + MESG("H5Pcreate succeed"); /* set Parallel access with communicator */ ret = H5Pset_mpi(acc_tpl, comm, info); assert(ret != FAIL); + MESG("H5Pset_mpi succeed"); /* create the file collectively */ fid=H5Fcreate(filenames[color],H5F_ACC_TRUNC,H5P_DEFAULT,acc_tpl); @@ -983,7 +985,12 @@ parse_options(int argc, char **argv){ main(int argc, char **argv) { +#ifdef HAVE_PARALLEL + char *filenames[]={ "pfs:/pfs/multi/tmp_1/your_own/Eg1.h5f", "pfs:/pfs/multi/tmp_1/your_own/Eg2.h5f" }; char *filenames[]={ "ParaEg1.h5f", "ParaEg2.h5f" }; +#else + char *filenames[]={ "Eg1.h5f", "Eg2.h5f" }; +#endif int mpi_namelen; char mpi_name[MPI_MAX_PROCESSOR_NAME]; |