• DocumentCode
    704126
  • Title

    On the Quality of Implementation of the C++11 Thread Support Library

  • Author

    Thoman, Peter ; Gschwandtner, Philipp ; Fahringer, Thomas

  • Author_Institution
    Distrib. & Parallel Syst. Group, Univ. of Innsbruck, Innsbruck, Austria
  • fYear
    2015
  • fDate
    4-6 March 2015
  • Firstpage
    94
  • Lastpage
    98
  • Abstract
    Providing standardized building blocks for task-parallel programs within a language and its standard library has several advantages over other solutions. Close integration with compilers and runtime systems allows for potentially higher performance and portability facilitates wide-spread use. In the recently ratified C++11 standard, language constructs have been added along with a memory model to provide the developer with such building blocks. They allow accessing task parallelism and synchronization in a flexible and standardized way, potentially removing the need for third-party solutions. Nevertheless, since parallelization aims at high performance, an examination of the quality of implementation of these standardized means is necessary to determine their suitability for replacing established solutions. To that end, we present INNCABS, a new cross-platform cross-library benchmark suite consisting of 14 benchmarks with varying task granularities and synchronization requirements. Based on these benchmarks, we demonstrate that the performance of C++11 parallelism constructs in the three most commonly employed C++ runtime libraries prevents their use as a full replacement for third-party solutions due to simplistic parallelism implementations and high synchronization overheads.
  • Keywords
    C++ language; parallel programming; program compilers; software libraries; software quality; C++ runtime libraries; C++11 thread support library; INNCABS; compilers; cross-platform cross-library benchmark suite; memory model; runtime systems; standardized building blocks; task parallelism access; task synchronization access; task-parallel programs; varying task granularities; varying task synchronization requirements; Benchmark testing; Hardware; Instruction sets; Libraries; Parallel processing; Standards; Synchronization; C++11; async; benchmarks; inncabs; performance analysis; std::async; std::lock; synchronization; task parallelism;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Parallel, Distributed and Network-Based Processing (PDP), 2015 23rd Euromicro International Conference on
  • Conference_Location
    Turku
  • ISSN
    1066-6192
  • Type

    conf

  • DOI
    10.1109/PDP.2015.33
  • Filename
    7092705