# 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*.

• 开发人员
• 教授
• 学生
• C/C++
• 中级
• 英特尔® Cilk™ Plus
• parallel
• Merge Sort
• Cilk Plus
• tbb
• openmp
• OpenMP*
• 并行计算
• # Parallel Computation of Sparse Rulers

This article explains the sparse ruler problem, two parallel codes for computing sparse rulers, and some new results that reveal a surprising "gap" behavior for solutions to the sparse ruler problem. The code and results are included in the attached zip file.

## Background

A complete sparse ruler is a ruler with M marks than can measure any integer distance between 0 and L units. For example, the following ruler has 6 marks (including the ends) and can measure integer distance from 0 to 13:

• 开发人员
• 教授
• 学生
• C/C++
• 中级
• 英特尔® Cilk™ Plus
• Cilk Plus
• 英特尔® SIMD 流指令扩展
• 并行计算
• # HPCWire Videos

## HPCWire Videos

Coding the Future, Intels Vision
James Reinders, Director and Parallel Programming Evangelist, talks about Intel’s vision of consistent, standards-based software development tools. He also discusses his new book that gives an introduction to programming for parallelism on Intel® Xeon® processors and Intel® Xeon Phi™ coprocessors.

• Xeon Phi
• Xeon
• vectorization
• fortran
• C++
• math processing
• MKL
• Cilk Plus
• MPI

# Parallel sorts for Cilk Plus

This article describes the parallel sorts in the latest release of “Cilkpub”, an open-source library of utilities for Intel® Cilk™ Plus.

• `cilk_sort`
• `cilk_sort_in_place`

They are designed to be replacements for `std::sort` that may provide speedup when sorting many items (on the order of at least 10000). For example:

```extern float a[];
cilkpub::cilk_sort( a, a+n );
```
• 开发人员
• 教授
• 学生
• C/C++
• 中级
• 英特尔® Cilk™ Plus
• Cilk Plus
• parallel sorting
• 并行计算
• # New Contributed Code for Cilk™ Plus: DotMix, a Deterministic Parallel Random-Number Generator

DotMix is a new user-contributed code that provides programmers with a repeatable but efficient way to deterministically generate pseudorandom numbers in parallel in Intel® Cilk™ Plus. In this post, I explain what "contributed code" is, where it comes from, and give a brief preview of DotMix.