Maison > développement back-end > C++ > le corps du texte

Comment puis-je faire fonctionner les algorithmes parallèles C 17 ?

DDD
Libérer: 2024-10-26 10:07:03
original
1001 Les gens l'ont consulté

 How Can I Get C  17 Parallel Algorithms Working?

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
Copier après la connexion

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
Copier après la connexion

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
    Copier après la connexion
  • Si la version TBB est trop ancienne :

    #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
    Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal