title: ÐÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ ÑÑÐµÐ´ÑÑÐ² Ð² Ð¡++20 (clang)
title: Ð²ÑÐ¿ÑÑÐºÐ½Ð°Ñ ÐºÐ²Ð°Ð»Ð¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑÐ°Ð±Ð¾ÑÐ° Ð±Ð°ÐºÐ°Ð»Ð°Ð²ÑÐ°
titleType: Subtitle
title: The Performance of C ++ 20 Parallel Constructs (clang)
Creators: name: ÐÑÐ»Ð¾Ð½Ð´Ðµ, Ð¤Ð¸Ð»Ð¸Ð¿Ðµ
Publisher: name: Ð¡Ð°Ð½ÐºÑ-ÐÐµÑÐµÑÐ±ÑÑÐ³ÑÐºÐ¸Ð¹ Ð¿Ð¾Ð»Ð¸ÑÐµÑÐ½Ð¸ÑÐµÑÐºÐ¸Ð¹ ÑÐ½Ð¸Ð²ÐµÑÑÐ¸ÑÐµÑ ÐÐµÑÑÐ° ÐÐµÐ»Ð¸ÐºÐ¾Ð³Ð¾
Year: 2020
Subjects: Ð¿Ð°ÑÐ¾ÐºÐ¸
Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð·Ð¼
Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ
C++ 20
Ð¼Ð¾Ð´ÐµÐ»Ð¸ Ð¿Ð°Ð¼ÑÑÐ¸
Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÐµ ÑÐ·ÑÐºÐ¸ Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ
threads
concurrency
parallelism
performance
benchmark
C++20
memory models
parallel programming languages

description: Ð­ÑÐ° ÑÐ°Ð±Ð¾ÑÐ° Ð¾Ð¿Ð¸ÑÑÐ²Ð°ÐµÑ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¹ C ++ 20.
Ð¯Ð·ÑÐº Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ð¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ C ++ Ð¿ÑÐµÐ´Ð¾ÑÑÐ°Ð²Ð»ÑÐµÑ ÑÑÐ°Ð½Ð´Ð°ÑÑÐ¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑÐµ ÑÑÑÐ¾Ð¸ÑÐµÐ»ÑÐ½ÑÐµ Ð±Ð»Ð¾ÐºÐ¸ Ð´Ð»Ñ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÐºÐ¸ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼ Ð² ÑÐ¿ÐµÑÐ¸ÑÐ¸ÐºÐ°ÑÐ¸Ð¸ ÑÐ·ÑÐºÐ°. ÐÐ±ÐµÑÐ¿ÐµÑÐ¸Ð²Ð°ÐµÑ Ð»ÑÑÑÑÑ Ð¸Ð½ÑÐµÐ³ÑÐ°ÑÐ¸Ñ Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»ÑÑÐ¾ÑÐ°Ð¼Ð¸ Ð¸ ÑÐ¸ÑÑÐµÐ¼Ð°Ð¼Ð¸ Ð²ÑÐµÐ¼ÐµÐ½Ð¸ Ð²ÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð¸ Ð¾Ð±ÐµÑÐ¿ÐµÑÐ¸Ð²Ð°ÐµÑ Ð¿Ð¾ÑÐµÐ½ÑÐ¸Ð°Ð»ÑÐ½Ð¾ Ð±Ð¾Ð»ÐµÐµ Ð²ÑÑÐ¾ÐºÑÑ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ, ÑÑÐ¾ Ð¾Ð±Ð»ÐµÐ³ÑÐ°ÐµÑ Ð¿ÐµÑÐµÐ½Ð¾ÑÐ¸Ð¼Ð¾ÑÑÑ. Ð¡Ð¾ ÑÑÐ°Ð½Ð´Ð°ÑÑÐ¾Ð² C ++ 11 Ð´Ð¾ C ++ 20 Ð±ÑÐ»Ð¸ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ñ ÑÐ·ÑÐºÐ¾Ð²ÑÐµ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¸ Ð¸ Ð¼Ð¾Ð´ÐµÐ»Ñ Ð¿Ð°Ð¼ÑÑÐ¸, ÑÑÐ¸ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÐµ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¸ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ ÑÐ°Ð·ÑÐ°Ð±Ð¾ÑÑÐ¸ÐºÐ°Ð¼ ÑÐ¾Ð·Ð´Ð°Ð²Ð°ÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÐµ Ð¿ÑÐ¾Ð³ÑÐ°Ð¼Ð¼Ñ ÑÑÐ°Ð½Ð´Ð°ÑÑÐ¸Ð·Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑÐ¼ ÑÐ¿Ð¾ÑÐ¾Ð±Ð¾Ð¼. Ð¦ÐµÐ»ÑÑ Ð´Ð°Ð½Ð½Ð¾Ð¹ ÑÐ°Ð±Ð¾ÑÑ ÑÐ²Ð»ÑÐµÑÑÑ ÑÐ°ÑÐºÑÑÑÐ¸Ðµ Ð¼Ð¾Ð´ÐµÐ»Ð¸ Ð¿Ð°Ð¼ÑÑÐ¸ C ++ Ð´Ð»Ñ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»Ð¸Ð·Ð¼Ð° Ð¸ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÐ¸ ÑÐ°Ð·Ð»Ð¸ÑÐ½ÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¹ C ++, Ð¾ÑÐ½Ð¾Ð²Ð°Ð½Ð½ÑÑ Ð½Ð° ÑÐµÑÑÐ°Ñ, Ð´ÐµÐ¼Ð¾Ð½ÑÑÑÐ¸ÑÑÐµÑÑÑ Ð¿ÑÐ¾Ð¸Ð·Ð²Ð¾Ð´Ð¸ÑÐµÐ»ÑÐ½Ð¾ÑÑÑ Ð½ÐµÐºÐ¾ÑÐ¾ÑÑÑ Ð¸Ð· Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ ÑÐ°ÑÑÐ¾ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·ÑÐµÐ¼ÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¹ C ++, Ð¿ÑÑÐµÐ¼ ÑÐµÑÑÐ¸ÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑÐ°Ð·Ð»Ð¸ÑÐ½ÑÑ ÑÐµÑÐµÐ½Ð¸Ð¹, ÐºÐ¾ÑÐ¾ÑÑÐµ ÑÐµÑÐ°ÑÑ Ð¾Ð´Ð½Ñ Ð¸ ÑÑ Ð¶Ðµ Ð¿ÑÐ¾Ð±Ð»ÐµÐ¼Ñ Ñ Ð¸ÑÐ¿Ð¾Ð»ÑÐ·Ð¾Ð²Ð°Ð½Ð¸ÐµÐ¼ ÑÐ°Ð·Ð»Ð¸ÑÐ½ÑÑ Ð¿Ð°ÑÐ°Ð»Ð»ÐµÐ»ÑÐ½ÑÑ ÐºÐ¾Ð½ÑÑÑÑÐºÑÐ¸Ð¹ Ð¸ Ð¿Ð¾ÑÑÐ´ÐºÐ° Ð¿Ð°Ð¼ÑÑÐ¸, ÑÐºÐ¾Ð¼Ð¿Ð¸Ð»Ð¸ÑÐ¾Ð²Ð°Ð½Ð½ÑÑ clang 10.
description: This work describes the performance of C++20 parallel constructs.
The C++ programming language provides standardized building blocks for the development of parallel programs in the language specification. Providing a better integration with compilers and runtime systems and allows for potentially higher performance and portability facilitates. From C++11 to C++20 standard, language constructs have been added along with a memory model, those parallel constructs allow developers to build parallel programs in a standardized way. The aim of this work is to expose the C++ memory model for concurrency, and the performance of different C++ parallel constructs, based on benchmark is demonstrated the performance of some of the most used C++ parallel constructs, by doing benchmarks of different solutions that solve the same problem using different parallel constructs and memory order, compiled by clang 10.