Adakah Algoritma Selari C 17 Benar-benar Bersedia untuk Masa Perdana?

Barbara Streisand
Lepaskan: 2024-10-27 07:43:31
asal
404 orang telah melayarinya

 Are C  17 Parallel Algorithms Really Ready for Prime Time?

Adakah Perlaksanaan Algoritma Selari C 17 Sedia?

Walaupun menjanjikan versi selari algoritma popular dalam C 17, ketersediaan dan pelaksanaan ciri ini boleh mengelirukan.

Pada mulanya, ciri ini telah dijangkakan seawal 2017, tetapi pelaksanaan praktikal mengambil masa yang lebih lama untuk menjadi kenyataan. Setakat ini, keadaannya adalah seperti berikut:

GCC 9 dengan TBB Diperlukan

GCC 9, pengkompil lalai dalam Ubuntu 19.10, menyokong algoritma selari melalui Blok Bangunan Benang (TBB). TBB mesti dipasang secara berasingan, tetapi prosesnya adalah mudah.

sudo apt install gcc libtbb-dev
g++ -ggdb3 -O3 -std=c++17 -Wall -Wextra -pedantic -o main.out main.cpp -ltbb
./main.out
Salin selepas log masuk

Pemasangan Ubuntu 18.04

Ubuntu 18.04 memerlukan proses pemasangan yang lebih terlibat, kerana TBB tidak tersedia dalam versi yang serasi melalui repositori lalai. Arahan di bawah menyediakan arahan automatik yang diuji.

# 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
Salin selepas log masuk

Analisis Program Ujian

Untuk menunjukkan keberkesanan algoritma selari, program ujian membandingkan kelajuan pengisihan selari dan pelaksanaan bersiri telah disediakan. Pada Ubuntu 19.10, pengisihan 100 juta nombor menunjukkan peningkatan prestasi yang ketara untuk versi selari.

./main.out 100000000
parallel 2.00886 s
serial 9.37583 s
Salin selepas log masuk

Mesej Ralat

Sekiranya terdapat kebergantungan yang hilang atau TBB yang sudah lapuk versi, mesej ralat berikut mungkin ditemui:

  1. Tiada TBB:

    fatal error: tbb/blocked_range.h: No such file or directory
    Salin selepas log masuk
  2. Lapuk TBB:

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

Atas ialah kandungan terperinci Adakah Algoritma Selari C 17 Benar-benar Bersedia untuk Masa Perdana?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!