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
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
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
Mesej Ralat
Sekiranya terdapat kebergantungan yang hilang atau TBB yang sudah lapuk versi, mesej ralat berikut mungkin ditemui:
Tiada TBB:
fatal error: tbb/blocked_range.h: No such file or directory
Lapuk TBB:
#error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
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!