Linux下TBB安装及编译

来源:互联网 发布:windows电脑翻墙失败 编辑:程序博客网 时间:2024/05/29 19:56

TBB,Thread Building Blocks,线程构建模块,是Intel公司开发的并行编程开发的工具。其提供C++模版库,用户不必关注线程,而专注任务本身。抽象层仅需很少的接口代码,性能上毫不逊色。且能够灵活地适合不同的多核平台,适合于跨平台的移植(如Linux, Windows, Mac)


1)在官网下载tbb源码,如下载tar.gz格式
        tar -zxvf tbbxx.tar.gz


2)进入解压缩目录下,执行make。

     若编译期间报出以下错误:

/tmp/ccxNhOc9.s: Assembler messages:/tmp/ccxNhOc9.s:615: Error: no such instruction: `xtest'/tmp/ccxNhOc9.s:643: Error: no such instruction: `xabort $255'/tmp/ccxNhOc9.s:652: Error: no such instruction: `xabort $255'/tmp/ccxNhOc9.s:658: Error: no such instruction: `xend'/tmp/ccxNhOc9.s:825: Error: no such instruction: `xbegin .L56'/tmp/ccxNhOc9.s:988: Error: no such instruction: `xbegin .L71'/tmp/ccxNhOc9.s:1216: Error: no such instruction: `xabort $255'make[1]: *** [x86_rtm_rw_mutex.o] Error 1make[1]: *** Waiting for unfinished jobs....make[1]: Leaving directory `/user_data/.tmp/linux_intel64_gcc_cc4.9.1_libc2.12_kernel2.6.32_debug'make: *** [tbb] Error 2

    则表明当前的gcc编译器不支持-mrtm。则可行的方案是注释以下几行。打开tbb目录build/linux.gcc.inc文件,注释以下几行。

# gcc 4.8 and later support RTM intrinsics, but require command line switch to enable themifneq (,$(shell gcc -dumpversion | egrep  "^4\.[8-9]"))    RTM_KEY = -mrtm#endif

    然后重新编译 make即可。


3)添加tbb变量

cd buildchmod +x *.shsh generate_tbbvars.shsh tbbvars.sh

4)将.so库移至/usr/lib,将头文件移至 /usr/local/include

cd linux_intel64_gcc_你的版本_releasecp *.so /usr/libcp *.so.2 /usr/lib/sbin/ldconfig//回到解压缩目录下 /usr/local/include//将头文件移至 /usr/local/includecd includecp *.* /usr/local/include

5)接下来检验tbb是否安装成功

cd ../examples/pipeline/square
make

如果是下面的提示,则表示tbb环境配置成功

g++ -O2 -DNDEBUG  -o square square.cpp gen_input.cpp -ltbb -lrt ./square 0 input.txt output.txtserial run   time = 0.249843parallel run time = 0.0304956elapsed time : 0.399366 seconds
原创粉丝点击