Re: [f2py] OpenMP - again
Paul Anton Letnes <[email protected]> Sat, 4 Sep 2010 13:51:06 +0200
| Newsgroups | gmane.comp.python.f2py.user |
|---|---|
| Message-ID | <[email protected]> |
Hi again! On 4. sep. 2010, at 12.30, Pearu Peterson wrote: > Hi! > > On Sat, Sep 4, 2010 at 12:31 PM, Paul Anton Letnes > <[email protected]> wrote: >> Dear f2py fans. >> >> I finally got an OpenMP example up and running. It even gives a decent speedup (1.8-ish) on my 2-core laptop! The only disadvantage is that I have not managed to pass the "-fopenmp" flag to the final compile-and-link command, meaning that if I simply run "make" (Makefile included, of course) the resulting python module is not linked to libopenmp. I managed to fix this by manually copying the final build command and adding the "-fopenmp" flag by hand - see detailed instructions in the Makefile. >> >> Can anyone please tell me how I can "automagically" get the -fopenmp flag into the final build command? I believe that will make this example more complete. Also, feel free to suggest improvements to this example! > > Isn't -fopenmp the flag for the compiler, not for the linker? > f2py has --opt, --f90flags, and --f77flags switches that can be used for > specifying extra options to fortran compiler. Note that when > using these switches then their default values defined > by numpy.distutils.fcompiler will be overwritten. So, always > remember specifying these default values in the switches > as some of them might be required. Redefining --opt might > be the safest way as then one would loose only optimization > flags. As far as I understand, -fopenmp includes -lgomp or similar flag which will tell the compiler to link to the OpenMP library. From my experience, it makes no difference if you include -lgomp or -fopenmp, as long as one of them are present, in the last (linking) stage. I have tried setting --opt='-fopenmp' but that does not help, either. I just want to insert that flag into the final linking stage, because it demonstrably helps. I do not, however, understand why setting --f90flags or --opt does not help? Quite possibly, I have missed something obvious... Cheers, Paul.