122e913f08
* read/write call variants for different datatypes * HDF5 properties tuned for lustre filesystems and the Cray XT (enabled using flags passed during file open) * HDF5 chunking for field data * HDF5 alignment (set during file open) * support for both HDF5 1.6 and 1.8 using #if statements * a new error reporting level: debug_detail (HDF5 errors are now printed at debug level 1 by default) These changes have undergone limited testing. I will begin using this version for my H5Part projects so that I can test it more thoroughly. ~Mark
438 lines
11 KiB
Plaintext
438 lines
11 KiB
Plaintext
==============================================================================
|
|
README file for H5Part configure
|
|
==============================================================================
|
|
|
|
+ 0. HDF5 library
|
|
-----------------
|
|
|
|
Make sure you have a working version of the HDF5 library installed. If you plan
|
|
to use parallel I/O you need to use a parallel HDF5 version. Source files and
|
|
installation instructions are available from the HDF5 website:
|
|
|
|
http://www.hdfgroup.org/HDF5/
|
|
|
|
|
|
+ 1. Quick start (If you feel lucky...)
|
|
----------------------------------------
|
|
|
|
For many platforms, where compilers are installed in the "default" location
|
|
and all the environment variables are set correctly, it should be sufficient
|
|
to type:
|
|
|
|
./configure [OPTIONS] && make [install]
|
|
|
|
to have the libraries and test program compiled.
|
|
|
|
|
|
+ 2. Configure line options
|
|
----------------------------
|
|
|
|
To view a full list of configure option, use:
|
|
|
|
./configure --help
|
|
|
|
(1) Enable options
|
|
--enable-fortran
|
|
--enable-parallel
|
|
--enable-tools
|
|
--enable-python
|
|
--enable-64 (only for AIX and Irix)
|
|
|
|
(2) Setting compilers related variables manually
|
|
To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
|
VAR=VALUE before running configure. For example, if you are using the bash
|
|
shell, you might type:
|
|
|
|
export CC=gcc
|
|
|
|
to set the default C compiler. See below for descriptions of some useful
|
|
variables.
|
|
|
|
Compiler environment variables:
|
|
CC C compiler command
|
|
CXX C++ compiler command
|
|
FC Fortran compiler command
|
|
MPICC MPI-enabled C compiler command
|
|
MPICXX MPI-enabled C++ compiler command
|
|
MPIFC MPI-enabled Fortran compiler command
|
|
CFLAGS flags to append when invoking the C compiler
|
|
|
|
Library environment variables:
|
|
LDFLAGS flags to append when invoking the linker
|
|
|
|
(3) Setting prefix for installation manually (by default, the package will
|
|
install itself in the 'build' subdirectory of your source directory)
|
|
--prefix=PREFIX install files in PREFIX
|
|
|
|
|
|
+ 3. Platform specific settings for compiling libraries & test programs
|
|
------------------------------------------------------------------------
|
|
|
|
Building
|
|
make : builds the libraries and test programs
|
|
make install: builds and installs
|
|
make clean : removes extraneous object files
|
|
make distclean : returns configuration to unconfigured state
|
|
|
|
As tested on hosts:
|
|
|
|
(0) Franklin <franklin.nersc.gov> (CNL - Cray XT4)
|
|
--------------------------------------------------
|
|
|
|
module add hdf5_par
|
|
module add zlib
|
|
module add szip
|
|
export CC=cc CXX=CC FC=ftn MPICC=cc MPICXX=CC MPIFC=ftn
|
|
export LDFLAGS=$HDF5
|
|
./configure --enable-fortran --enable-parallel --with-hdf5path=$HDF5_PAR_DIR --with-mpiposix
|
|
make install
|
|
|
|
|
|
(1) Davinci <davinci.nersc.gov> (Linux"SUSE"-ia64)
|
|
---------------------------------------------------
|
|
FIRST THING FIRST!! Type:
|
|
|
|
module load intel
|
|
to have the proper compilers set up for use.
|
|
|
|
module load hdf5_par
|
|
|
|
[NOTE: module load hdf5 does not work at this moment.
|
|
Possible installation error of HDF5 on Davinci.]
|
|
|
|
|
|
Brief profile:
|
|
CC = icc
|
|
CXX = icc
|
|
FC = ifort
|
|
MPICC = icc
|
|
MPICXX = icc
|
|
MPIFC = ifort
|
|
|
|
If default doesn't work, try:
|
|
|
|
For C shell:
|
|
env CC=icc CXX=icc FC=ifort MPICC=icc MPICXX=icc MPIFC=ifort ./configure && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=icc CXX=icc FC=ifort MPICC=icc MPICXX=icc MPIFC=ifort ./configure && make install
|
|
|
|
And, of course, you should add configure options, such as --enable-fortran --enable-parallel.
|
|
|
|
|
|
On this host, executing:
|
|
|
|
For C shell:
|
|
env CC=icc CXX=icc FC=ifort MPICC=icc MPICXX=icc MPIFC=ifort ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=icc CXX=icc FC=ifort MPICC=icc MPICXX=icc MPIFC=ifort ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
has functioned correctly.
|
|
|
|
|
|
To run test program, go to test directory:
|
|
|
|
(i) Serial test
|
|
run:
|
|
./H5testF
|
|
./H5PartTest
|
|
|
|
(ii) Parallel test
|
|
run:
|
|
mpirun 2 H5testFpar
|
|
mpirun 2 H5PartTestP
|
|
|
|
NOTE: Number 2 above is a arbitrary number that indicates the number of processes.
|
|
|
|
|
|
|
|
|
|
|
|
(2) Jacquard <jacquard.nersc.gov> (Linux"SUSE"-x86_64)
|
|
-------------------------------------------------------
|
|
Brief profile:
|
|
CC = pathcc
|
|
CXX = pathCC
|
|
FC = pathf90
|
|
MPICC = mpicc
|
|
MPICXX = mpicxx
|
|
MPIFC = mpif90
|
|
|
|
|
|
|
|
If default doesn't work, try:
|
|
|
|
For C shell:
|
|
env CC=pathcc CXX=pathCC FC=pathf90 MPICC=mpicc MPICXX=mpicxx MPIFC=mpif90 ./configure && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=pathcc CXX=pathCC FC=pathf90 MPICC=mpicc MPICXX=mpicxx MPIFC=mpif90 ./configure && make install
|
|
|
|
And, of course, you should add configure options, such as --enable-fortran --enable-parallel.
|
|
|
|
|
|
|
|
On this host, executing:
|
|
|
|
For C shell:
|
|
env CC=pathcc CXX=pathCC FC=pathf90 MPICC=mpicc MPICXX=mpicxx MPIFC=mpif90 ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=pathcc CXX=pathCC FC=pathf90 MPICC=mpicc MPICXX=mpicxx MPIFC=mpif90 ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
has functioned correctly.
|
|
|
|
|
|
|
|
To run test program, go to test directory:
|
|
|
|
(i) Serial test
|
|
run:
|
|
./H5testF
|
|
./H5PartTest
|
|
|
|
(ii) Parallel test
|
|
In Jacquard, we need a script to run parallel programs, since Jacquard does not support interactive parallel processing. Instead, we need to submit the task to a queue. A sample script (run_H5testFpar.scr) may look like below:
|
|
|
|
+++++++++++++++++++++++++++++++++++++++
|
|
#!/bin/csh
|
|
#PBS -l nodes=1:ppn=2,walltime=00:05:00
|
|
#PBS -N H5testFpar
|
|
#PBS -o H5testFpar.out
|
|
#PBS -e H5testFpar.err
|
|
#PBS -q debug
|
|
#PBS -A mpccc
|
|
#PBS -V
|
|
|
|
setenv PBS_OWORKDIR /home/H5Part/test
|
|
|
|
cd $PBS_O_WORKDIR
|
|
mpirun -np 2 ./H5testFpar
|
|
+++++++++++++++++++++++++++++++++++++++
|
|
|
|
Then, we need to submit the task to a queue by running:
|
|
|
|
qsub run_H5testFpar.scr
|
|
|
|
After processed, the result will appear in H5testFpar.out, and error messages will appear in H5testFpar.err.
|
|
|
|
|
|
|
|
|
|
|
|
(3) Bassi <bassi.nersc.ogv> (AIX5.3.0.0-Power 3)
|
|
-------------------------------------------------
|
|
FIRST THING FIRST!! Type:
|
|
|
|
module load gcc
|
|
|
|
to have the proper compilers set up for use.
|
|
|
|
Brief profile:
|
|
CC = cc_r
|
|
CXX = cc_r
|
|
FC = xlf_r
|
|
MPICC = mpcc_r
|
|
MPICXX = mpcc_r
|
|
MPIFC = mpxlf_r
|
|
|
|
|
|
|
|
If default doesn't work, try:
|
|
|
|
For C shell:
|
|
env CC=cc_r CXX=cc_r FC=xlf_r MPICC=mpcc_r MPICXX=mpcc_r MPIFC=mpxlf_r ./configure && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=cc_r CXX=cc_r FC=xlf_r MPICC=mpcc_r MPICXX=mpcc_r MPIFC=mpxlf_r ./configure && make install
|
|
|
|
And, of course, you should add configure options, such as --enable-fortran --enable-parallel.
|
|
|
|
|
|
|
|
On this host, executing:
|
|
|
|
For C shell:
|
|
env CC=cc_r CXX=cc_r FC=xlf_r MPICC=mpcc_r MPICXX=mpcc_r MPIFC=mpxlf_r ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=cc_r CXX=cc_r FC=xlf_r MPICC=mpcc_r MPICXX=mpcc_r MPIFC=mpxlf_r ./configure --enable-fortran --enable-parallel && make install
|
|
|
|
has functioned correctly.
|
|
|
|
|
|
|
|
To run test program, go to test directory:
|
|
|
|
(i) Serial test
|
|
run:
|
|
./H5testF
|
|
./H5PartTest
|
|
|
|
(ii) Parallel test
|
|
run:
|
|
unsetenv MP_SINGLE_THREAD
|
|
poe ./H5PartTestP -procs 2 -nodes 1
|
|
poe ./H5testFpar -procs 2 -nodes 1
|
|
|
|
For more details on how to run parallel programs on Bassi, go to:
|
|
|
|
http://www.nersc.gov/nusers/resources/bassi/running_jobs/
|
|
|
|
|
|
|
|
|
|
|
|
(4) Starsky <starsky.lbl.gov> (Darwin8.5.0-PowerPC)
|
|
----------------------------------------------------
|
|
FIRST THING FIRST!! Set environment variables: (in tcsh)
|
|
|
|
setenv LD_LIBRARY_PATH /usr/local/g95/lib/gcc-lib/powerpc-apple-darwin8.5.0/4.0.3/
|
|
setenv PATH ${PATH}:/usr/local/g95/bin
|
|
|
|
NOTE: This environment variable setting is specifit to Starsky. It is to make configure find the fortran compiler.
|
|
|
|
Brief profile:
|
|
CC = gcc
|
|
CXX = g++
|
|
FC = g95
|
|
|
|
|
|
|
|
If default doesn't work, try:
|
|
|
|
For C shell:
|
|
env CC=gcc CXX=g++ FC=g95 ./configure && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=gcc CXX=g++ FC=g95 ./configure && make install
|
|
|
|
And, of course, you should add configure options, such as --enable-fortran --enable-parallel.
|
|
|
|
|
|
|
|
On this host, executing:
|
|
|
|
For C shell:
|
|
env CC=gcc CXX=g++ FC=g95 ./configure --enable-fortran && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=gcc CXX=g++ FC=g95 ./configure --enable-fortran && make install
|
|
|
|
has functioned correctly.
|
|
|
|
|
|
|
|
To run test program, go to test directory:
|
|
|
|
(i) Serial test
|
|
run:
|
|
./H5testF
|
|
./H5PartTest
|
|
|
|
|
|
|
|
|
|
|
|
(5) Linux AMD64 Visualization group workstations (Linux"SUSE"-x86_64)
|
|
---------------------------------------------------------
|
|
Brief profile:
|
|
CC = gcc
|
|
CXX = g++
|
|
FC = g95
|
|
|
|
|
|
|
|
If default doesn't work, try:
|
|
|
|
For C shell:
|
|
env CC=gcc CXX=g++ FC=g95 ./configure && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=gcc CXX=g++ FC=g95 ./configure && make install
|
|
|
|
And, of course, you should add configure options, such as --enable-fortran --enable-parallel.
|
|
|
|
|
|
|
|
On this host, executing:
|
|
|
|
For C shell:
|
|
env CC=gcc CXX=g++ FC=g95 ./configure --enable-fortran && make install
|
|
|
|
For Korn or Bourne shell:
|
|
CC=gcc CXX=g++ FC=g95 ./configure --enable-fortran && make install
|
|
|
|
has functioned correctly.
|
|
|
|
|
|
|
|
To run test program, go to test directory:
|
|
|
|
(i) Serial test
|
|
run:
|
|
./H5testF
|
|
./H5PartTest
|
|
|
|
|
|
(6) Cray XT3 @ CSCS gele
|
|
|
|
1) modules/3.1.6 9) PrgEnv-pgi/1.4.26 17) xt-lustre-ss/1.4.26
|
|
2) MySQL/4.0.26 10) xt-pbs/5.3.4 18) Base-opts/1.4.26
|
|
3) acml/3.0 11) xt-service/1.4.26 19) subversion/1.3.2
|
|
4) pgi/6.1.4 12) xt-libc/1.4.26 20) zlib/1.2.3
|
|
5) totalview/7.2.0 13) xt-os/1.4.26 21) szip/2.0
|
|
6) xt-libsci/1.4.26 14) xt-catamount/1.4.26 22) hdf5/1.6.5
|
|
7) xt-mpt/1.4.26 15) xt-boot/1.4.26
|
|
8) xt-pe/1.4.26 16) xt-crms/1.4.26
|
|
|
|
|
|
CFLAGS="-I$H5HOME/include -DF77_SINGLE_UNDERSCORE" LDFLAGS="-L$H5HOME/lib -L$ZHOME/lib" ./configure --enable-parallel --enable-fortran
|
|
|
|
|
|
(7) merlin00 / merlin3
|
|
|
|
Currently Loaded Modulefiles:
|
|
1) hdf5/hdf5-1.6.5 2) root/root-5.10.00 3) mpi/mpich2-1.0.3-pgi-6.1 4) pgi/pgi_64-6.1
|
|
|
|
FC=mpif90 ./configure --enable-parallel --enable-fortran
|
|
|
|
|
|
|
|
|
|
==============================================================================
|
|
|
|
|
|
+ 4. Trouble shooting (Things to check for...)
|
|
--------------------------------------------
|
|
(0) Have you set the LD_LIBRARY_PATH?
|
|
---Some systems require the user to manually set the environment variable, LD_LIBRARY_PATH. To do so:
|
|
|
|
set the environment variable HDF5ROOT or PHDF5ROOT to point to your installation of HDF5 (serial and/or parallel respectively).
|
|
|
|
For Korn or Bourne shell:
|
|
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${HDF5ROOT}/lib;export LD_LIBRARY_PATH
|
|
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:{PHDF5ROOT}/lib;export LD_LIBRARY_PATH
|
|
|
|
For C shell:
|
|
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${HDF5ROOT}/lib
|
|
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${PHDF5ROOT}/lib
|
|
|
|
Note that the values of HDF5ROOT & PHDF5ROOT will be in the "summary" section when you run configure.
|
|
|
|
Not properly set LD_LIBRARY_PATH value may result in a runtime error:
|
|
|
|
./H5PartTest: error while loading shared libraries: libhdf5.so.0: cannot open shared object file: No such file or directory
|
|
|
|
(1) Are the compilers set correctly?
|
|
---Check with: which COMPILER
|
|
|
|
(2) Have you installed HDF5?
|
|
---You can get it at: http://vis.lbl.gov/Research/AcceleratorSAPP/index.html
|
|
|
|
(3) Have you loaded the proper modules?
|
|
---It is necessary in Davinci & Bassi, and configure && make install may not work without it.
|
|
|
|
|