Heim > Backend-Entwicklung > C++ > Hauptteil

Wie kann ich C 17-Parallelalgorithmen zum Laufen bringen?

DDD
Freigeben: 2024-10-26 10:07:03
Original
897 Leute haben es durchsucht

 How Can I Get C  17 Parallel Algorithms Working?

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
    Nach dem Login kopieren
  • Wenn die TBB-Version zu alt ist:

    #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
    Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!