A Parallel Stable Sort Using C++11 for TBB, Cilk Plus, and OpenMP

This article describes a parallel merge sort code, and why it is more scalable than parallel quicksort or parallel samplesort. The code relies on the C++11 “move” semantics. It also points out a scalability trap to watch out for with C++. The attached code has implementations in Intel® Threading Building Blocks (Intel® TBB), Intel® Cilk™ Plus, and OpenMP*.

  • Sviluppatori
  • Professori
  • Studenti
  • C/C++
  • Intermedio
  • Intel® Cilk™ Plus
  • Intel® Threading Building Blocks
  • parallel
  • Merge Sort
  • Cilk Plus
  • tbb
  • openmp
  • OpenMP*
  • Elaborazione parallela
  • Vectorization Essentials


    Compiler Methodology for Intel® MIC Architecture

    Vectorization Essentials


    This chapter covers topics in vectorization. Vectorization is a form of data-parallel programming. In this, the processor performs the same operation simultaneously on N data elements of a vector ( a one-dimensional array of scalar data objects such as floating point objects, integers, or double precision floating point objects).

  • Sviluppatori
  • Linux*
  • C/C++
  • Fortran
  • Avanzato
  • Compilatore C++ Intel®
  • Compilatore Fortran Intel®
  • OpenMP*
  • Auto-vectorization
  • Intel® Xeon Phi™ Coprocessor
  • vectorization
  • compiler methodology
  • MIC
  • Intel® Cilk™ Plus
  • openmp
  • Architettura Intel® Many Integrated Core
  • Iscriversi a openmp