linux下安装intel的tbb库

1、https://github.com/01org/tbb下载最新release版tbb源码包。

2、我的环境为CentOS6.6-x64 +gcc4.82, 编译会有如下报错:

“Created ../build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release directory make -C "../build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release" -r -f ../../build/Makefile.tbb cfg=release
make[1]: Entering directory `/home/XXX/WorkSpace/tbb-2018_U5/build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release' ../../build/Makefile.tbb:32: CONFIG: cfg=release arch=intel64 compiler=gcc target=linux runtime=cc4.8.2_libc2.12_kernel2.6.32
g++ -o x86_rtm_rw_mutex.o -c -MMD -DDO_ITT_NOTIFY -g -O2 -DUSE_PTHREAD -m64 -mrtm -fPIC -D__TBB_BUILD=1 -Wall -Wno-parentheses -Wno-non-virtual-dtor -I../../src -I../../src/rml/include -I../../include ../../src/tbb/x86_rtm_rw_mutex.cpp
/tmp/ccYCbgzf.s: Assembler messages:
/tmp/ccYCbgzf.s:25: Error: no such instruction: `xend'
/tmp/ccYCbgzf.s:238: Error: no such instruction: `xbegin .L20'
/tmp/ccYCbgzf.s:357: Error: no such instruction: `xabort $255'
/tmp/ccYCbgzf.s:503: Error: no such instruction: `xbegin .L47'
/tmp/ccYCbgzf.s:617: Error: no such instruction: `xabort $255'
make[1]: *** [x86_rtm_rw_mutex.o] 错误 1”

3、参考如下资料,修改build/linux.gcc.inc注释掉-mrtm编译项。
https://blog.csdn.net/u010793236/article/details/74010571
https://software.intel.com/zh-cn/forums/intel-threading-building-blocks/topic/558688
https://github.com/COMBINE-lab/salmon/issues/20

4、回到解压目录重新make编译成功,用root用户安装到系统环境下。
(1)添加tbb变量

./generate_tbbvars.sh
./tbbvars.sh

(2)安装到系统环境
将.so库移至/usr/lib,将头文件移至 /usr/local/include,运行ldconfig
(so文件在如build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release 目录下)
(tbb-XX为解压目录)

cd ~/Work/tbb-XX/include && cp *.* /usr/local/include
cd ~/Work/tbb-XX/build/linux_intel64_gcc_cc4.8.2_libc2.12_kernel2.6.32_release/ && cp lib*.so* /usr/lib

5、编译examples/pipeline/square 运行报错

"pthread_attr_setstacksize: Invalid argument"

6、搜索“tbb pthread_attr_setstacksize: Invalid argument”,可参考如下资料,到/usr目录下找到了旧的tbb头文件和库文件,bak掉.重新运行ldconfig。
https://github.com/BradnerLab/pipeline/issues/49
https://software.intel.com/en-us/forums/intel-threading-building-blocks/topic/288253

7、重新编译examples/pipeline/square ,运行正常。

serial run time = 0.165963
parallel run time = 0.0823397
elapsed time : 0.323785 seconds

总结:centeos6.6x64+gcc4.8.2安装tbb库不支持gcc编译-mrtm编译项,系统目录下旧的tbb头文件、库备份后删掉。

你可能感兴趣的:(linux下安装intel的tbb库)