David Lively <davidlively@...> writes: > > > Thanks, Arthur. I finally managed to get this working yesterday. I couldn't find a prebuilt binary for our installation that contained H5 support, so I had to build Meep from the source.Tracking down all of the nested library requirements - - meep needs h5utils which needs hdf5 which needs blah blah blah - was a bit of a chore as there doesn't seem to be a comprehensive list anywhere. Fortunately, the INSTALL and README files with each library were helpful in iteratively building a list. My (Hopefully) Comprehensive Meep Install Process: > -----------------------------------#1. Required libraries:jpeg-8b (libjpg) > libpng-1.4.4 > gmp-5.0.1guile-1.8.7h5utils-1.12.1hdf5-1.8.5-patch1libctl-3.1libmatheval- 1.1.7libtool-2.4mvapich2-1.4.1.meep-1.1.1# The configure/make/install order was, I think:libtool > libjpglibpnggmplibmathevallibctlguilehdf5h5utilsand, finally, Meep.# I created a ~/install/meep_requirements folder, into which I downloaded each required tar file:cd ~/install/meep_requirements > wget http://<web and folder path>/tar.gz# I may have the order slightly off, but the ./configure script in each install will generate warnings when a library cannot be found, in which case that dependency (obviously) must be built first.# Also, as Arthur said, it's important to set the environment flags (Linux syntax):#1. As Arthur said, set the required environment variables for compilation and linking. These are used by gcc, mpicc and make:export CPPFLAGS="-I/usr/include -I~/include" #separate multiple folders with spaces and prefix each with -I (capital i)export LD_FLAGS="-L/usr/lib -L~/lib" # separate multiple folders with spaces and prefix each with -L > export LD_LIBRARY="/usr/lib:~/lib" # separate multiple entries with a colon, just as when setting the PATH environment variable.#2 build each library in turncd ~/install/meep_requirements/jpeg-8b > ./configure --prefix=/home/myUserName# When compiling each library in turn, if you are not installing into the default /usr/* folders, be sure to add the option "--prefix=<someFolder>" when running each ./configure script../configure --prefix=/home/myUserNamemakemake install# The configure script will prefix each reference to lib or include with give entry. It's not necessary to pass "--prefix" to "make," "make check" or "make install".# If you're using Meep in parallel, when building hdf5, be sure to use mpicc from your MPI library installation. Before building hdf5, set the environment variable:export CC="/usr/mpi/gcc/mvapich2-1.4.1/bin/mpicc" > ./configure --with-parallelmakemake install# Be sure to clear this setting after building hdf5. export CC=# Call meep. I created an ~/mpi folder containing configuration data common to all MPI processes (for mvapich2 - this may vary for different MPI libaries):cat ~/mpi/machinesinode1inode2inode3inode4inode5inode6inode7inode8inode9inode10 inode11inode12inode13inode14inode15inode16# I created a shell script called "go" to run simulations with all required parameterscat ~/meep/gotime /usr/mpi/gcc/mvapich2-1.4.1/bin/mpirun_rsh -ssh -np 128 -hostfile /users/myUserName/mpi/machines /path/to/meep-mpi/binary $1 | tee $1.out# This is called via:~/meep/go myFile.ctl#Bada-bing, bada-boom, the sim should be running.#We had some issues getting Infiniband running (required by mvapich). Our administrator took care of those issues so I'm not sure exactly what was involved. We also had to generate RSA keys for each user for each node in the cluster so that MPI could ssh into each node when starting processes and not be prompted for a password.#Also, for MPD (MPI daemon, which must be running on all nodes), you may require "secret word" file in the user's home directory. Filename and contents depend on the MPI library used. For mvapich, I created:cat ~/.mpd.confMPD_SECRETWORD=PutAnythingHere# If your home directory is shared amongst nodes, as it should be for all of this to work, that file only needs to be created once.I realize this is a very verbose post, and the list may not be the appropriate place to post this, but it contains much information which, as far as I can tell, is not available in the wiki. Hopefully it will help someone else in the future.Cheers,David > On Wed, Nov 24, 2010 at 7:47 AM, Arthur Thijssen <thijssen.arthur- [email protected]> wrote: > Hi David, > > During configure you will get a warning stating that the required libraries were not detected at the given location and MEEP will compile without hdf5 support. You need to check the configure output carefully. > > > > I always set the LDFLAGS and CPPFLAGS, for me this would be: > > export LDFLAGS="-L/usr/local/gnu_builds/blas - L/usr/local/gnu_builds/lapack -L/usr/local/gnu_builds/hdf5/mpi/lib - L/usr/local/gnu_builds/harminv/lib - L/usr/local/gnu_builds/libctl/lib"export CPPFLAGS="- I/usr/local/gnu_builds/gsl/include -I/usr/local/gnu_builds/gsl-1.13/include -I/usr/local/gnu_builds/hdf5/mpi/include - I/usr/local/gnu_builds/libctl/include - I/usr/local/gnu_builds/harminv/include" > > > > note that blas, lapack, harminv and libctl are not required but can be useful. From what I can see in the commands you posted, you are not configuring with libctl, although it's not required, it means you can't run MEEP with the Scheme interface. > > > > then I run configure: ./configure --prefix=$HOME/source/meep-1.1.1/src -- with-mpi --with-libctl=/usr/local/gnu_builds/libctl/share/libctl/ > > Hope it helps, > > Arthur > > > > > On 23 November 2010 17:07, David Lively <davidlively- [email protected]> wrote: > > > > > > We compiled/installed Meep with:./configure --prefix=/grid/software/meep- 1.1.1 MPICXX=/usr/mpi/gcc/mvapich2-1.4.1/bin/mpicxx MPILIBS=/usr/mpi/gcc/mvapich2-1.4.1/lib --with-mpi --with- hdf5=/grid/software/hdf5-1.8.3And everything appears to work correctly, until it gets to the part where it needs to save an H5 file. Then, I get the wonderful error:creating output file "./smu-eps-000000.00.h5"...meep: meep: not compiled with HDF5, required for HDF5 outputmeep: meep: > > meep: meep: meep: not compiled with HDF5, required for HDF5 outputnot compiled with HDF5, required for HDF5 outputmeep: not compiled with HDF5, required for HDF5 outputI'm perplexed as the -with-hdf5 flag was included when we compiled. Suggestions? I'm having to go back and forth with our administrator with this so it's difficult to perform any real diagnostics.D > > _______________________________________________meep-discuss mailing listmeep-discuss- [email protected]http://ab- initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss > > > > > > > > > _______________________________________________ > meep-discuss mailing list > meep-discuss@... > http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss
I am on Ubuntu 14.04.1 LTS 64-bit and having really similar issues. By passing the location of the HDF5 libraries, I managed to get the configuration step with only one warning as follows: ongun@vesnog:~/Downloads/meep-1.2.1$ ./configure --with-mpi --with- hdf5=/usr/lib/x86_64-linux-gnu/ > configure.out configure: WARNING: Missing GNU GSL library...Bessel-function field initialization will not be supported. Then I invoke the regular make and make install commands which seem to successfully compile and install Meep 1.2.1. However, after installation I noticed that it was not able to process with HDF5 output. May you help me as I am really unfamiliar with compilation from source on Linux? I think I have installed all the dependencies: libctl, hdf5tools, mpi, latex2html, libgsl, lblas, lapack; yet it still complains about the GNU scientific library. How can I remedy these issues? I am not that tech-savvy and I do not know how to alter the make and configure files. By the way I tried to subscribe to this list to able to post new threads, but I was not able to post anything. Is this normal, does the procedure take more than a few days? Thanks in advance for your assistance Ongun Arisev _______________________________________________ meep-discuss mailing list [email protected] http://ab-initio.mit.edu/cgi-bin/mailman/listinfo/meep-discuss

