英特尔® Cilk™ Plus

Trusted Tools in the New Android* World: Optimization Techniques - from Intel® SSE Intrinsics to Intel® Cilk™ Plus

Author: Zvi Danovich, Senior SW Application Engineer, Intel

Introduction

Most Android applications, even those based only on scripting and managed languages (Java*, HTML5,…), eventually use middleware features that would benefit from optimization.

This paper will discuss optimization needs and approaches on Android and walk through a case study of how to optimize a multimedia and augmented reality application.

  • 开发人员
  • 安卓*
  • 安卓*
  • 英特尔® Cilk™ Plus
  • Intel® SSSE3; RGB Transformation; Parallelization
  • 英特尔® SIMD 流指令扩展
  • 图形
  • 优化
  • 并行计算
  • 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 流指令扩展
  • 并行计算
  • Program Optimization through Loop Vectorization

    Download Article

    Download Program Optimization through Loop Vectorization [PDF 617KB]

    Overview

    In this white paper, we will use a very simplified finite difference stencil computation of the following form:

  • 开发人员
  • 服务器
  • 高级
  • 英特尔® C++ 编译器
  • 英特尔® Cilk™ Plus
  • Intel® Fortran Compiler
  • undefined
  • Intel® Many Integrated Core Architecture
  • Graph Algorithms: Shortest Path

    Dijkstra algorithm is a graph search algorithm that solves the single-source shortest path problem for a graph with non-negative edge path costs, producing a shortest path tree. The algorithm requires repeated searching for the vertex having the smallest distance and accumulating shortest distance from the source vertex. This example calculates the shortest path between each pair of vertexes in a complete graph having 2000 vertexes using Dijkstra algorithm.

    Sorting Algorithms: Merge Sort

    Merge sort algorithm is a comparison-based sorting algorithm. In this sample, we use top-down implementation, which recursively splits list into two halves (called sublists) until size of list is 1. Then merge these two sublists and produce a sorted list. This sample could run in serial, or in parallel with Intel® Cilk™ Plus keywords cilk_spawn and cilk_sync. For more details about merge sort algorithm and top-down implementation, please refer to http://en.wikipedia.org/wiki/Merge_sort.

    Getting Started with Intel® Cilk™ Plus and Code Samples

    Intel® Cilk™ Plus allows you to improve performance by adding parallelism to your C or C++ programs. It adds fine-grained task support to C and C++, making it easy to add parallelism to both new and existing software to efficiently exploit multiple processors and the vector instructions available on modern CPUs. It provides simple language extensions to express data and task parallelism to the C and C++ language implemented by the Intel® C++ Compiler.

  • 开发人员
  • C/C++
  • 英特尔® C++ Composer XE
  • 英特尔® Cilk™ Plus
  • 订阅 英特尔® Cilk™ Plus