From: Vadim A <ast...@nc...> - 2013-03-11 18:52:10
|
Hi Subha. I was able to BUILD release and now trying to compile the code with all ;attest configurations. But it try to install moose on the cluster python folder which is not allowed. What is the way to provide a path for my home directory to install "MOOSE" should I modify Make script ? Best, Vadim. On Mar 8, 2013, at 7:33 PM, Subhasis Ray wrote: > Hi, > You seem to have a non-standard location for Python library. You should update this: > > PYTHON_LDFLAGS := -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -L{location of libpython2.7.so} > > Best, > Subha > > > On Sat, Mar 9, 2013 at 5:36 AM, Vadim A <ast...@nc...> wrote: > I add those paths in Makefile > > PYTHON_INCLUDES := -I/home/diag/opt/python2.7/include/python2.7 -I/home/diag/opt/python2.7/include/python2.7 -I/home/diag/opt/python2.7/lib/python2.7/site-packages/numpy/core/include/ > > PYTHON_LDFLAGS := -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic > > > Python.h and all numpy header are there > > and build went through further > > but now complain that "/usr/bin/ld: cannot find -lpython2.7" > > > Is there another place where we should set some flags ? > > > g++ -shared -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -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/ -DPYMOOSE -I/home/diag/opt/python2.7/include/python2.7 -I/home/diag/opt/python2.7/include/python2.7 -I/home/diag/opt/python2.7/lib/python2.7/site-packages/numpy/core/include/ -o python/moose/_moose.so 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 pymoose/_pymoose.o basecode/_basecode_pymoose.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 > > /usr/bin/ld: skipping incompatible /usr/lib/libpthread.so when searching for -lpthread > /usr/bin/ld: skipping incompatible /usr/lib/libpthread.a when searching for -lpthread > /usr/bin/ld: skipping incompatible /usr/lib/libdl.so when searching for -ldl > /usr/bin/ld: skipping incompatible /usr/lib/libdl.a when searching for -ldl > /usr/bin/ld: skipping incompatible /usr/lib/libutil.so when searching for -lutil > /usr/bin/ld: skipping incompatible /usr/lib/libutil.a when searching for -lutil > /usr/bin/ld: cannot find -lpython2.7 > > > > Thanks a lot in advance for any advice. > > V. > > On Mar 6, 2013, at 9:56 PM, Subhasis Ray wrote: > >> Dear Vadim, >> You can change the following with the corresponding values for your system: >> >> ~ Line # 339 and 340 ... >> >> PYTHON_INCLUDES := $(shell python-config --includes) >> PYTHON_LDFLAGS := $(shell python-config --ldflags) >> >> And as I suspected, your system does not seems have python-config installed (standard locations are /usr/bin or /usr/local/bin) because that is the command we are using in the Makefile to get the flags. It is supposed to come with Python development library, which is also a prerequisite for building moose. So please make sure you have that installed (does locate Python.h show something like: /usr/include/python2.7/Python.h? ). >> >> Best, >> Subha >> >> >> On Thu, Mar 7, 2013 at 6:16 AM, Vadim A <ast...@nc...> wrote: >> Also this example is not clear where you've mentioned >> >> >> "...and add the following to LIBS (output of python-config --ldflags) updated according to local system paths: >> >> -L/usr/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions >> >> " >> >> >> I do not see "python2.7/config" in our system >> >> >> Vadim. >> >> On Mar 6, 2013, at 4:31 PM, Vadim A wrote: >> >>> Hi Subha. >>> >>> Just wan to clarify one think. We decided to concentrate on simples installation for now and do the following steps: >>> >>> make clean >>> make BUILD=release USE_HDF5=0 >>> >>> >>> And it still give me the error >>> >>> 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/ -DPYMOOSE -I/home/diag/opt/python2.7/include/python2.7 -I/home/diag/opt/python2.7/include/python2.7 moosemodule.cpp -c >>> >>> moosemodule.cpp:80:31: error: numpy/arrayobject.h: No such file or directory >>> >>> >>> >>> But we loaded that module and it is located in our system here : /home/diag/opt/python2.7/lib/python2.7/site-packages/numpy/core/include/numpy/arrayobject.h >>> >>> >>> You've suggested to add it to CXXFLAGS flags. But where in the Makefile should we do that ? >>> >>> >>> Best regards, >>> >>> Vadim. >>> >>> >>> >>> On Mar 5, 2013, at 7:43 PM, Subhasis Ray wrote: >>> >>>> Dear Vadim, >>>> Did you run "make clean" before rebuilding each time? If you specify USE_HDF5=0, then the entire content of HDF5 related files get excluded from the compilation process. But from the build log for the first case it seems the object files were compiled with HDF5 support but the linking is being done without. >>>> In the second case, is it possible that your version of HDF5 library is linked to a different MPI library than what you set in MOOSE Makefile? Otherwise, it is also possible that HDF5 lib is dynamically linked to MPI and when you are building MOOSE without MPI support the MPI-lib location is not passed to compiler. In that case you may want to use mpicxx as the compiler at line 250: >>>> >>>> # Here we automagically change compilers to deal with MPI. >>>> ifdef USE_MPI >>>> CXX = mpicxx >>>> # CXX = /usr/local/mvapich2/bin/mpicxx >>>> # PARALLEL_DIR = parallel >>>> # PARALLEL_LIB = parallel/parallel.o >>>> else >>>> CXX = g++ # <-- replace with mpicxx >>>> # CXX = CC # Choose between Solaris CC and g++ on a Solaris machine >>>> endif >>>> >>>> >>>> For the third case, we use the command: >>>> >>>> python-config --includes >>>> >>>> in the Makefile in order to get the location of header files for numpy and python. Looks like that does not work on your system. So you need to explicitly add >>>> -I/usr/include/python2.7 -I/usr/include/python2.7 >>>> >>>> and >>>> >>>> -I{location of numpy/arrayobject.h} >>>> >>>> to CXXFLAGS >>>> >>>> and add the following to LIBS (output of python-config --ldflags) updated according to local system paths: >>>> >>>> -L/usr/lib/python2.7/config -lpthread -ldl -lutil -lm -lpython2.7 -Xlinker -export-dynamic -Wl,-O1 -Wl,-Bsymbolic-functions >>>> >>>> >>>> hth, >>>> Subha >>>> >>>> >>>> On Wed, Mar 6, 2013 at 1:43 AM, Vadim A <ast...@nc...> wrote: >>>> 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 >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>> >> >> > > |