Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Saya Boleh Mendapatkan Algoritma Selari C 17 Berfungsi?

Bagaimana Saya Boleh Mendapatkan Algoritma Selari C 17 Berfungsi?

DDD
DDDasal
2024-10-26 10:07:03898semak imbas

 How Can I Get C  17 Parallel Algorithms Working?

Adakah Algoritma Selari C 17 Sudah Dilaksanakan?

Soalan:

Walaupun cuba untuk melaksanakan ciri perpustakaan selari baharu yang diperkenalkan dalam piawaian C 17, pengarang mengalami ralat penyusunan. Mereka mempersoalkan sama ada algoritma ini telah dilaksanakan.

Jawapan:

GCC 9 dan TBB 2018 adalah yang pertama menyokong algoritma selari C 17. Walau bagaimanapun, TBB mesti dipasang secara berasingan.

Arahan Pemasangan:

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

Ubuntu 18.04:

# 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

Analisis Prestasi:

Ujian pada komputer riba Lenovo ThinkPad P51 dengan 4 teras/8 benang dan 2x 16GiB RAM, selari isihan adalah kira-kira 4.5 kali lebih pantas daripada versi bersiri untuk saiz input 100 juta nombor.

Mesej Ralat:

  • Jika TBB tidak dipasang :

    fatal error: tbb/blocked_range.h: No such file or directory
  • Jika versi TBB terlalu lama:

    #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Mendapatkan Algoritma Selari C 17 Berfungsi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn