Hi Dominec, Dear All,

sorry, forgot to email before. Tried to reproduce the problem here and faced this error as well.

The workaround looks simple:
to build hdf5 library with "--enable-parallel" switch and "--prefix=the_directory_where_hdf5_must_be_stored" On my system, I store libraries in /usr/local/lib. Meep building scrips expect to find the library in this directory as well (because LD_LIBRARY_PATH=/usr/local/lib).

Therefore, commands for building HDF5 are
CC=mpicc CXX=mpicxx F77=mpif77 ./configure --enable-parallel --prefix=/usr/local
make
sudo make install

Than continue with MEEP.

This worked for me, but I am still waiting for conformation from C7420.

best wishes

pavlo



On 02/04/15 16:58, Filip Dominec wrote:
_bHi, Cristian et al.,
now I can also confirm that have an issue with HDF5 on Debian Jessie,
though Debian Wheezy was fine. The problematic portion in the log is:
checking for H5Pcreate in -lhdf5... no
checking for H5Pset_mpi... no
checking for H5Pset_fapl_mpio... no

Meep then can not save into HDF files, in which case it ends with the
error message "meep: not compiled with HDF5, required for HDF5 output"

Note that Christian reported a different output of the compilation
procedure; to repeate it for comparison:
checking for H5Pcreate in -lhdf5... no
configure: WARNING: Couldn't find the HDF5 library!! Switching to
--without-hdf5.
checking for H5Pset_mpi... no
checking for H5Pset_fapl_mpio... no
I will investigate this issue further. The newest version of the
installation procedure, with its full log output on the current
cleanly installed system, is at:
https://github.com/FilipDominec/python-meep-install

Filip

2015-03-25 4:05 GMT-04:00, Filip Dominec <filip.domi...@gmail.com>:
Hi,
it is as you write, and therefore I would like to make the blue-boxed
installation failsafe on as many systems as possible. Currently it is
known to work on Ubuntu, but yesterday I finally made it work on
Debian, too.
At the moment, I am installing clean Debian Jenny system to make a
final test. I will keep you posted what is the result.
Filip

2015-03-25 1:10 GMT+01:00, c7...@gmx.net <c7...@gmx.net>:
Hello,
I just noticed, that you are the author of the website with the blue
boxed
script. Have you read my last post or have another idea what might be
causing the problem? I am personally out of my depth here, I don't know
enough about python-meep to start messing around with the underlying
code,
but if I can help figure out what is going on, I will. I greatly
appreciate
your help.

Greetings
Christian Kropla
Diploma Student at IAPP, Dresden

Gesendet: Montag, 23. März 2015 um 09:10 Uhr
Von: "Filip Dominec" <filip.domi...@gmail.com>
An: c7...@gmx.net
Betreff: Re: [Meep-discuss] Meep can't find HDF5 libraries during
./configure
Hi,
from what you wrote, I feel motivated to help you. Not only are there
many users of python-meep, but even more I am wondering what may be
wrong with that blue box script. I would be thankful if you help me
find this out.

Python-meep should really be a frontend for MEEP; all interfacing with
HDF5 files is done through the libmeep.so's built-in functions. If
libmeep.so behaves differently, you perhaps use two different versions
of the library. Note that the blue script installs into /usr/local/lib
instead of the default /usr/lib. This is to allow coexistence with the
libraries from the repository. Python-meep then loads the libmeep
library from /usr/local/lib, but by default, meeps loads the latter. I
guess that's it.

To find the actual problem: About a month ago, I made a change in the
procedure, changing line #17 to replace 'libhdf5-serial-dev' with
'libhdf5-openmpi-dev'. Although both versions worked on my system
(ubuntu 13.10), the second one should be faster. Can you remember
which version you used? Can you please recompile meep and python-meep
again, testing these two (serial / openmpi) versions?

Best,
Filip




2015-03-23 2:25 GMT+01:00, c7...@gmx.net <c7...@gmx.net>:
That script is actually what I based my build on, and from what I can
tell it is working fine for the most part. However, what is not working
are the HDF5 output functions in MPI mode and using python-meep. If you
use OpenMPI, the program will continue to run forever because it can't
write to the files. The processes are blocking each other. OpenMPI
doesn't tell you that, MPICH however does.

This does not seem to be problem with Meep, but with python-meep. I
wrote a small *.ctl script to test the output functions and they work.
Somehow python-meep is using the wrong hdf5 libraries (the ones that
don't have mpi enabled), if that is even possible. I thought it was
"just" a frontend for meep.

Installing Meep from the repositories on Debian Jessie was the first
thing I did, then I compiled python-meep against those and got the it
running. Non-MPI worked flawless. MPI-Mode worked, but without the hdf5
functions.

Then I tried to compile everything myself, because I could not find any
answers on the matter, and that is when I encountered my original
problem with "./configure" not finding HDF5 libraries either.



On Sun, 2015-03-22 at 22:17 +0100, Filip Dominec wrote:
Hi, I would traditionally refer you to the blue-boxed compilation
procedure at http://f.dominec.eu/meep/index.html#install

I tested it on different Ubuntu/Debian machines. Does it work on your
system?

Filip

2015-03-22 3:07 GMT+01:00, c7...@gmx.net <c7...@gmx.net>:
Unfortunately that didn't work, but it definitely has something to do
with
the MPI. I just compiled all packages without it and MEEP finds the
libraries.
Something is preventing meep from finding the HDF5 packages when it
is
compiled with mpi-support.

Greetings
c7420

Gesendet: Sonntag, 22. März 2015 um 00:34 Uhr
Von: "Pavel Ivanov" <pavel.ivanov.2...@googlemail.com>
An: c7...@gmx.net
Betreff: Re: [Meep-discuss] Meep can't find HDF5 libraries during
./configure
Dear C7420,

Try configuring and building all packages (not just HDF5 library) by
forcing
building scripts into using MPI versions of compilers. Here is an
example
from my notes:
CC=mpicc CXX=mpicxx F77=mpif77 ./configure --prefix=/home/el1pi/opt
--enable-parallel
make
make install

Sometimes, it helps. Hopefully, it will help this time.

best wishes
pavlo



On 21/03/15 20:35, c7...@gmx.net wrote:
Dear Meep-Users,
I am failing to compile meep with MPICH and HDF5. I successfully
build
mpich-3.1.4 and hdf5-1.8.9.tar from source on a Debian Jessie
machine.
(Yes, I tried the precompiled packages too. They throw out errors
when
trying to write to the hdf5 files in mpi-mode.)
The following problem may not have anything to do with the
repository
packages not working properly, but I tried to compile the programs
myself
anyway and all of the dependencies compile without errors. Only Meep
can't
find the HDF5 libraries in the custom location.

This is the bash function I used to compile HDF5:
function HDF5 {
tar -xf hdf5-1.8.14.tar
cd ./hdf5-1.8.14
export CC="$BUILD_DIR/bin/mpicc"
export F77="$BUILD_DIR/bin/mpif77"
export CXX="$BUILD_DIR/bin/mpic++"
./configure --prefix=$BUILD_DIR --enable-parallel 2>&1 | tee
../Output/HDF5_configure.out
make 2>&1 | tee ../Output/HDF5_make.out
make check 2>&1 | tee ../Output/HDF5_make_check.out
make install 2>&1 | tee ../Output/HDF5_make_install.out
cd ..
rm -r -f ./hdf5-1.8.14
export CC="gcc"
export F77="f77"
export CXX="g++"
}


After Installing libctl, MPICH and HarmInv+OpenBLAS I tried:

export CFLAGS=" -fPIC"; export CXXFLAGS=" -fPIC"; export FFLAGS="
-fPIC"
export CC="gcc"; export F77="f77"; export CXX="g++"
export CPPFLAGS="-I$BUILD_DIR/include"
export LDFLAGS="-L$BUILD_DIR/lib"
export LD_RUN_PATH="-L$BUILD_DIR/lib"
export PATH="$BUILD_DIR/bin:$PATH"

function MEEP {
tar -xf meep-1.2.1.tar.gz
cd ./meep-1.2.1
export MPICXX="$BUILD_DIR/bin/mpic++"
./configure --with-mpi --prefix=$BUILD_DIR
--with-libctl="$BUILD_DIR/share/libctl" 2>&1 | tee
../Output/MEEP_configure.out
#make 2>&1 | tee ../Output/MEEP_make.out
#make install 2>&1 | tee ../Output/MEEP_make_install.out
cd ..
rm -rf ./meep-1.2.1
}


BELOW is the Output of the ./configure command from the function
above.

checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking whether to enable maintainer-specific portions of
Makefiles...
no
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking for style of include used by make... GNU
checking dependency style of g++... gcc3
checking for mpic++... /home/neutronst4r/Install/build/bin/mpic++
checking for mpi.h... yes
checking for extra flag needed to combine stdio.h and mpi.h... none
checking build system type... x86_64-unknown-linux-gnu
checking host system type... x86_64-unknown-linux-gnu
checking for gcc... gcc
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for C++ compiler vendor... gnu
checking how to print strings... printf
checking for a sed that does not truncate output... /bin/sed
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for fgrep... /bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm
-B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking whether the shell understands some XSI constructs... yes
checking whether the shell understands "+="... yes
checking how to convert x86_64-unknown-linux-gnu file names to
x86_64-unknown-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-unknown-linux-gnu file names to
toolchain
format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object...
ok
checking for sysroot... no
checking for mt... mt
checking if mt is a manifest tool... no
checking how to run the C preprocessor... gcc -E
checking for ANSI C header files... yes
checking for sys/types.h... yes
checking for sys/stat.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for memory.h... yes
checking for strings.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for unistd.h... yes
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports
shared libraries... yes
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking how to run the C++ preprocessor...
/home/neutronst4r/Install/build/bin/mpic++ -E
checking for ld used by
/home/neutronst4r/Install/build/bin/mpic++...
/usr/bin/ld -m elf_x86_64
checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld... yes
checking whether the /home/neutronst4r/Install/build/bin/mpic++
linker
(/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking for /home/neutronst4r/Install/build/bin/mpic++ option to
produce
PIC... -fPIC -DPIC
checking if /home/neutronst4r/Install/build/bin/mpic++ PIC flag
-fPIC
-DPIC works... yes
checking if /home/neutronst4r/Install/build/bin/mpic++ static flag
-static
works... yes
checking if /home/neutronst4r/Install/build/bin/mpic++ supports -c
-o
file.o... yes
checking if /home/neutronst4r/Install/build/bin/mpic++ supports -c
-o
file.o... (cached) yes
checking whether the /home/neutronst4r/Install/build/bin/mpic++
linker
(/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking for latex2html... no
configure: WARNING: Cannot find latex2html in your path!
checking for sin in -lm... yes
checking for fftw_plan_dft_1d in -lfftw3... yes
checking whether we are using the GNU Fortran 77 compiler... yes
checking whether f77 accepts -g... yes
checking whether we are using the GNU Fortran 77 compiler...
(cached)
yes
checking whether f77 accepts -g... (cached) yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... no
checking whether to build static libraries... yes
checking for f77 option to produce PIC... -fPIC
checking if f77 PIC flag -fPIC works... yes
checking if f77 static flag -static works... yes
checking if f77 supports -c -o file.o... yes
checking if f77 supports -c -o file.o... (cached) yes
checking whether the f77 linker (/usr/bin/ld -m elf_x86_64) supports
shared libraries... yes
checking dynamic linker characteristics... (cached) GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking how to get verbose linking output from f77... -v
checking for Fortran 77 libraries of f77...
-L/home/neutronst4r/Install/build/lib
-L/usr/lib/gcc/x86_64-linux-gnu/4.9
-L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../x86_64-linux-gnu
-L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../lib
-L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu
-L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/4.9/../../..
-lfftw3
-lgfortran -lm -lquadmath
checking for dummy main to link with Fortran 77 libraries... none
checking for Fortran 77 name-mangling scheme... lower case,
underscore,
no
extra underscore
checking for sgemm_... no
checking for ATL_xerbla in -latlas... yes
checking for sgemm_ in -lf77blas... yes
checking for cblas_dgemm in -lcblas... yes
checking for cheev_... no
checking for cheev_ in -llapack... yes
checking for pkg-config... /usr/bin/pkg-config
checking for harminv >= 1.1... yes
checking HARMINV_CFLAGS...
checking HARMINV_LIBS... -lharminv
checking mpb.h usability... no
checking mpb.h presence... no
checking for mpb.h... no
checking for cblas_cgemm... yes
checking for gsl_sf_bessel_Jn in -lgsl... yes
checking for deflate in -lz... yes
checking for H5Pcreate in -lhdf5... no
configure: WARNING: Couldn't find the HDF5 library!! Switching to
--without-hdf5.
checking for H5Pset_mpi... no
checking for H5Pset_fapl_mpio... no
checking for mpirun... mpirun
checking for guile-config... guile-config
checking if linking to guile works... yes
checking libguile.h usability... yes
checking libguile.h presence... yes
checking for libguile.h... yes
checking guile/gh.h usability... no
checking guile/gh.h presence... no
checking for guile/gh.h... no
checking for scm_make_smob_type... yes
checking for SCM_SMOB_PREDICATE... no
checking for SCM_SMOB_DATA... no
checking for SCM_NEWSMOB... no
checking how to activate readline in Guile... ice-9 readline
checking for libctl dir...
/home/neutronst4r/Install/build/share/libctl
checking for gen-ctl-io... gen-ctl-io
checking for ctl_get_vector3 in -lctl... yes
checking ctl.h usability... yes
checking ctl.h presence... yes
checking for ctl.h... yes
checking whether libctl version is at least 3.2.0... ok
checking for libctl_quiet feature... yes
checking for basename in -lgen... no
checking for feenableexcept... yes
checking whether feenableexcept declaration is usable... yes
checking whether to catch and ignore SIGFPE signals... no
checking whether time.h and sys/time.h may both be included... yes
checking sys/time.h usability... yes
checking sys/time.h presence... yes
checking for sys/time.h... yes
checking for BSDgettimeofday... no
checking for gettimeofday... yes
checking for cblas_ddot... yes
checking for cblas_daxpy... yes
checking for jn... yes
checking for C/C++ restrict keyword... __restrict
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating meep-pkgconfig
config.status: creating src/Makefile
config.status: creating tests/Makefile
config.status: creating examples/Makefile
config.status: creating libctl/Makefile
config.status: creating libctl/meep.scm
config.status: creating config.h
config.status: executing depfiles commands
config.status: executing libtool commands



If anyone could help me out on this one, I would be very grateful.

Greetings
c7420



_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss


_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
_______________________________________________
meep-discuss mailing list
meep-discuss@ab-initio.mit.edu
http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss


_______________________________________________
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