Les algorithmes parallèles C 17 sont-ils déjà implémentés ?
Question :
Malgré les tentatives de mise en œuvre Avec les nouvelles fonctionnalités de bibliothèque parallèle introduites dans le standard C 17, l'auteur a rencontré des erreurs de compilation. Ils se sont demandé si ces algorithmes avaient déjà été implémentés.
Réponse :
GCC 9 et TBB 2018 sont les premiers à prendre en charge les algorithmes parallèles C 17. Cependant, TBB doit être installé séparément.
Instructions d'installation :
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
Analyse des performances :
Test sur un ordinateur portable Lenovo ThinkPad P51 avec 4 cœurs/8 threads et 2x 16 Go de RAM, le parallèle le tri était environ 4,5 fois plus rapide que la version série pour des tailles d'entrée de 100 millions de chiffres.
Messages d'erreur :
Si TBB n'est pas installé :
fatal error: tbb/blocked_range.h: No such file or directory
Si la version TBB est trop ancienne :
#error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!