下載最新的TBB的庫(kù),我的是tbb30_20100822oss_src;
tar zxvf tbb30_20100822oss_src
進(jìn)入解壓縮目錄下,執(zhí)行make。
cd build
chmod +x *.sh
sh generate_tbbvars.sh
sh tbbvars.sh
cd linux_intel64_gcc_cc4.1.2_libc2.5_kernel2.6.18_release
cp *.so /usr/lib
cp *.so.2 /usr/lib
/sbin/ldconfig
回到解壓縮目錄下
cd include
cp *.* /usr/local/include
cd ../examples/pipeline/square
make
如果是下面的提示,則表示編譯成功
g++ -O2 -DNDEBUG -o square square.cpp -ltbb
./square input.txt output.txt
serial run time = 0.32484
parallel run time = 0.167507
從它的例子我們看到執(zhí)行時(shí)間并行的比串行的要縮短一半時(shí)間;但這個(gè)庫(kù)
只是個(gè)C++庫(kù)。tbb的特點(diǎn):
提供C++模版庫(kù),用戶不必關(guān)注線程,而專注任務(wù)本身。
抽象層僅需很少的接口代碼,性能上毫不遜色。
靈活地適合不同的多核平臺(tái)。
線程庫(kù)的接口適合于跨平臺(tái)的移植(Linux, Windows, Mac)
支持的C++編譯器 – Microsoft, GNU and Intel