Let me have a go at answering based on my experiences.
There is OpenMP 3 support in recent versions of gcc. But to make it
usable you need two more pieces:
(a) libgomp to have been built with the compiler (it is optional). This
can be built statically or as a DLL: if the latter it needs to be in the
search path.
(b) A version of pthreads. There are two available, one based on
pthreads-w32 which uses a DLL (and so needs to be in your path) and
winpthreads, part of the 'experimental' section of mingw-w64, which can
be built statically or as a DLL.
For simply adding -fopenmp to your compile/link to work you need the
compiler configured correctly. There will be a file libgomp.spec
somewhere in the compiler tree, and it may need to be edited to be
something like
*link_gomp: -lgomp -lpthread
(and almost certainly will need editing if you use static linking).
Given those pieces, all the combinations I have tried recently work
except x64 dynamic winpthreads, which is prone to crashing (most often
during process termination.)
As far as I know both pthreads use Windows threads. In any case, the
performance can be really poor compared to say Linux as there are far
more substantial overheads. So our experience is that OpenMP is only
useful on Windows for running quite appreciable computations in
parallel. Which is not what our users use OpenMP for ....
The reason I make the comment about DLLs is that we have seen several
instances of people compiling extensions which use OpenMP and
distributing them without the DLLs they depend on.
These days I use my own toolchain builds, but in the past I have used
Ozhan's ('sezero') builds of gcc pre-4.5.4. He supplies pthreads-w32
(as far as I recall you needed to unzip it).
Brian Ripley
On 02/01/2012 13:57, Peter Meyer wrote:
> Hi @All
>
> First: Happy New Year!
>
> In the last months i was developing a Cross Compiler Program (MinGW
> 32-Bit and Visual C/C++ 64-Bit).
> I choosed QT 4.7 - but: The MS Compiler only supports OpenMP 2.0 so the
> Code was not much efficient,
> mostly parallel for loops. The Problem at MinGW 4.5 was, thadt sometimes
> the Programm crashed because
> of a Bug in the Compiler (there was a Bug description like: OpenMP is
> broken).
>
> Ok, thadt was MinGW, now lets talk about MinGW64. How well rungs OpenMP
> 2 or higher or should i
> rethink OpenMP at all and using the OpenSource Version of Intel Thread
> Building Blocks?
>
> Greetings from Germany,
> Peter
--
Brian D. Ripley, [email protected]
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
------------------------------------------------------------------------------
Ridiculously easy VDI. With Citrix VDI-in-a-Box, you don't need a complex
infrastructure or vast IT resources to deliver seamless, secure access to
virtual desktops. With this all-in-one solution, easily deploy virtual
desktops for less than the cost of PCs and save 60% on VDI infrastructure
costs. Try it free! http://p.sf.net/sfu/Citrix-VDIinabox
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public