gvbarroso / iSMC

The integrated Sequentially Markovian Coalescent
GNU General Public License v3.0
11 stars 3 forks source link

compilation colas error #5

Closed ChakrapaniNCBS closed 3 years ago

ChakrapaniNCBS commented 4 years ago

Hi,

I tried compiling latest iSMC code and getting following cblas error. Please help

iSMC]# /softwares/cmake-3.15.2/bin/cmake -DCMAKE_INSTALL_PREFIX=/softwares/BioPP -DUSE_LIBSIMPLEZIPHMM=/softwares/iSMC/simple-ziphmm CMake Warning: No source or binary directory provided. Both will be assumed to be the same as the current working directory, but note that this warning will become a fatal error in future CMake releases.

-- bpp-core 4.1.0 found: -- static lib: /softwares/BioPP/lib64/libbpp-core.a -- shared lib: /softwares/BioPP/lib64/libbpp-core.so.4.1.0 -- includes: /softwares/BioPP/include -- bpp-seq 12.0.0 found: -- static lib: /softwares/BioPP/lib64/libbpp-seq.a -- shared lib: /softwares/BioPP/lib64/libbpp-seq.so.12.0.0 -- includes: /softwares/BioPP/include -- bpp-phyl 12.0.0 found: -- static lib: /softwares/BioPP/lib64/libbpp-phyl.a -- shared lib: /softwares/BioPP/lib64/libbpp-phyl.so.12.0.0 -- includes: /softwares/BioPP/include -- simpleziphmm 1.0.0 found: -- static lib: /softwares/BioPP/lib64/libsimpleziphmm.a -- shared lib: /softwares/BioPP/lib64/libsimpleziphmm.so.1.0.0 -- includes: /softwares/BioPP/include -- Boost libraries found here: includes: /usr/include dynamic libraries: /usr/lib64/libboost_iostreams-mt.so;/usr/lib64/libboost_regex-mt.so -- Library z found here: includes: /usr/include dynamic libraries: /usr/lib64/libz.so -- Library bz2 found here: includes: /usr/include dynamic libraries: /usr/lib64/libbz2.so -- Library blas found here: includes: /usr/include dynamic libraries: /usr/lib64/libblas.so -- Configuring done -- Generating done -- Build files have been written to: /softwares/iSMC [root@pakeeza iSMC]# make [ 3%] Building CXX object src/CMakeFiles/ismc.dir/AbstractParametrizedMatrix.cpp.o [ 6%] Building CXX object src/CMakeFiles/ismc.dir/BackupListenerOv.cpp.o [ 10%] Building CXX object src/CMakeFiles/ismc.dir/BaumWelch.cpp.o [ 13%] Building CXX object src/CMakeFiles/ismc.dir/HmmStatesLibrary.cpp.o [ 17%] Building CXX object src/CMakeFiles/ismc.dir/MarkovModulatedSmc.cpp.o [ 20%] Building CXX object src/CMakeFiles/ismc.dir/MatrixOptimizationFunction.cpp.o [ 24%] Building CXX object src/CMakeFiles/ismc.dir/MmPsmc.cpp.o [ 27%] Building CXX object src/CMakeFiles/ismc.dir/MmSmcEmissionProbabilities.cpp.o [ 31%] Building CXX object src/CMakeFiles/ismc.dir/MmSmcTransitionProbabilities.cpp.o [ 34%] Building CXX object src/CMakeFiles/ismc.dir/MultipleMmPsmc.cpp.o [ 37%] Building CXX object src/CMakeFiles/ismc.dir/ParameterCategoryTransitions.cpp.o [ 41%] Building CXX object src/CMakeFiles/ismc.dir/PolymorphismData.cpp.o [ 44%] Building CXX object src/CMakeFiles/ismc.dir/Psmc.cpp.o [ 48%] Building CXX object src/CMakeFiles/ismc.dir/RelativeStopCondition.cpp.o [ 51%] Building CXX object src/CMakeFiles/ismc.dir/SequentiallyMarkovCoalescent.cpp.o [ 55%] Building CXX object src/CMakeFiles/ismc.dir/SmcDecodingWrapper.cpp.o [ 58%] Building CXX object src/CMakeFiles/ismc.dir/SmcEmissionProbabilities.cpp.o [ 62%] Building CXX object src/CMakeFiles/ismc.dir/SmcOptimizationWrapper.cpp.o [ 65%] Building CXX object src/CMakeFiles/ismc.dir/SmcTransitionProbabilities.cpp.o [ 68%] Building CXX object src/CMakeFiles/ismc.dir/Splines.cpp.o [ 72%] Building CXX object src/CMakeFiles/ismc.dir/SplinesModel.cpp.o [ 75%] Building CXX object src/CMakeFiles/ismc.dir/Vcf.cpp.o [ 79%] Building CXX object src/CMakeFiles/ismc.dir/Global.cpp.o [ 82%] Building CXX object src/CMakeFiles/ismc.dir/ismc.cpp.o [ 86%] Linking CXX executable ismc /softwares/BioPP/lib64/libsimpleziphmm.so.1.0.0: undefined reference to cblas_dgemm' /softwares/BioPP/lib64/libsimpleziphmm.so.1.0.0: undefined reference tocblas_dgemv' collect2: error: ld returned 1 exit status make[2]: [src/ismc] Error 1 make[1]: [src/CMakeFiles/ismc.dir/all] Error 2 make: *** [all] Error 2

gvbarroso commented 4 years ago

Hi, It's unclear to me what you are trying to do with the following:

-DUSE_LIBSIMPLEZIPHMM=/softwares/iSMC/simple-ziphmm

since this is meant to be a boolean choice (yes/no). Could you try that instead?

Thanks, Gustavo

ChakrapaniNCBS commented 4 years ago

Hi, Tried, but still it fails with same error.

libsimpleziphmm.so.1.0.0: undefined reference to cblas_dgemm' libsimpleziphmm.so.1.0.0: undefined reference tocblas_dgemv' collect2: error: ld returned 1 exit status make[2]: [src/ismc] Error 1 make[1]: [src/CMakeFiles/ismc.dir/all] Error 2

Can you suggest a fix. Thanks, CP

gvbarroso commented 4 years ago

I am sorry, but I cannot reproduce the error. Are you sure you followed all the steps in INSTALL.txt, including the installation of blas and cblas libraries?

ChakrapaniNCBS commented 4 years ago

Yes, followed INSTALL.txt hence there is no dependency error. It is failing only while linking libraries during compile. blas, cblas libraries are installed. Thanks,CPOn 14-Jul-2020 1:22 AM, Gustavo Valadares Barroso notifications@github.com wrote: I am sorry, but I cannot reproduce the error. Are you sure you followed all the steps in INSTALL.txt, including the installation of blas and cblas libraries?

—You are receiving this because you authored the thread.Reply to this email directly, view it on GitHub, or unsubscribe.

jydu commented 4 years ago

Hi,

Could you let us know which OS you are using and which compiler version?

Best,

Julien.

ChakrapaniNCBS commented 4 years ago

Hi,

OS is CentOS 7.2.1511 and compiler version is 4.8.5

Thanks,

CP

On 2020-07-14 12:39, Julien Y. Dutheil wrote:

Hi,

Could you let us know which OS you are using and which compiler version?

Best,

Julien.

-- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub [1], or unsubscribe [2].

Links:

[1] https://github.com/gvbarroso/iSMC/issues/5#issuecomment-658010904 [2] https://github.com/notifications/unsubscribe-auth/AGYJFVB2KSAH52UMHD3HZE3R3QADDANCNFSM4OWJBL3A

jydu commented 4 years ago

Hi,

I think the issue comes from there: this is a rather old configuration. In theory gcc 4.8 should work, but we developed iSMC with a more recent version (gcc 6 at least), which is probably more permissive. iSMC depends on ziphmm, which depends on blas, such chains of dependencies are usually error prone. You could try to compile iSMC statically (-DBUILD_STATIC=yes) and see if it would help by any chance. I will also try to upload a static executable, if we're lucky it might work out of the box on CentOS.

J.

ChakrapaniNCBS commented 4 years ago

Hi,

Tried building once again from the scratch by using gcc version 6.3.1 20170216 but still it fails.

86%] Linking CXX executable ismc /softwares/BioPP/lib64/libsimpleziphmm.so.1.0.0: undefined reference to cblas_dgemm' /softwares/BioPP/lib64/libsimpleziphmm.so.1.0.0: undefined reference to cblas_dgemv' collect2: error: ld returned 1 exit status

If you could provide me static executable, it will be a great help.

Thanks,

CP

On 2020-07-14 13:12, Julien Y. Dutheil wrote:

Hi,

I think the issue comes from there: this is a rather old configuration. In theory gcc 4.8 should work, but we developed iSMC with a more recent version (gcc 6 at least), which is probably more permissive. iSMC depends on ziphmm, which depends on blas, such chains of dependencies are usually error prone. You could try to compile iSMC statically (-DBUILD_STATIC=yes) and see if it would help by any chance. I will also try to upload a static executable, if we're lucky it might work out of the box on CentOS.

J.

-- You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub [1], or unsubscribe [2].

Links:

[1] https://github.com/gvbarroso/iSMC/issues/5#issuecomment-658024923 [2] https://github.com/notifications/unsubscribe-auth/AGYJFVF53N5TXRTFP75TAE3R3QD6TANCNFSM4OWJBL3A

jydu commented 4 years ago

Hi,

I will upload static executables asap, but in the meantime I came to remember a similar issue I had on my Mac. Maybe you could check that cmake has the right paths for the blas library. It is quite easy if you use ccmake: it should show sthg like

blas_INCLUDE_DIR                 /usr/local/opt/openblas/include           
blas_LIBRARY                     /usr/local/opt/openblas/lib/libblas.dylib

Can you check that these two variables are set properly to match your own installation? (on Centos the library should be libblas.so, .dylib is the macos equivalent) If they don't match, you can edit them directly with ccmake, this might solve the issue.

Julien.

jydu commented 4 years ago

Binaries uploaded. Please let us know whether it solved the issue!