#! /bin/sh # How to create a parallel version of HDF5 on the Intel Asci Red System # that uses MPI and MPI-IO. # Read the INSTALL.ascired file to understand the configure/make process # for the sequential (i.e., uniprocessor) version of HDF5. # The process for creating the parallel version of HDF5 using MPI-IO # is similar, but first you will have to set up some environment variables # with values specific to your local installation. # The relevant variables are shown below, with values that work for Sandia'a # ASCI Red Tflops machine as of the writing of these instructions (980421). # Don't try to make a parallel version of HDF5 from the same hdf5 root # directory where you made a sequential version of HDF5 -- start with # a fresh copy. # Here are the flags you must set before running the ./configure program # to create the parallel version of HDF5. # (We use sh here, but of course you can adapt to whatever shell you like.) # compile for MPI jobs #CC=cicc # The following flags are only needed when compiling/linking a user program # for execution. # debug="-g -UH5O_DEBUG -DH5F_OPT_SEEK=0" default_mode="-DDOS386 $debug -DH5F_LOW_DFLT=H5F_LOW_SEC2" # Using the MPICH libary by Daniel Sands. # It contains both MPI-1 and MPI-IO functions. ROMIO="${HOME}/MPIO/mpich" if [ ! -d $ROMIO ] then echo "ROMIO directory ($ROMIO) not found" echo "Aborted" exit 1 fi mpi1_inc="" mpi1_lib="" mpio_inc="-I$ROMIO/include" mpio_lib="-L$ROMIO/lib" MPI_INC="$mpi1_inc $mpio_inc" MPI_LIB="$mpi1_lib $mpio_lib" #for version 1.1 and later RUNSERIAL="yod -sz 1" export RUNSERIAL RUNPARALLEL="yod -sz 8" export RUNPARALLEL LIBS="-lmpich" export LIBS # Once these variables are set to the proper values for your installation, # you can run the configure program (i.e., ./configure tflop --enable-parallel=mpio) # to set up the Makefiles, etc. # After configuring, run the make as described in the INSTALL file. # When compiling and linking your application, don't forget to compile with # cicc and link to the MPI-IO library and the parallel version of the HDF5 # library (that was created and installed with the configure/make process). CFLAGS="$default_mode" \ CPPFLAGS=$MPI_INC \ LDFLAGS=$MPI_LIB \ ./configure --enable-parallel --disable-shared tflop