Introduction
Find where parallelism can be implemented effectively within a serial application.
By Clay P. Breshears, Intel Corp.
Explicit threading methods, such as Windows* threads or POSIX* threads, use library calls to create, manage, and synchronize threads. Use of explicit threads requires an almost complete restructuring of affected code. On the other hand, OpenMP* is a set of pragmas, API functions, and environment variables that enable you to incorporate threads into your applications at a relatively high level. The OpenMP pragmas are used to denote regions in the code that can be run concurrently. An OpenMP-compliant compiler transforms the code and inserts the proper function calls to execute these regions in parallel. In most cases, the serial logic of the original code can be preserved and is easily recovered by ignoring the OpenMP pragmas at compilation time.
OpenMP programs are threaded programs and can suffer from the same errors and performance problems as explicitly threaded applications. We assume you are familiar with OpenMP since this article examines the use of the Intel® Threading Tools, Intel® Thread Checker and Intel® Thread Profiler to analyze OpenMP programs. For Intel Thread Checker, we eschew the standard use of identifying storage conflicts in threaded code; rather, we use the diagnostic output to identify and categorize the scope of variables within parallel regions. After that, two of the more common performance problems encountered in OpenMP codes are discussed. We illustrate how to use Thread Profiler to identify these problems and give some possible solutions. For more details and information on using the Intel Threading Tools, see "Getting Started with the Intel® Thread Checker" and "Getting Started with the Intel® Thread Profiler" included in the threading tools documentation.
![]()
If you're interested in this topic, these articles may be helpful:
![]() | Intel® Visual Fortran Compiler 8.1 for Windows Achieve outstanding application performance with advanced optimization... |
![]() | Intel software development products from Intel Corp. The Intel® Software Development Products are a... |
![]() | Artificial neural nets and Hyper-Threading technology by Chuck Desylva, Intel Corp. There are many artificial-intelligenc... |
![]() | Accelerating .NET applications with the Intel VTune Performance Analyzer 6.1 by Alan Zeichick, The Intel VTune Performance Analyzer is more th... |
![]() | An Introduction to Business Intelligence for IT What is Business Intelligence and How Can it Help Me? Every year orga... |
![]()
Related Jobs:

