Talk:OpenMP

Pros and cons
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 openmp.org 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 openmp.org 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 68.10.117.246 (talk) 04:53, 27 April 2014 (UTC)


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

Implementations
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
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). 131.215.105.153 (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 (talk • contribs) 21:14, 10 February 2009 (UTC)

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

./openmptestc Hello World from thread 3 Hello World from thread 0 Hello World from thread 2 Hello World from thread 1

./openmptestcpp Hello World from threadHello World from threadHello World from thread1 0 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
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.org

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 124.124.231.188 (talk) 08:04, 22 April 2016 (UTC)

C printf needs also critical
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)

External links modified
Hello fellow Wikipedians,

I have just modified one external link on OpenMP. Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
 * Added archive https://web.archive.org/web/20130809153922/http://openmp.org/wp/about-openmp/ to http://openmp.org/wp/about-openmp/

When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.

Cheers.— InternetArchiveBot  (Report bug) 17:59, 10 December 2017 (UTC)

I think the article would benefit from a table with _OPENMP date and release number
I'm a developer who uses OpenMP on occasion. We took a bug report for a failed compile because Microsoft compilers only support OpenMP 2.0 but we used an OpenMP 3.0 feature. We had no idea modern Microsoft compilers only support an early 2000's version of the standard.

The _OPENMP preprocessor macro documents the year and month (yyyymm as a decimal integer) of the release. It appears Microsoft advertises 200203 (yyyymm), which is somewhere between OpenMP 2.0 and OpenMP 2.5. In contrast, GCC advertises 201511.

A table that provides release versions and release dates (perhaps with some compiler support) would probably be very helpful to developers like me who land on this page after a search.

Jeffrey Walton (talk) 08:37, 22 January 2019 (UTC)