Cilk Plus

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++
  • Средний
  • Intel® Cilk™ Plus
  • Компоненты Intel® Threading Building Blocks
  • 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++
  • Средний
  • Intel® Cilk™ Plus
  • Cilk Plus
  • Intel® Streaming SIMD Extensions
  • Параллельные вычисления
  • 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
  • threading
  • MPI
  • How to spawn a statement in Cilk Plus

    This blog discusses how to "spawn a statement" in Cilk Plus and some pragmatic considerations for doing so.

    Cilk Plus has two ways to create parallelism:

  • Разработчики
  • Студенты
  • C/C++
  • Средний
  • Intel® Cilk™ Plus
  • Cilk Plus
  • Параллельные вычисления
  • 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++
  • Средний
  • Intel® Cilk™ Plus
  • Cilk Plus
  • parallel sorting
  • Параллельные вычисления
  • 借助英特尔® Cilk™ Plus 实现并行化

    面向英特尔® MIC 架构的编译器方法

    面向英特尔® MIC 架构的编译器方法
    高效并行化,借助英特尔® Cilk™ Plus 实现并行化

    概述

  • Разработчики
  • Linux*
  • C/C++
  • Fortran
  • Продвинутый
  • Intel® C++ Compiler
  • Intel® Fortran Compiler
  • Intel Many Integrated Core
  • Cilk Plus
  • Intel® Many Integrated Core Architecture
  • Оптимизация
  • Векторизация
  • A DPRNG for Cilk™ Plus?

    Continuing my previous post, I describe some of the challenges in implementing DotMix, a determinstic parallel random-number generator (DPRNG) for Intel® Cilk™ Plus.
  • Разработчики
  • Профессорский состав
  • Студенты
  • C/C++
  • Intel® Cilk™ Plus
  • Cilk Plus
  • contributed code
  • Determinism
  • DPRNG
  • pedigrees
  • random-number generator
  • Параллельные вычисления
  • 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.
    Подписаться на Cilk Plus