From Wikipedia, the free encyclopedia
Jump to: navigation, search
WikiProject Computing / Software (Rated C-class, Low-importance)
WikiProject icon This article is within the scope of WikiProject Computing, a collaborative effort to improve the coverage of computers, computing, and information technology on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
C-Class article C  This article has been rated as C-Class on the project's quality scale.
 Low  This article has been rated as Low-importance on the project's importance scale.
Taskforce icon
This article is supported by WikiProject Software (marked as Mid-importance).

Pros and cons[edit]

Is the con "Low parallel efficiency: rely more on parallelizable loops, leaving out a relatively high percentage of a non-loop code in sequential part" valid given the pragmas

  1. #pragma omp sections
  2. #pragma omp section

mikeliuk 08:09, 19 May 2006 (UTC)

Probably not. It should probably be removed.

Another issue is the inclusion of the omp.h header in the sample code. This header file is not needed unless an actual function (such as omp_set_num_threads()) is called. I will remove it from the sample code that has it but doesn't need it.

--Foreignkid 19:15, 26 July 2006 (UTC)

I found it is actually not that simple to get significant performance benefits using openmp. I suspect this may be caused by L1/L2 cache effects on SMP systems. These effects are now very limited described by the term "memorybandwith" in the performance section. Perhaps some more explicit text of this nature should be added.

Ruudschramp 06:40, 9 August 2007 (UTC)

This article needs to be updated for OpenMP 3.0 and tasking!

--rchrd (talk) 23:08, 19 August 2008 (UTC) In general, people don't know that the site also includes a very lively forum where questions about OpenMP are asked and answered by the experts. That's why I added a link specifically to the forums and resources pages. This is part of the "learning" experience for OpenMP. There is also an excellent new book, Using OpenMP. Ok. What I'll do is give a better description of the site. -- rchrd (talk) 06:45, 20 August 2008 (UTC)

This is just a nit, but probably worth fixing: The proper spelling of the programming language is "Fortran", not "FORTRAN". This was fixed by the standards committee many years ago. But is it worth changing all references here? -- rchrd (talk) 16:44, 20 August 2008 (UTC) So I made the FORTRAN->Fortran changes, but forgot to log in first, so it shows the IP address of one of Sun's servers. Sorry 'bout that. -- rchrd (talk) 18:59, 21 August 2008 (UTC)

In the cons: "Lacks fine-grained mechanisms to control thread-processor mapping." . That may seem like a con, but actually it's a pro. People typically don't want to have to re-tuned their thread-processor mapping of all their OpenMP application when they buy new machines. They'd rather just expose the parallelism and let the runtime environment fix mapping for them. This has been discussed several times at the OpenMP Workshop. Samuel Thibault 17:23, 1 December 2008 (UTC)

The assertion that "Often multithreading is used when there is no benefit yet the downsides still exist.", is hardly relevant as it has nothing to do with the multi-threading approach of OpenMP. Also, the complain that a capability is used in inappropriate situations does not seem relevant to me. — Preceding unsigned comment added by (talk) 04:53, 27 April 2014 (UTC)

At least that "benefits vs. downsides" isn't specific to OpenMP. — Dsimic (talk | contribs) 17:45, 27 April 2014 (UTC)


gcc-4.1.2 on RedHat EL 4 does support OpenMP, contradicting the statement in the Implementations section which claims that OpenMP first appeared in gcc-4.2 --Dwchin (talk) 18:14, 24 November 2009 (UTC)

NM. Found this discussion -- apparently, RedHat backported it in. --Dwchin (talk) 18:22, 24 November 2009 (UTC)

quick tip to compile[edit]

For anyone just getting started (like me) with OpenMP, if you want to compile these sample programs with gcc, just add the "-fopenmp" flag (at least, that's all I had to do for the sample programs). (talk) 19:15, 2 December 2008 (UTC)

Magckoffers (talk) 19:34, 10 February 2009 (UTC) The pragma described in Clauses for Work-Sharing Constructs:

  1. pragma omp parallel schedule(dynamic, CHUNKSIZE) private(j,k)

provokes the following error from icpc (Intel C++ compiler) Version 11: error: schedule clause is incompatible with directive

 #pragma omp parallel schedule(dynamic, CHUNKSIZE) private(j,k) 

Is this syntax correct?

Nope it wasn't, I've fixed it. —Preceding unsigned comment added by SamuelThibault (talkcontribs) 21:14, 10 February 2009 (UTC)

bug in c++ code section[edit]

I compiled both c and c++ version with gcc 4.3.2 and the outputs look quite different:

Hello World from thread 3
Hello World from thread 0
Hello World from thread 2
Hello World from thread 1
Hello World from threadHello World from threadHello World from thread1
Hello World from thread23

There are 4threads

The latter is different after each execution
--14:03, 28 May 2009 (UTC)

The output is correct. You are seeing the streaming operator interleaving its operation across different threads. You can add a critical pragma to cout/cerr to prevent multiple threads calling the std. lib simultaneously, and the output will look similar. however this complicates the example unneccesarily, and I am not sure it really helps the point. User A1 (talk) 16:06, 28 May 2009 (UTC)

OPENMP link[edit]

External links in an article lede are a bad idea. The openmp website is already linked in the "External links" section. Furthermore as this is a description of a system or product, as far as I am aware there is no requirement (at least under US law) for trademark notices to be added. Additioanlly such entries in the article lede are incongrous with the remainder of the passage. For more information on appropriate use of external links, see WP:LINK, additionally polices on writing a good lede are at WP:LEDE. I would prefer to discuss content here, in an open fashion rather than via email. User A1 (talk) 23:49, 3 November 2009 (UTC)

   OpenMP Architecture Review Board[1]

Developer(s) OpenMP Architecture Review Board[1] Stable release 4.5 / November 15, 2015; 5 months ago Operating system Cross-platform Platform Cross-platform Type Extension to C, C++, and Fortran; API License Various[2] Website

OpenMP (Open Multi-Processing) is an application programming interface (API) that supports multi-platform shared memory multiprocessing programming in C, C++, and Fortran,[3] on most platforms, processor architectures and operating systems, including Solaris, AIX, HP-UX, Linux, OS X, and Windows. It consists of a set of compiler directives, library routines, and environment variables that influence run-time behavior.[2][4][5]

OpenMP is managed by the nonprofit technology consortium OpenMP Architecture Review Board (or OpenMP ARB), jointly defined by a group of major computer hardware and software vendors, including AMD, IBM, Intel, Cray, HP, Fujitsu, Nvidia, NEC, Red Hat, Texas Instruments, Oracle Corporation, and more.[1]]]]\p\pp[pl [pl pl [pl [lp [pl [pl [pl [lp [pl [pl [pl [pl [lp [pl [pl [pl [lp [ [pl [ [p [p [p [p [ p[ p [ p[l pl[lp pl — Preceding unsigned comment added by (talk) 08:04, 22 April 2016 (UTC)

C printf needs also critical[edit]

On my machine I need to add #pragma omp critical before the first printf in the C example for a correct functioning. Looks like it is not save to execute printf in parallel similar to what is mentioned in the c++ example.--Jocme (talk) 18:44, 20 October 2013 (UTC)