Threading Models for High-Performance Computing: Pthreads or OpenMP?
Comparing OpenMP MPI Programming Linux Threads Pthread LIbrary: In 1997, a group of vendors came together under the aegis of hardware manufacturer, Silicon Graphics, to formulate a new threading interface. Their common problem was that the primary operating systems of the time all imposed drastically different ways of programming for threads. UNIX employed Pthreads, Sun used Solaris threads, Windows used its own API, and Linux used Linux threads (until its subsequent adoption of Pthreads).

What is OpenMP?

In 1997, a group of vendors came together under the aegis of hardware manufacturer, Silicon Graphics, to formulate a new threading interface. Their common problem was that the primary operating systems of the time all imposed drastically different ways of programming for threads. UNIX employed Pthreads, Sun used Solaris threads, Windows used its own API, and Linux used Linux threads (until its subsequent adoption of Pthreads). The committee wanted to design an API that would enable a codebase to run without changes equally well on Windows and UNIX/Linux. In 1998, it delivered the first API specification of what was called OpenMP (In those days, the term ‘open’ was associated with the concept of support from multiple vendors—as in open systems—rather than with today’s implication of open source.)

The OpenMP specification consists of APIs, a set of pragmas, and several settings for OpenMP-specific environment variables. As further revisions have been made to the standard, it has become clear that one of OpenMP’s most useful feature is its set of pragmas. By judicious use of these pragmas, a single-threaded program can be made multithreaded without recourse to APIs or environment variables. With the recent release of OpenMP 2.0, the OpenMP Architecture Review Board (ARB), which is the official name for the committee that formulates the OpenMP specification, made clear its preference that developers use the pragmas, rather than the APIs. Let’s examine this approach in greater depth, starting with a recap of what pragmas are.

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

J2EE performance optimization, part 3 - design of experiments for performance tuning
by Kingsum Chow, Ph.D., senior performance architect, Managed Runtime ...
High Performance Linux Clusters with OSCAR, Rocks, OpenMosix, and MPI
by Joseph D. Sloan. O'Reilly Media Inc. To the outside world, a "su...
Threading Games for High Performance on Intel® Processors
The evolution of the multi-threaded processor design is the trend for ...
Enterprise Java performance: best practices
by Kingsum Chow, Ricardo Morin, Kumar Shiv, Software and Solutions Gro...
Developing your site for performance: principles and techniques of cost-effective Web site acceleration, part 3
Developing your site for performance: principles and techniques of cos...

Related Jobs:

Project Manager #139792 - WA - Issaquah - Microsoft Corporation
Project Manager / Sr. Project Manager This position will project man...
PeopleSoft Functional HR/Payroll Consultant - MA - Lexington, - Surebridge
Job Description and Areas of Responsibilities: Major responsibility wi...
PeopleSoft Functional HR/Ben Admin Consultant - MA - Lexington - Surebridge
Job Description and Areas of Responsibilities: Major responsibility wi...
Build Management #135920 - WA - Redmond - Microsoft Corporation
Are you an experienced lead looking for the next big opportunity? Wind...
Project Manager #139791 - WA - Issaquah - Microsoft Corporation
Project Manager / Sr. Project Manager This position will project man...
Software Engineer #100-18 - CA - Palo Alto - MailFrontier, Inc.
Join high-caliber software engineering team developing MailFrontier se...
Software Tester QA / Technical Support - Canada - Burnaby - Logical Software Corporation
We are looking for one smart multi-talent person who is familiar with ...
Associate Software Engineer - CA - Santa Clara - Willow Technology, Inc.
We are looking for a software engineer with tremendous potential for ...
Senior HP OpenView Consultant - WI - Madison - AE Business Solutions
Seeking a Senior HP OpenView expert to help our customers implement an...
Software Engineer #100-19 - CA - Palo Alto - MailFrontier, Inc.
Join high-caliber software engineering team developing MailFrontier ap...