|This is the talk page for discussing improvements to the OpenMP article.|
|WikiProject Computing / Software||(Rated C-class, Low-importance)|
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
- #pragma omp sections
- #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 22.214.171.124 (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
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). 126.96.36.199 (talk) 19:15, 2 December 2008 (UTC)
- 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)
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)
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)