HyPhy message board
http://www.hyphy.org/cgi-bin/hyphy_forums/YaBB.pl
HYPHY Package >> HyPhy feedback >> SP installation
http://www.hyphy.org/cgi-bin/hyphy_forums/YaBB.pl?num=1272907754

Message started by itaymay on May 3rd, 2010 at 10:29am

Title: SP installation
Post by itaymay on May 3rd, 2010 at 10:29am
Hi,

I am trying to install hyphy as a single threaded on a Linux cluster but I am getting some error messages in the linking stage (note that the MP2 version compiled successfully). Am I missing something? This is the message I got:

$sh build.sh SP
Linux
Checking for curl
Curl seems to be present
+--------------------------------------+
|Building a single threaded HYPHYKernel|
+--------------------------------------+
COMPILER=g++, gcc
COMPILER_FLAGS= -w -c -fsigned-char -O3 -fpermissive -I/home/mayrose/bin/hyphy/hyphy/HYPHY_SP/Source -I/home/m
ayrose/bin/hyphy/hyphy/HYPHY_SP/Source/SQLite -D INTPTR_TYPE=long -D __UNIX__  -D _SLKP_LFENGINE_REWRITE_
File baseobj.cpp is up to date
File batchlan2.cpp is up to date
File batchlan.cpp is up to date
File bayesgraph2.cpp is up to date
File bayesgraph.cpp is up to date
File bgm2.cpp is up to date
File bgm.cpp is up to date
File calcnode2.cpp is up to date
File calcnode.cpp is up to date
File category.cpp is up to date
File error.cpp is up to date
File fisher_exact.cpp is up to date
File HYNetInterface.cpp is up to date
File hyphyunixutils.cpp is up to date
File likefunc2.cpp is up to date
File likefunc.cpp is up to date
File list.cpp is up to date
File matrix.cpp is up to date
File Net.cpp is up to date
File nexus.cpp is up to date
File parser2.cpp is up to date
File parser.cpp is up to date
File polynoml.cpp is up to date
File regex.cpp is up to date
File scfg.cpp is up to date
File sequence.cpp is up to date
File site.cpp is up to date
File strings.cpp is up to date
File main-unix.cxx is up to date
SQLite File sqlite3.c is up to date
Linking HYPHY
g++ -w -fsigned-char -o HYPHY obj_SP/baseobj.cpp.o obj_SP/batchlan2.cpp.o obj_SP/batchlan.cpp.o obj_SP/bayesgr
aph2.cpp.o obj_SP/bayesgraph.cpp.o obj_SP/bgm2.cpp.o obj_SP/bgm.cpp.o obj_SP/calcnode2.cpp.o obj_SP/calcnode.c
pp.o obj_SP/category.cpp.o obj_SP/error.cpp.o obj_SP/fisher_exact.cpp.o obj_SP/HYNetInterface.cpp.o obj_SP/hyp
hyunixutils.cpp.o obj_SP/likefunc2.cpp.o obj_SP/likefunc.cpp.o obj_SP/list.cpp.o obj_SP/main-unix.cxx.o obj_SP
/matrix.cpp.o obj_SP/Net.cpp.o obj_SP/nexus.cpp.o obj_SP/parser2.cpp.o obj_SP/parser.cpp.o obj_SP/polynoml.cpp
.o obj_SP/regex.cpp.o obj_SP/scfg.cpp.o obj_SP/sequence.cpp.o obj_SP/site.cpp.o obj_SP/sqlite3.c.o obj_SP/stri
ngs.cpp.o -lssl -lcrypto -lcurl -lm -ldl
obj_SP/sqlite3.c.o: In function `pthreadMutexTry':
sqlite3.c:(.text+0x3275): undefined reference to `pthread_mutex_trylock'
obj_SP/sqlite3.c.o: In function `pthreadMutexAlloc':
sqlite3.c:(.text+0x10a05): undefined reference to `pthread_mutexattr_init'
sqlite3.c:(.text+0x10a12): undefined reference to `pthread_mutexattr_settype'
sqlite3.c:(.text+0x10a25): undefined reference to `pthread_mutexattr_destroy'
obj_SP/sqlite3.c.o: In function `findLockInfo':
sqlite3.c:(.text+0x10e12): undefined reference to `pthread_create'
sqlite3.c:(.text+0x10f4e): undefined reference to `pthread_join'
collect2: ld returned 1 exit status
Finished



Thanks!
Itay


Title: Re: SP installation
Post by Sergei on May 3rd, 2010 at 10:32am
Hi Itay,

Good catch. The SP build will break because I included a multi-threaded version of SQLite (an embedded database engine) in the source. Just paste in the long g++ call into the console and add -lpthread to the end of the arguments and you should get rid of the errors. HyPhy will be single threaded and it accesses SQLite from a single thread at a time, so this should achieve the desired functionality. I will add a fix to the build script.

Sergei

Title: Re: SP installation
Post by itaymay on May 3rd, 2010 at 10:52am
thanks! That solved it.
I also tried to run the MP2 version on a cluster node with 16 total CPUs, of which 8 are already occupied. After running hyphy the load raised from 8 to 24 (that is - more than available). It seems that hyphy will allocate the total number of CPUs the node has instead of the number of free CPUs. Is there a way to specify hyphy to allocate only the number of free CPUs, or alternatively, to specify the max number it can allocate?  

Itay

Title: Re: SP installation
Post by Sergei on May 3rd, 2010 at 11:12am
Hi Itay,

You are correct: by default HyPhy will spawn as many threads as there are available processors.
You can limit the maximum number to n by supplying a CPU=n command line argument, e.g.

[code]
$HYPHYMP CPU=8
[/code]

Sergei

Title: Re: SP installation
Post by itaymay on May 3rd, 2010 at 11:16am
thanks. I'll try that

Itay

HyPhy message board » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2024. All Rights Reserved.