array notation

Improving Averaging Filter performance using Intel® Cilk™ Plus

Intel® Cilk™ Plus is an extension to the C and C++ languages to support data and task parallelism.  It provides three new keywords to implement task parallelism and  Array Notation, simd pragma and Elemental Function to express data parallelism.  This article demonstrates how to improve the performance of an Averaging Filter in image processing using Intel® Cilk™ Plus.  To demonstrate the performance increase, you will use a program that reads a bitmap RGB image and does averaging with a filter of size 3x3.  Averaging filter work

  • Développeurs
  • Partenaires
  • Professeurs
  • Étudiants
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8.x
  • Unix*
  • Client d’entreprise
  • Code produit
  • Serveur
  • Windows*
  • C/C++
  • Avancé
  • Débutant
  • Intermédiaire
  • Compilateur Intel® C++
  • Intel® Cilk™ Plus
  • Intel® Parallel Studio XE
  • Intel® Parallel Studio XE Composer Edition
  • Averaging filter
  • array notation
  • elemental function
  • SIMD enabled function
  • cilk_for
  • Extensions Intel® Streaming SIMD
  • Outils de développement
  • Éducation
  • Graphiques
  • Processeurs Intel® Core™
  • Optimisation
  • Parallélisation
  • Vectorisation
  • Intel® Cilk™ Plus – AOBench Sample

    This is the AOBench example associated with the "Intel® Cilk™ Plus – The Simplest Path to Parallelism" how-to article.  It shows an Ambient Occlusion algorithm implemented as serial loops, one using Intel Cilk Plus' cilk_for keyword to implement parallelism, one version using Intel Cilk Plus' array notations to allow vectorization for the SIMD instruction, and another version using both cilk_for and the array notations.  It demonstrates great performance with very little coding changes through both data-parallelism and task-parallelism.

  • Développeurs
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • C/C++
  • Débutant
  • Intel® Parallel Studio XE Composer Edition
  • Intel® Parallel Studio XE Professional Edition
  • Compilateur Intel® C++
  • Intel® Advanced Vector Extensions
  • Extensions Intel® Streaming SIMD
  • AOBench
  • CilkPlus
  • array notation
  • Optimisation
  • Informatique parallèle
  • Parallélisation
  • Vectorisation
  • About Intel Cilk™ Plus and How To Get Started

    This article has been updated for Intel C++ Composer XE 2013 and 2013 SP1 for Windows,  Linux* and Mac OS* X.

    Intel® Cilk™ Plus is a new method for implementing SIMD (SSEs) vectorization and parallel programs. It is supported by the following Intel software development products:

  • Développeurs
  • Apple OS X*
  • Linux*
  • Microsoft Windows* (XP, Vista, 7)
  • Microsoft Windows* 8.x
  • C/C++
  • Intermédiaire
  • Compilateur Intel® C++
  • Intel® Parallel Studio XE Composer Edition
  • CilkPlus
  • simd
  • array notation
  • Informatique parallèle
  • Function maps in Array Notation are not converted to multi-threaded calls


    Reference Number : DPD200167322


    Version : 12.0


    Product : Intel® C++ Compiler XE


    Operating System : Windows*, Linux* and Mac* OS


    Problem Description : 
    In "Intel® C++ Compiler XE 12.0 User and Reference Guides" -> "Creating Parallel Applications" -> "Using Intel® Cilk™ Plus" -> "Extensions for Array Notation" -> "C/C++ Extensions for Array Notations Programming Model", it says:
  • Linux*
  • Apple OS X*
  • Microsoft Windows* (XP, Vista, 7)
  • C/C++
  • Compilateur Intel® C++
  • Intel® Parallel Studio XE Composer Edition
  • array notation
  • function map
  • ClosedSWDefect
  • SIMD Parallelism using Array Notation

    Are you a C or C++ programmer who has ever envied APL or Fortran 90's array expressions?   Read on.  If you don't know what array expressions are, then you really should read on, to find out what you should have envied.  In any case, the envy is over, because  Intel Parallel Composer 2011 brings array expressions to C and C++.

    S’abonner à array notation