13.07.2015 Views

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

Intel® 64 and IA-32 Architectures Optimization Reference Manual

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

APPLICATION PERFORMANCE TOOLScritical paths <strong>and</strong> imbalances in thread execution, etc. Mountains of data arecollapsed into relevant summaries, sorted to identify parallel regions or loops thatrequire attention. Its intuitive, color-coded displays make it easy to assess yourapplication's performance.Figure A-1 shows the execution timeline of a multi-threaded application when run in(a) a single-threaded environment, (b) a multi-threaded environment capable ofexecuting two threads simultaneously, (c) a multi-threaded environment capable ofexecuting four threads simultaneously. In Figure A-1, the color-coded timeline ofthree hardware configurations are super-imposed together to compare processorscaling performance <strong>and</strong> illustrate the imbalance of thread execution.Load imbalance problem is visually identified in the two-way platform by noting thatthere is a significant portion of the timeline, during which one logical processor hadno task to execute. In the four-way platform, one can easily identify those portions ofthe timeline of three logical processors, each having no task to execute.Figure A-1. Intel Thread Profiler Showing Critical Pathsof Threaded Execution TimelinesA.4.3 Intel Threading Building Blocks 1.0The Intel Threading Building Blocks is a C++ template-based runtime library thatsimplifies threading for scalable, multi-core performance. It can help avoid rewriting,re-testing, re-tuning common parallel data structures <strong>and</strong> algorithms.A-15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!