Heim >Backend-Entwicklung >C++ >Wie kann ich C 17-Parallelalgorithmen zum Laufen bringen?
Sind C 17-Parallelalgorithmen bereits implementiert?
Frage:
Trotz der Implementierungsversuche Bei den neuen Funktionen der Parallelbibliothek, die im C 17-Standard eingeführt wurden, stieß der Autor auf Kompilierungsfehler. Sie stellten in Frage, ob diese Algorithmen bereits implementiert wurden.
Antwort:
GCC 9 und TBB 2018 sind die ersten, die die C 17-Parallelalgorithmen unterstützen. TBB muss jedoch separat installiert werden.
Installationsanleitung:
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
Leistungsanalyse:
Test auf einem Lenovo ThinkPad P51 Laptop mit 4 Kernen/8 Threads und 2x 16GiB RAM, parallel sort war etwa 4,5-mal schneller als die serielle Version für Eingabegrößen von 100 Millionen Zahlen.
Fehlermeldungen:
Wenn TBB nicht installiert ist :
fatal error: tbb/blocked_range.h: No such file or directory
Wenn die TBB-Version zu alt ist:
#error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
Das obige ist der detaillierte Inhalt vonWie kann ich C 17-Parallelalgorithmen zum Laufen bringen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!