Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
Beginner
65 Views

Please tell me which VS supports OpenMP 3.0?

Please tell me which VS supports OpenMP 3.0? in OpenMP, 'for loop' use '#omp pragma parallel for' parallelize .but how does 'while loop' parallelize? Do linked list parallel need task? OpenMP3.0 have tasks Slide 30

0 Kudos
3 Replies
Highlighted
Black Belt
65 Views

The level of OpenMP support is a function of the OpenMP library, not of the Visual Studio version. As far as I could determine, the released Microsoft vcomp has not implemented any new OpenMP features since 2.0. Microsoft vcomp library was introduced in VS2005 and appears to be unchanged in VS2008. With VS2010, Microsoft introduces support for parallel with C++ lambda operators, which (I think) implies that tasking is added, but without mention of OpenMP 3.0.
Current versions of Intel OpenMP libiomp, which is included in Intel C++ and Fortran compilers and MKL libraries, support OpenMP 3.0 features, including the task feature originally proposed by Intel. All OpenMP syntax of both MSVC++ and the Intel compilers is handled by libiomp.
omp workshare provides for parallelization of while loops, but the libraries which "support" it for Windows do so only as a single region, so each individual while loop is restricted to one thread.
Improvement of support for linked list in OpenMP is among the reasons cited in on-line docs for addition of tasking in OpenMP 3.0.

0 Kudos
Highlighted
65 Views

Quoting - tim18
The level of OpenMP support is a function of the OpenMP library, not of the Visual Studio version.
That's not quite true. While you're right that the OpenMP constructs of the program must be implemented in the library, it is the compiler that needs to understand them as well. Somebody has to generate the calls to the library :-).

Cheers,
-michael
0 Kudos
Highlighted
Black Belt
65 Views

That's not quite true. While you're right that the OpenMP constructs of the program must be implemented in the library, it is the compiler that needs to understand them as well. Somebody has to generate the calls to the library :-).

Cheers,
-michael
That's certainly a reasonable point of view, but my colleagues have called the pre-processor stage of the compiler part of the library, although we aren't permitted to see the distinction in the intermediate files.
Anyway, it's not Visual Studio itself, but the compiler in use, which comes closer to probably intent of the original question.
0 Kudos