Home > Backend Development > C++ > body text

Are C 17 Parallel Algorithms Really Ready for Prime Time?

Barbara Streisand
Release: 2024-10-27 07:43:31
Original
404 people have browsed it

 Are C  17 Parallel Algorithms Really Ready for Prime Time?

Is C 17 Parallel Algorithms Implementation Ready?

Despite the promise of parallelized versions of popular algorithms in C 17, the availability and implementation of these features can be confusing.

Initially, these features were anticipated as early as 2017, but practical implementations have taken longer to materialize. As of now, the situation is as follows:

GCC 9 with TBB Required

GCC 9, the default compiler in Ubuntu 19.10, supports parallel algorithms through Thread Building Blocks (TBB). TBB must be installed separately, but the process is straightforward.

sudo apt install gcc libtbb-dev
g++ -ggdb3 -O3 -std=c++17 -Wall -Wextra -pedantic -o main.out main.cpp -ltbb
./main.out
Copy after login

Ubuntu 18.04 Installation

Ubuntu 18.04 requires a more involved installation process, as TBB is not available in a compatible version through the default repositories. The commands below provide automated, tested instructions.

# 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
Copy after login

Test Program Analysis

To demonstrate the effectiveness of parallel algorithms, a test program comparing the sorting speeds of parallel and serial implementations has been provided. On Ubuntu 19.10, sorting 100 million numbers showed a significant performance improvement for the parallel version.

./main.out 100000000
parallel 2.00886 s
serial 9.37583 s
Copy after login

Error Messages

In case of missing dependencies or an outdated TBB version, the following error messages may be encountered:

  1. Missing TBB:

    fatal error: tbb/blocked_range.h: No such file or directory
    Copy after login
  2. Outdated TBB:

    #error Intel(R) Threading Building Blocks 2018 is required; older versions are not supported.
    Copy after login

The above is the detailed content of Are C 17 Parallel Algorithms Really Ready for Prime Time?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!