首頁 > 後端開發 > C++ > 主體

如何讓 C 17 並行演算法正常運作?

DDD
發布: 2024-10-26 10:07:03
原創
897 人瀏覽過

 How Can I Get C  17 Parallel Algorithms Working?

C 17 平行演算法已經實現了嗎?

問題:

儘管嘗試實現C 17 標準中引入的新並行庫功能,作者遇到了編譯錯誤。他們質疑這些演算法是否已經實現。

答案:

GCC 9 和 TBB 2018 是第一個支援 C 17 平行演算法的。不過,TBB 必須單獨安裝。

安裝說明:

Ubuntu 19.10:

sudo apt install gcc libtbb-dev
g++ -ggdb3 -O3 -std=c++17 -Wall -Wextra -pedantic -o main.out main.cpp -ltbb
./main.out
登入後複製

>

# Install GCC 9
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt-get update
sudo apt-get install gcc-9 g++-9

# Compile libtbb from source.
sudo apt-get build-dep libtbb-dev
git clone https://github.com/intel/tbb
cd tbb
git checkout 2019_U9
make -j `nproc`
TBB="$(pwd)"
TBB_RELEASE="${TBB}/build/linux_intel64_gcc_cc7.4.0_libc2.27_kernel4.15.0_release"

# Use them to compile our test program.
g++-9 -ggdb3 -O3 -std=c++17 -Wall -Wextra -pedantic -I "${TBB}/include" -L 
"${TBB_RELEASE}" -Wl,-rpath,"${TBB_RELEASE}" -o main.out main.cpp -ltbb
./main.out
登入後複製

效能分析:

在具有4 核/8 線程和2 個16GiB RAM 的Lenovo ThinkPad P51 筆記型電腦上進行測試,並行對於1 億個數字的輸入大小,排序速度比序列版本快約4.5 倍。

錯誤訊息:

  • 如果未安裝TBB :

    fatal error: tbb/blocked_range.h: No such file or directory
    登入後複製
  • #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
    登入後複製

以上是如何讓 C 17 並行演算法正常運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!