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

Reply via email to