Intel® Threading Tools and OpenMP*
C Thread win32 library : 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.

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:

.NET Software Engineer #SD_NET - MA - Boston - AIR Worldwide Corporation
Become a member of the growing AIR Software Research and Development ...
Visual C# (.NET) Developer With Excellent GUI Skills (PRO) - NY - New York - Antepo
ROLE Antepo is looking for a dynamic, committed Windows GUI/Client e...
Visual C# (.NET) developer - NY - New York - Antepo
ROLE Antepo is looking for a dynamic, committed Windows GUI/Clie...
Sr. Software Engineer / Developer #CA2986 - CA - Camarillo - Vitesse Semiconductor Corporation
BSCS; 7 to 10 years experience with embedded software development. Mus...
Software Development Engineer #132004 - WA - Redmond - Microsoft Corporation
The Windows Team is looking for an experienced developer like you to w...
Software Engineer, Services Team - CA - San Diego - Sony Corporation of America
Software Engineer, Services Team Job Title Location Date Software ...
Lead Software Development Engineer #145693 - WA - Redmond - Microsoft Corporation
How would you like to own the OLAP engine that went from nowhere to th...
Computational Scientist - CEA - OH - Dayton - High Performance Technologies, Inc.
High Performance Technologies, Inc. (HPTi), based in Reston, VA is a s...
Open Systems Engineer - TS/SCI + #6751 - VA - Chantilly - CACI International Inc
Requirements Applies software, hardware, and standards informatio...
PL/SQL Developer #2339347 - NC - Charlotte - Ajilon
Description : If you're an IT professional looking for exciting, new...