From: Vadim A <ast...@nc...> - 2013-03-05 20:13:14
|
Dear Subha. I was trying three different ways to install MOOSE: without HDF5, with HDF5 and with MPI Unfortunatelly, I did fail in all. Here the list of problems which we have. We would very appreciate you comments or suggestions what we might missing here. (1) First I did make BUILD=release USE_HDF5=0 g++ -O3 -pthread -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER -I /home/diag/opt/openmpi/1.4.3/gnu/include -DSVN_REVISION=\"4401M\" -DLINUX -DUSE_GSL -I /home/diag/opt/gsl/1.15/gnu/include/ basecode/_basecode.o msg/_msg.o shell/_shell.o biophysics/_biophysics.o hsolve/_hsolve.o randnum/_randnum.o scheduling/_scheduling.o builtins/_builtins.o device/_device.o kinetics/_kinetics.o ksolve/_ksolve.o regressionTests/_rt.o utility/_utility.o geom/_geom.o mesh/_mesh.o manager/_manager.o signeur/_signeur.o -L/usr/lib -L/usr/local/lib -lpthread -L/lib64 -L/usr/lib64 -L/usr/lib -L/home/diag/opt/gsl/1.15/gnu/lib/ -lgsl -lgslcblas -lm -o moose And getting a lot of error like this: builtins/_builtins.o: In function `HDF5WriterBase::setMode(unsigned int)': (.text+0x11f40): undefined reference to `H5check_version' ………………. builtins/_builtins.o:(.data.rel.ro._ZTVN3MPI8DatatypeE[vtable for MPI::Datatype]+0x78): undefined reference to `MPI::Datatype::Free()' collect2: ld returned 1 exit status (2) Then We have installed HDF5 1.8.9 and I was trying to do build release: make BUILD=release It seems that all libs get compiled and it can find HDF5 1.8.9 All Libs compiled g++ -O3 -pthread -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER -I /home/diag/opt/openmpi/1.4.3/gnu/include -DSVN_REVISION=\"4401M\" -DLINUX -DUSE_GSL -I /home/diag/opt/gsl/1.15/gnu/include/ -DUSE_HDF5 -DH5_NO_DEPRECATED_SYMBOLS -I /home/diag/opt/hdf5/1.8.9/gnu/openmpi/include basecode/_basecode.o msg/_msg.o shell/_shell.o biophysics/_biophysics.o hsolve/_hsolve.o randnum/_randnum.o scheduling/_scheduling.o builtins/_builtins.o device/_device.o kinetics/_kinetics.o ksolve/_ksolve.o regressionTests/_rt.o utility/_utility.o geom/_geom.o mesh/_mesh.o manager/_manager.o signeur/_signeur.o -L/usr/lib -L/usr/local/lib -lpthread -L/lib64 -L/usr/lib64 -L/usr/lib -L/home/diag/opt/gsl/1.15/gnu/lib/ -lgsl -lgslcblas -lm -lhdf5 -L/home/diag/opt/hdf5/1.8.9/gnu/openmpi/lib -o moose but it complain about a lot of "undefined references like this: builtins/_builtins.o:(.data.rel.ro._ZTVN3MPI8DatatypeE[vtable for MPI::Datatype]+0x78): undefined reference to `MPI::Datatype::Free()' collect2: ld returned 1 exit status make: *** [moose] Error 1 Looks like we still missing something. Should we have exactly same HDF5 library as you are using -> libhdf5-serial ? (3) Also I did try to compile with MPI: make BUILD=release USE_MPI=1 All Libs compiled mpicxx -O3 -pthread -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER -I /home/diag/opt/openmpi/1.4.3/gnu/include -DSVN_REVISION=\"4401M\" -DLINUX -DUSE_MPI -DMPICH_IGNORE_CXX_SEEK -DUSE_GSL -I /home/diag/opt/gsl/1.15/gnu/include/ -DUSE_HDF5 -DH5_NO_DEPRECATED_SYMBOLS -I /home/diag/opt/hdf5/1.8.9/gnu/openmpi/include basecode/_basecode.o msg/_msg.o shell/_shell.o biophysics/_biophysics.o hsolve/_hsolve.o randnum/_randnum.o scheduling/_scheduling.o builtins/_builtins.o device/_device.o kinetics/_kinetics.o ksolve/_ksolve.o regressionTests/_rt.o utility/_utility.o geom/_geom.o mesh/_mesh.o manager/_manager.o signeur/_signeur.o -L/usr/lib -L/usr/local/lib -lpthread -L/lib64 -L/usr/lib64 -L/usr/lib -L/home/diag/opt/gsl/1.15/gnu/lib/ -lgsl -lgslcblas -lm -lhdf5 -L/home/diag/opt/hdf5/1.8.9/gnu/openmpi/lib -o moose But getting error: moosemodule.cpp:80:31: error: numpy/arrayobject.h: No such file or directory But We have "numpy 1.6" loaded. Should we set some other flag or should we have different version of "numpy" ? Thanks a lot in advance for any advice. Vadim. On Mar 2, 2013, at 10:58 PM, Subhasis Ray wrote: > Hi, > In the serial version, HDF5 1.8.9 should work fine. It is used in HDF5DataWriter class to incrementally dump data into an HDF5 file. It was implemented to reduce memory usage for long running simulations generating gigabytes of data. > Best, > Subha > > > On Sun, Mar 3, 2013 at 1:22 AM, Majumdar, Amitava <maj...@sd...> wrote: > If HDF5 version is the only issue, we can make HDF51.8.0 or higher available (actually we have HDF5 1.8.9 available > on another parallel computer at SDSC). > > -Amitvai > From: Subhasis Ray [ray...@gm...] > Sent: Saturday, March 02, 2013 1:35 AM > To: Vadim A > > Cc: Niraj Dudani; Yoshimoto, Kenneth; Majumdar, Amitava; moo...@li... > Subject: Re: [moose-generic] MOOSE_installation_problem > > Dear Vadim, > I would recommend that you avoid the MPI build at this point. The errors again are due to a minor issue with HDF5 library that can vary from package to package. These functions were introduced in HDF5 1.8.0. Either you need the same or a newer version installed. Otherwise, you can skip HDF5 support (which is somewhat experimental anyways) altogether by passing USE_HDF5=0 to "make" command. > Hope this helps, > Subha > > > On Sat, Mar 2, 2013 at 5:35 AM, Vadim A <ast...@nc...> wrote: > Dear Subha. > > I set CXXFLAG to include mpi.h in "ifeq ($(BUILD),release)" > > > like you've suggested and it seems that it can find all libraries now but unfortunately > > > make BUILD=release USE_MPI=1 > > > produce another error > > > mpicxx -O3 -pthread -fpermissive -fno-strict-aliasing -fPIC -Wall -Wno-long-long -pedantic -DNDEBUG -DUSE_GENESIS_PARSER -I /home/diag/opt/openmpi/1.4.3/gnu/include -DSVN_REVISION=\"4401M\" -DLINUX -DUSE_MPI -DMPICH_IGNORE_CXX_SEEK -DUSE_GSL -I /home/diag/opt/gsl/1.15/gnu/include/ -DUSE_HDF5 -DH5_NO_DEPRECATED_SYMBOLS -I /home/diag/opt/hdf5/1.6/gnu/include -I. -I../basecode -I../msg HDF5DataWriter.cpp -c > > > > > ../basecode/Conv.h:1009: warning: converting to 'unsigned int' from 'const double' > HDF5DataWriter.cpp: In member function 'hid_t HDF5DataWriter::get_dataset(std::string)': > HDF5DataWriter.cpp:222: error: 'H5Gcreate2' was not declared in this scope > HDF5DataWriter.cpp:225: error: 'H5Gopen2' was not declared in this scope > HDF5DataWriter.cpp:258: error: 'H5Dopen2' was not declared in this scope > > > > > > HDF5 and openmpi libraries included. Do I still missing something ? > > Thanks a lot in advance for any comments. > > Vadim. > > > > > > On Feb 28, 2013, at 7:37 PM, Subhasis Ray wrote: > >> >> >> >> Do not enable MPI unless you want to try the parallel version. To enable MPI, you have to pass the argument "USE_MPI=1" to make command. >> >> >> >> # Here we automagically change compilers to deal with MPI. >> ifdef USE_MPI >> CXX = mpicxx >> # CXX = /usr/local/mvapich2/bin/mpicxx >> PARALLEL_DIR = /home/diag/opt/openmpi/1.4.3/gnu/ #parallel >> PARALLEL_LIB = /home/diag/opt/openmpi/1.4.3/gnu/lib/ #parallel/parallel.o >> else >> CXX = g++ >> # CXX = CC # Choose between Solaris CC and g++ on a Solaris machine >> endif >> >> >> >> In the above, the PARALLEL_DIR and PARALLEL_LIB are MOOSE source directory and object file for the parallel version. They are not to be modified. >> >> >> >> We are using "openmpi" which does not have "parallel.o" >> >> As mentioned above, parallel.o will be generated by the build process. It looks like your version of hdf5 includes mpi.h and the compiler cannot find it. So you have to add -I{location of mpi.h} to the CXXFLAGS variable somewhere.Depending on your build type, you can append this to the CXXFLAG assignment under : >> >> ifeq ($(BUILD),debug) >> >> and/or under >> >> ifeq ($(BUILD),release) >> >> >> Best, >> Subha >> > > > |