linux下安装和使用tbb

linux下安装和使用tbb,第1张

线程构建模块(TBB)使您可以轻松编写并行C ++程序,这些程序可充分利用多核性能,可移植且可组合,并具有面向未来的可扩展性。 广泛用于任务并行的C ++模板库。 并行算法和数据结构,可扩展的内存分配和任务调度。 丰富的通用并行功能集,C ++ Windows *,Linux *,OS X *和其他 *** 作系统 选择一个稳定版本即可,我用的是tbb-2018_U3 https://github.com/01org/tbb/releases tar -zxvf tbb-2018_U3.tar.gz cd tbb-2018_U3 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 1 make[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 them ifneq (,$(shell gcc -dumpversion | egrep  "^4\.[8-9]"))     RTM_KEY = -mrtm #endif cd build chmod +x*.sh sh generate_tbbvars.sh sh tbbvars.sh cd linux_intel64_gcc_你的版本_release cp *.so /usr/lib64 cp *.so.2 /usr/lib64 ldconfig //回到解压缩目录下 cp -r include/* /usr//include //进入解压目录下的examples目录 make 经过一段时间运行如下说明测试通过 serial run time = 0.21682 parallel run time = 0.0694263 elapsed time : 0.444736 seconds make[1]: Leaving directory `/home/heweiwei/test/tbb-2018_U3/examples/pipeline/square' ------------------------ test_all/fibonacci/all ------------------------ make -C test_all/fibonacci  -f Makefile all CXX="g++"    make[1]: Entering directory `/home/heweiwei/test/tbb-2018_U3/examples/test_all/fibonacci' g++ -O2 -DNDEBUG  -m64 -L/home/heweiwei/test/tbb-2018_U3/examples/../build/linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0_release -L/home/heweiwei/test/tbb-2018_U3/examples/../build/linux_intel64_gcc_cc4.8.5_libc2.17_kernel3.10.0_debug -o fibonacci Fibonacci.cpp -ltbb -lpthread -lrt -lrt ./fibonacci TEST PASSED make[1]: Leaving directory `/home/heweiwei/test/tbb-2018_U3/examples/test_all/fibonacci' #include <tbb/tbb.h> #include<iostream> using namespace std using namespace tbb int main() {         int i = 0         concurrent_queue<int>s_tbb_queue         for (i = 10i <15 i ++)         {                 s_tbb_queue.push(i)         }         concurrent_queue<int>::iterator iter         for(iter = s_tbb_queue.unsafe_begin() iter != s_tbb_queue.unsafe_end() iter++)         {                 cout<<"value="<<*iter<<endl         }         cout<<"queue_size="<<s_tbb_queue.unsafe_size()<<endl         int tmp = 0         bool res = 0         for (i = 0i <8 i++)         {                 res = s_tbb_queue.try_pop(tmp)                 if(res)                 {                         cout<<"pop_value="<<tmp<<endl                 }                 else                 {                         cout<<"queue is empty"<<endl                 }         }         cout<<"queue_size="<<s_tbb_queue.unsafe_size()<<endl         return 0 } 运行 [heweiwei@heweiwei tbb_test]$ ./a.out value=10 value=11 value=12 value=13 value=14 queue_size=5 pop_value=10 pop_value=11 pop_value=12 pop_value=13 pop_value=14 queue is empty queue is empty queue is empty queue_size=0 https://blog.csdn.net/u010793236/article/details/74010571

GNU C库(glibc)是标准C库的GNU实现。glibc是GNU工具链的关bai键组件,用于和二进制工具和编译器一起使用,为目标架构生成用户空间应用程序。当从源码进行构建时,一些Linux程序可能需要链接到某个特定版本的glibc。在这种情况下,你可能想要检查已安装的glibc信息以查看是否满足依赖关系。这里介绍几种简单的方法,方便你检查Linux上的glibc版本。方法一下面给出了命令行下检查GNU C库的简单命令。$ ldd --version在本例中,glibc版本是2.19。方法二另一个方法是在命令行“输入”glibc 库的名称(如,libc.so.6),就像命令一样执行。输出结果会显示更多关于glibc库的详细信息,包括glibc的版本以及使用的GNU编译器,也提供了glibc扩展的信息。glibc变量的位置取决于Linux版本和处理器架构。在基于Debian的64位系统上:$ /lib/x86_64-linux-gnu/libc.so.6在基于Debian的32位系统上:$ /lib/i386-linux-gnu/libc.so.6在基于Red Hat的64位系统上:$ /lib64/libc.so.6在基于Red Hat的32位系统上:$ /lib/libc.so.6


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7330523.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存