On Wed, Sep 30, 2015 at 6:57 AM, Nathan Goldbaum <nathan12343@gmail.com> wrote:
Note however that with the current version of the code, not having OpenMP will severely limit the performance, especially on quad-core machines, since an important factor in the speed comes from the parallel processing of the independent problem instances.

It seems you got much more than 4 times performance improvement -- which is the most you'll get from four cores, presumably :-). not that another 4 times or so isn't a good thing.

But I suppose there may be another technical option to support multiple cores

python threads with nogil?
 
For what it's worth (no idea what the order of magnitude of the technical risk is for something like this in a library like numpy), it's actually quite simple to dynamically test for OpenMP support at install time.

 
Basically, just try to compile a simple OpenMP test program in a subprocess. If that succeeds, then great, we can add -fopenmp as a compilation flag. If not, don't do that.

this sounds like an compilation-tiem tiem test, not isntall time. And install time isn't really helpful either, we really want plan old wheels, etc to work.

We'd need a run-time check.

-Chris


--

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker@noaa.gov