Difference between revisions of "CHOMBO"
Line 7: | Line 7: | ||
This page describes what I (Gethin) did to install and run CHOMBO. In the first instance, I worked on dyln (an x86_64 machine) and used the GNU C and Fortran compilers (gcc, g++ and gfortran). | This page describes what I (Gethin) did to install and run CHOMBO. In the first instance, I worked on dyln (an x86_64 machine) and used the GNU C and Fortran compilers (gcc, g++ and gfortran). | ||
− | First we will look at the prerquisites, | + | First we will look at the prerquisites, an MPI implementation and HDF5, and then CHOMBO itself. |
+ | |||
+ | ==MPICH v1.2.6== | ||
+ | |||
+ | Only an MPI 1.2 compliant C binding is required to run CHOMBO in parallel. There are problems getting gfortran to work with both MPICH v1.2.5 and v1.2.6, so I will omit it here. '''Beware''', however of picking up e.g. the Sun fortran compiler as '''f77''' and '''f90''' and thus getting a mixed compiler MPICH build. | ||
+ | |||
+ | Get tar ball: | ||
+ | <pre> | ||
+ | wget ftp://ftp.mcs.anl.gov/pub/mpi/old/mpich-1.2.6.tar.gz | ||
+ | </pre> | ||
+ | |||
+ | Treating dylan as an SMP machine (multi-core with shared memory), we will build a shared memory MPI installation: | ||
+ | |||
+ | <pre> | ||
+ | ./configure --prefix=/gsb6/ggdagw/mpich/mpich-1.2.5/ch_shmem --with-device=ch_shmem -cc=gcc -c++=g++ \ | ||
+ | -fc=gfortran -f90=gfortran >& config.out | ||
+ | </pre> | ||
+ | |||
+ | Note that Fortran binding will not be built, as MPICH will complain that it can't access the command line through gfortran. | ||
+ | |||
==HDF5 v1.4.4== | ==HDF5 v1.4.4== | ||
Line 46: | Line 65: | ||
</pre> | </pre> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==CHOMBO== | ==CHOMBO== |
Revision as of 11:05, 28 October 2008
CHOMBO
Introduction
Installation
This page describes what I (Gethin) did to install and run CHOMBO. In the first instance, I worked on dyln (an x86_64 machine) and used the GNU C and Fortran compilers (gcc, g++ and gfortran).
First we will look at the prerquisites, an MPI implementation and HDF5, and then CHOMBO itself.
MPICH v1.2.6
Only an MPI 1.2 compliant C binding is required to run CHOMBO in parallel. There are problems getting gfortran to work with both MPICH v1.2.5 and v1.2.6, so I will omit it here. Beware, however of picking up e.g. the Sun fortran compiler as f77 and f90 and thus getting a mixed compiler MPICH build.
Get tar ball:
wget ftp://ftp.mcs.anl.gov/pub/mpi/old/mpich-1.2.6.tar.gz
Treating dylan as an SMP machine (multi-core with shared memory), we will build a shared memory MPI installation:
./configure --prefix=/gsb6/ggdagw/mpich/mpich-1.2.5/ch_shmem --with-device=ch_shmem -cc=gcc -c++=g++ \ -fc=gfortran -f90=gfortran >& config.out
Note that Fortran binding will not be built, as MPICH will complain that it can't access the command line through gfortran.
HDF5 v1.4.4
Get from:
ftp://hdf.ncsa.uiuc.edu/HDF5/prev-releases
For Serial Build
./configure --prefix=/gsb6/ggdagw/hdf5/hdf5-1.4.4/serial --enable-production
For Parallel Build
Tested MPI-IO with the program Sample_mpio.c from PHDF5 instructions (appendix) in conjunction with shmem MPI build and tests passed OK.
CC=/gsb6/ggdagw/mpich/mpich-1.2.6/ch_shmem/bin/mpicc ./configure --prefix=/gsb6/ggdagw/hdf5/hdf5-1.4.4/parallel
broken build..
HDF5 v1.6.7
For Serial Build
./configure --prefix=/gsb6/ggdagw/hdf5/hdf5-1.6.7/serial --enable-production
For Parallel Build
CHOMBO
Oct07 release
Without HDF5
Chombo-2.0/lib/mk/Make.defs.local
DIM = 2 DEBUG = TRUE OPT = TRUE PRECISION = DOUBLE PROFILE = FALSE CXX = g++ FC = gfortran MPI = FALSE USE_HDF = FALSE
make lib make test make run Looks like the tests pass BUT uses -m32 during compilation.
With HDF5 compiled in serial mode
USE_64 = TRUE
adds -m64 to the GNU compiler flags and so object code is created for the x86_64 architecture, and so it will link against the HDF libraries which are built for x86_64. This is not what the documentation says the makefile variable is for! Hey ho. Add it in.
- e.g. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/gsb6/ggdagw/hdf5/hdf5-1.4.4/serial/lib
required to find shared object files, else tests will not run. Tests look OK for both v1.4.4 and v1.6.7 of HDF.