Intel® Moderncode for Parallel Architectures
Support for developing parallel programming applications on Intel® Architecture.

Please tell me which VS supports OpenMP 3.0?

zhangzhe65
Beginner
1,733 Views
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
TimP
Honored Contributor III
1,733 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
Michael_K_Intel2
Employee
1,733 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
TimP
Honored Contributor III
1,733 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
Reply