Table of Contents

Part I: An Introduction to Parallelism

Chapter 1: Parallelism Today

The Arrival of Parallelism

The Top Six Challenges

Parallelism and the Programmer

Summary

Chapter 2: An Overview of Parallel Studio XE

Why Parallel Studio XE?

What's in Parallel Studio XE?

Intel Parallel Studio XE

Intel Parallel Advisor

Intel Parallel Composer XE

VTune Amplifier XE

Parallel Inspector XE

Static Security Analysis

Different Approaches to using Parallel Studio XE

Summary

Chapter 3: Parallel Studio XE for the Impatient

The Four-Step Methodology

Example 1: Working with Cilk Plus

Example 2: Working with OpenMP

Summary

Part II: Using Parallel Studio XE

Chapter 4: Producing Optimized Code

Introduction

The Example Application

Optimizing Code in Seven Steps

More on Auto-Vectorization

Source Code

Summary

Chapter 5: Writing Secure Code

A Simple Security Flaw Example

Understanding Static Security Analysis

The Build Specification

Using Static Security Analysis in a QA Environment

Source Code

Summary

Chapter 6: Where to Parallelize

Different Ways of Profiling

The Example Application

Hotspot Analysis Using the Intel Compiler

Hotspot Analysis Using the Auto-Parallelizer

Hotspot Analysis with Amplifier XE

Source Code

Summary

Chapter 7: Implementing Parallelism

C or C++, That Is the Question

Taking a Simple Approach

The Beauty of Lambda Functions

Parallelizing Loops

Parallelizing Sections and Functions

Parallelizing Recursive Functions

Parallelizing Pipelined Applications

Parallelizing Linked Lists

Source Code

Summary

Chapter 8: Checking for Errors

Parallel Inspector XE Analysis Types

Detecting Threading Errors

Detecting Deadlocks

Detecting Data Races

Fixing Data Races

Detecting Memory Errors

Creating a Custom Analysis

The Source Code

Summary

Chapter 9: Tuning Parallel Applications

Introduction

Defining a Baseline

Identifying Concurrency Hotspots

Analyzing the Timeline

Analyzing an Algorithm

Conducting Further Analysis and Tuning

Using the Intel Software Autotuning Tool

Source Code

Summary

Chapter 10: Parallel Advisor–Driven Design

Using Parallel Advisor

Surveying the Site

Annotating Your Code

Checking Suitability

Checking for Correctness

Replacing Annotations

Summary

Chapter 11: Debugging Parallel Applications

Introduction to the Intel Debugger

Using the Intel Debugger to Detect Data Races

More About Filters

Runtime Investigation: Viewing the State of Your Application

Summary

Chapter 12: Event-Based Analysis with VTune Amplifier XE

Testing the Health of an Application

Conducting a Hotspot Analysis

Conducting a General Exploration Analysis

Fixing Hardware Issues

Using Amplifier XE's Other Tools

The Example Application

Summary

Part III: Case Studies

Chapter 13: The World's First Sudoku “Thirty-Niner”

The Sudoku Optimization Challenge

Hands-On Example: Optimizing the Sudoku Generator

Summary

Chapter 14: Nine Tips to Parallel-Programming Heaven

The Challenge: Simulating Star Formation

The Hands-On Activities

Application Heuristics

Using a Tree-Based N-Bodies Simulation

Architectural Tuning

Adding Parallelism

Summary

Chapter 15: Parallel Track Fitting in the CERN Collider

The Case Study

The Stages of a High-Energy Physics Experiment

What Is Array Building Blocks?

Parallelizing the Track-Fitting Code

The Hands-On Project

Summary

Chapter 16: Parallelizing Legacy Code

Introducing the Dhrystone Benchmark

The Hands-On Projects

Parallelizing the C Version

Parallelizing the C++ Version

Overview of the Results

Summary

Introduction

Advertisements

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.142.199.184