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
链接已复制
3 回复数
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.
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.
Quoting - tim18
The level of OpenMP support is a function of the OpenMP library, not of the Visual Studio version.
Cheers,
-michael
Quoting - Michael Klemm, Intel
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
Cheers,
-michael
Anyway, it's not Visual Studio itself, but the compiler in use, which comes closer to probably intent of the original question.
