Table of Contents
Part I: An Introduction to Parallelism
Parallelism and the Programmer
Chapter 2: An Overview of Parallel Studio XE
Different Approaches to using Parallel Studio XE
Chapter 3: Parallel Studio XE for the Impatient
Example 1: Working with Cilk Plus
Example 2: Working with OpenMP
Part II: Using Parallel Studio XE
Chapter 4: Producing Optimized Code
Optimizing Code in Seven Steps
Chapter 5: Writing Secure Code
A Simple Security Flaw Example
Understanding Static Security Analysis
Using Static Security Analysis in a QA Environment
Chapter 6: Where to Parallelize
Hotspot Analysis Using the Intel Compiler
Hotspot Analysis Using the Auto-Parallelizer
Hotspot Analysis with Amplifier XE
Chapter 7: Implementing Parallelism
C or C++, That Is the Question
The Beauty of Lambda Functions
Parallelizing Sections and Functions
Parallelizing Recursive Functions
Parallelizing Pipelined Applications
Chapter 8: Checking for Errors
Parallel Inspector XE Analysis Types
Chapter 9: Tuning Parallel Applications
Identifying Concurrency Hotspots
Conducting Further Analysis and Tuning
Using the Intel Software Autotuning Tool
Chapter 10: Parallel Advisor–Driven Design
Chapter 11: Debugging Parallel Applications
Introduction to the Intel Debugger
Using the Intel Debugger to Detect Data Races
Runtime Investigation: Viewing the State of Your Application
Chapter 12: Event-Based Analysis with VTune Amplifier XE
Testing the Health of an Application
Conducting a General Exploration Analysis
Using Amplifier XE's Other Tools
Chapter 13: The World's First Sudoku “Thirty-Niner”
The Sudoku Optimization Challenge
Hands-On Example: Optimizing the Sudoku Generator
Chapter 14: Nine Tips to Parallel-Programming Heaven
The Challenge: Simulating Star Formation
Using a Tree-Based N-Bodies Simulation
Chapter 15: Parallel Track Fitting in the CERN Collider
The Stages of a High-Energy Physics Experiment
What Is Array Building Blocks?
Parallelizing the Track-Fitting Code
Chapter 16: Parallelizing Legacy Code