Hello fellow meep users,
I have been running into issues trying to use MEEP compiled on a RHEL6.5
system. Both the configure and compilation steps finish correctly, but I
can not use the software. Running "meep-mpi" on the command line returns:
> meep-mpi
Using MPI version 2.1, 1 processes
Backtrace:
In ice-9/boot-9.scm:
157: 10 [catch #t #<catch-closure f16600> ...]
In unknown file:
?: 9 [apply-smob/1 #<catch-closure f16600>]
In ice-9/eval.scm:
414: 8 [eval # #]
414: 7 [eval # #]
In unknown file:
?: 6 [primitive-load
"/usr/global/intel-13/openmpi-1.6.x//meep/1.2/share/meep/meep.scm"]
In ice-9/eval.scm:
414: 5 [eval # #]
414: 4 [eval # #]
In unknown file:
?: 3 [primitive-load
"/usr/global/intel-13/openmpi-1.6.x//meep/1.2/share/meep/meep-enums.scm"]
In ice-9/eval.scm:
435: 2 [eval #<memoized (define Centered Dielectric)> ()]
381: 1 [eval #<memoized Dielectric> ()]
In unknown file:
?: 0 [memoize-variable-access! #<memoized Dielectric> #<directory #
f09cf0>]
ERROR: In procedure memoize-variable-access!:
ERROR: Unbound variable: Dielectric
The same error occurs when running meep-mpi with a ctl file (e.g.
meep-mpi myfile.ctl).
I used the following compilation configure line:
../../configure --prefix=/usr/global/intel-13/openmpi-1.6.x/meep/1.2
--enable-shared=yes --with-mpi --with-blas=-lmkl_rt
--with-lapack=-lmkl_rt --with-libctl=/usr/global/libctl/3.2.1/
The libraries required by Meep are as follows:
- BLAS/LAPACK: MKL 11.0.0.079
- Guile: 2.0.9 (2.0.6 and 1.8.8 return the same error message)
- HDF5: 1.8.11
- FFTW: 3.3.3, double precision
- MPI: OpenMPI 1.6.5
- Harminv: 1.3.1
- libctl: 3.2.1
- GMP: 5.1.3
- GSL: 1.15
Guile 2.0.9 was compiled with:
- libffi 3.0.13
- GMP 5.1.3
- libtool 2.4.2
- libunistring 0.9.3
The compiler is the Intel compiler, version 2013.0.079. GCC 4.8.2 gives
the same results. I used a bash script to perform the configuration and
install of the software:
#!/bin/bash
## This is a wrapper to configure the Meep 1.2 compilation and installation
# Modules - set the correct environment variables
module purge
module load intel/2013.0.079
module load mkl/11.0.0.079
module load libctl
module load guile/2.0.9
module load hdf5/1.8.11
module load harminv/1.3.1
module load gsl/1.15
module load bdwgc/070113
module load gmp/5.1.3
# Set MPI path
MPI=/usr/global/intel-13/openmpi/1.6.5
export PATH=$PATH:$MPI/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MPI/lib
# Set FFTW path
FFTW3=/usr/global/intel-13/openmpi-1.6.x/fftw/3.3.3/double
export PATH=$PATH:$FFTW3/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$FFTW3/lib
# Set LIBIPPS
IPPS=/usr/global/intel/composer_xe/2013.0.079/ipp/
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$IPPS/lib/intel64
## Compilers
export CXX=icpc
export CC=icc
export MPICXX=mpic++
export CPP="icc -E"
export CXXCPP="icpc -E"
export F77=ifort
## Flags
# Includes - GUILE_INC obtained with guile_config
MPI_INC="-I/usr/global/intel-13/openmpi/1.6.5/include"
MKL_INC="-I/usr/global/intel/mkl/11.0.0.079/include"
GUILE_INC="-pthread -I/usr/global/guile/2.0.9/include/guile/2.0
-I/usr/global/libtool/2.4.2/include
-I/usr/global/libunistring/0.9.3/include -I/usr/global/gmp/5.1.3/include
-I/usr/global/bdwgc/070113/include"
HDF5_INC="-I/usr/global/hdf5/1.8.11/include"
FFTW3_INC="-I/usr/global/intel-13/openmpi-1.6.x/fftw/3.3.3/double/include"
HMV_INC="-I/usr/global/intel-13/harminv/1.3.1/include"
LCTL_INC="-I/usr/global/libctl/3.2.1/include"
GSL_INC="-I/usr/global/gsl/1.15/include"
GMP_INC="-I/usr/global/gmp/5.1.3/include"
export CPPFLAGS="$MPI_INC $MKL_INC $GUILE_INC $HDF5_INC $FFTW3_INC
$HMV_INC $LCTL_INC $GSL_INC $GMP_INC"
# Libraries - GUILE_LIB obtained with guile_config
MPI_LIB="-L/usr/global/intel-13/openmpi/1.6.5/lib -lmpi
-Wl,-rpath,/usr/global/intel-13/openmpi/1.6.5/lib"
MKL_LIB="-L/usr/global/intel/mkl/11.0.0.079/lib/intel64 -lmkl_rt
-Wl,-rpath,/usr/global/intel/mkl/11.0.0.079/lib/intel64"
FFTW3_LIB="-L/usr/global/intel-13/openmpi-1.6.x/fftw/3.3.3/double/lib
-lfftw3 -Wl,-rpath,/usr/global/intel-13/openmpi-1.6.x/fftw/3.3.3/double/lib"
HDF5_LIB="-L/usr/global/hdf5/1.8.11/lib -lhdf5
-Wl,-rpath,/usr/global/hdf5/1.8.11/lib"
GUILE_LIB="-L/usr/global/guile/2.0.9/lib -L/usr/global/bdwgc/070113/lib
-lguile-2.0 -lcord -lgc -Wl,-rpath,/usr/global/guile/2.0.9/lib
-Wl,-rpath,/usr/global/bdwgc/070113/lib"
HMV_LIB="-L/usr/global/intel-13/harminv/1.3.1/lib -lharminv
-Wl,-rpath,/usr/global/intel-13/harminv/1.3.1/lib"
LCTL_LIB="-L/usr/global/libctl/3.2.1/lib -lctl
-Wl,-rpath,/usr/global/libctl/3.2.1/lib"
GSL_LIB="-L/usr/global/gsl/1.15/lib -lgsl
-Wl,-rpath,/usr/global/gsl/1.15/lib"
GMP_LIB="-L/usr/global/gmp/5.1.3/lib -lgmp -lgmpxx
-Wl,-rpath,/usr/global/gmp/5.1.3/lib"
# Force to use system libraries
STDCPP_LIB="-L/usr/lib64 -lstdc++ -Wl,-rpath,/usr/lib64 -L/lib64 -lgcc_s
-Wl,-rpath,/lib64"
export LDFLAGS="$MPI_LIB $MKL_LIB $GUILE_LIB $HDF5_LIB $FFTW3_LIB
$HMV_LIB $LCTL_LIB $GSL_LIB $GMP_LIB $STDCPP_LIB"
# Simplest optimizations
export CXXFLAGS="-O3"
export CFLAGS="-O3"
export FFLAGS="-O3"
# Check environment
printenv &> foo
## Run configure
PFX=/usr/global/intel-13/openmpi-1.6.x
../../configure --prefix=$PFX/meep/1.2 --enable-shared=yes \
--with-mpi --with-blas=-lmkl_rt --with-lapack=-lmkl_rt \
--with-libctl=/usr/global/libctl/3.2.1/
## Compile
make clean
make -j4
make install
I tried different combinations of compilers and libraries, made sure
that the correct libraries were loaded by using "ldd" on the executable,
and "forced" the location of the libraries with "-Wl,-rpath", but to no
avail. Any idea would be greatly appreciated.
Thank you very much,
Pierre-Yves
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss