1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
# How to create a parallel version of HDF5 on an IBM SP system
# that uses MPI and MPI-IO.
# Unfortunately, the configure/make process to create the parallel version of
# HDF5 has not yet been automated to the same extent that the sequential
# version has.
# Read the INSTALL file to understand the configure/make process for the
# sequential (i.e., uniprocess) 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 LLNL's
# ASCI baby blue pacific SP as of the writing of these instructions (980210).
# In addition to the environment variables, you _might_ also have to
# create a new file in the config directory.
# You will need to create this file only if the execution of the ./configure
# program aborts with an error after printing the message
# "checking whether byte ordering is bigendian..."
#
# If this is the case, create a new file in the config directory
# whose name is of the form architecture-vendor-OSversion
# (e.g., for baby blue pacific, this file is named powerpc-ibm-aix4.2.1.0)
# and which contains the line
# ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}
# if the target architecture is bigendian, or
# ac_cv_c_bigendian=${ac_cv_c_bigendian='no'}
# otherwise.
# Running the program ./bin/config.guess will print out the name
# of the new file you must create.
# 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 csh here, but of course you can adapt to whatever shell you like.)
# compile for MPI jobs
setenv CC mpcc
# These compiler flags work on ASCI baby blue pacific (IBM SP),
# using IBM's MPI and Argonne's MPI-IO (ROMIO):
# -DHAVE_FUNCTION compiler accepts __FUNCTION__ notation
# -I/usr/local/mpio/include/ibm using ROMIO's MPI-IO header files
#
# The following flags are only needed when compiling/linking a user program
# for execution.
# -bI:/usr/include/piofs/piofs.exp this MPI-IO uses PIOFS file system
# -L/usr/local/mpio/lib/ibm -lmpio link to this MPI-IO lib
#
setenv CFLAGS "-DHAVE_FUNCTION -I/usr/local/mpio/include/ibm -bI:/usr/include/piofs/piofs.exp -L/usr/local/mpio/lib/ibm -lmpio"
# The configure/make process needs to be able to run some programs,
# need to specify a processor pool.
# Also, don't prepend the process id in the output of the programs
# run by config/make.
setenv MP_RMPOOL 0
setenv MP_LABELIO no
# Once these variables are set to the proper values for your installation,
# you can run the configure program (i.e., ./configure --enable-parallel=mpio)
# to set up the Makefiles, etc.
# After configuring, run the make as described in the INSTALL file.
# Once the configuration is complete, you can set any of your
# environment variables to whatever you like.
# When compiling and linking your application, don't forget to compile with
# mpcc 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).
|