Advanced OpenMP* Programming
OpenMP C Programming Tutorial: This is the last of three white papers that teach you, an experienced C/C++ programmer, how to get started using OpenMP, simplifying creation, synchronization, and deletion of threads in your applications. The first paper introduced you to the most common feature of OpenMP: work sharing for loops. The second paper taught you how to exploit non-loop parallelism and the usage of the synchronization directives. This final paper discusses the library functions, the environment variables, how to debug your application when things go wrong, and some tips for maximizing performance.

Introduction

By Richard Gerber

This is the last of three white papers that teach you, an experienced C/C++ programmer, how to get started using OpenMP*, simplifying creation, synchronization, and deletion of threads in your applications. The first paper introduced you to the most common feature of OpenMP: work sharing for loops. The second paper taught you how to exploit non-loop parallelism and the usage of the synchronization directives. This final paper discusses the library functions, the environment variables, how to debug your application when things go wrong, and some tips for maximizing performance.

Run-Time Library Functions

As you might remember, OpenMP is a set of pragmas, function calls, and environment variables. The first two papers discussed only the pragmas, which leaves the function calls and environment variables for this paper. The reason for this arrangement is simple: the pragmas are the reason for OpenMP, because they provide the highest degree of simplicity, they do not require source-code changes, and the pragmas can be easily ignored to generate a serial version of your code. On the other hand, use of the function calls requires program changes that may make it difficult to execute a serial version if desired. When in doubt, always try to use the pragmas and reserve the function calls for those times when they are To use the function calls, include the <omp.h> header file, and, of course, continue to use the Intel® C++ Compiler command line switch /Qopenmp. No additional libraries are required for linking.

If you're interested in this topic, these articles may be helpful:

More WorkSharing with OpenMP
Abstract By Richard Gerber As you know, OpenMP* contains a very po...
Performance Obstacles for Threading: How do they affect OpenMP code?
Why thread, and what does that have to do with performance? You might...
Intel® Threading Tools and OpenMP*
Introduction Find where parallelism can be implemented effectively wi...
Discussion Forum: Visual Fortran Compiler for Windows
This forum is the place to ask questions of and share information with...

Related Jobs:

Senior Java Developer - Canada - Burnaby - Logical Software Corporation
Are you an energetic Java web developer who has been living, breathing...
PeopleSoft Functional HR/Ben Admin Consultant - MA - Lexington - Surebridge
Job Description and Areas of Responsibilities: Major responsibility wi...
Software Architects/Lead Developers - NY - New York City - DoubleBridge Technologies
Responsible for DoubleBridge clients' Systems Integration and Software...
Sr. Software Engineer - Parallel Programming, MPI - MA - Waltham - Interactive Supercomputing, Inc.
Interactive Supercomputing, Inc. develops Star-P, a software platform ...
Computational Scientist - CEN - OH - Dayton - High Performance Technologies, Inc.
High Performance Technologies, Inc. (HPTi), based in Reston, VA is a s...
WAS Administrator #1114BoA - IL - Schaumburg - Alpine Consulting, Inc
Job Description : We are looking for a WAS admin to work within the ...
Data Analyst #13034 - NJ - East Hanover - Radiant Systems, Inc
Tracking/making requests for support of the process, QC of programming...
Software Development Engineer - NJ - Jersey City - Xceedium
This is a chance to work on a truly revolutionary approach to secure r...
Senior Data Architect #siin-00004277 - VA - Fairfax - SI International
Title: Senior Data Architect Req Number: siin-00004277 Location(s)...
Project Manager #139792 - WA - Issaquah - Microsoft Corporation
Project Manager / Sr. Project Manager This position will project man...