summaryrefslogtreecommitdiffstats
path: root/testpar
diff options
context:
space:
mode:
authorPaul Harten <pharten@ncsa.uiuc.edu>1998-04-23 23:11:06 (GMT)
committerPaul Harten <pharten@ncsa.uiuc.edu>1998-04-23 23:11:06 (GMT)
commit9e886e03e544dd1e747ed2ac247d9f266620179c (patch)
treeaa36c11fc14b5c52c98bf75d30f346fdf3b8d5be /testpar
parent12545e32a138dee811ef73b779da52696d76393e (diff)
downloadhdf5-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.ascired109
-rw-r--r--testpar/testphdf5.c9
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];