Support for Parallel and Concurrent Programming in C++
- Authors: V’yukova N.I.1, Galatenko V.A.1, Samborskii S.V.1
-
Affiliations:
- Scientific Research Institute for System Analysis
- Issue: Vol 44, No 1 (2018)
- Pages: 35-42
- Section: Article
- URL: https://journals.rcsi.science/0361-7688/article/view/176572
- DOI: https://doi.org/10.1134/S0361768818010073
- ID: 176572
Cite item
Abstract
C++ was originally designed as a sequential programming language. For development of multithreaded applications, libraries, such as Pthreads, Windows threads, and Boost, are traditionally used. The C++11 standard introduced some basic concepts and means for developing parallel and concurrent programs, but the direct use of these low-level means requires high programming skills and significant efforts. The absence of high-level models of parallelism in C++ is somewhat compensated for by various parallel libraries and directive parallelization tools (such as OpenMP), as well as by language extensions supported by some compilers (Intel CilkPlus). Nevertheless, we still require more advanced means to express parallelism in programs at the level of language standard and language library. In this survey, we consider the means for parallel and concurrent programming that are included into the C++17 standard, as well as some capabilities that are to be expected in the future standards.
About the authors
N. I. V’yukova
Scientific Research Institute for System Analysis
Author for correspondence.
Email: niva@niisi.ras.ru
Russian Federation, Nakhimovskii pr. 36/1, Moscow, 117218
V. A. Galatenko
Scientific Research Institute for System Analysis
Email: niva@niisi.ras.ru
Russian Federation, Nakhimovskii pr. 36/1, Moscow, 117218
S. V. Samborskii
Scientific Research Institute for System Analysis
Email: niva@niisi.ras.ru
Russian Federation, Nakhimovskii pr. 36/1, Moscow, 117218