OK, I understand. I did find this, which is probably a good thing to use. It includes the correct detection mechanism for Solaris as well.
Regards, Elias On 4 April 2014 22:50, Juergen Sauermann <juergen.sauerm...@t-online.de>wrote: > Hi, > > maybe later if the stuff is more stable. The autoconf checks are > already there, its just a matter of changing the default later on. > > /// Jürgen > > > > On 04/04/2014 04:31 PM, Elias Mårtenson wrote: > > Wouldn't it make sense to check for OMP and enable it if it's found? I'm > currently looking into autoconf to figure out a way to do this. Are you > willing to take the patch if I do that? > > Regards, > Elias > > > On 4 April 2014 22:30, Juergen Sauermann <juergen.sauerm...@t-online.de>wrote: > >> Hi Elias, >> >> if you ./configure nothing then MULTICORE will be #undef'ed and that >> means OMP will be disabled. This is the default for backward compatibility >> so that GNU APL still compiles even if you don't have OMP installed. >> >> For the behavior that you expect below, >> >> .,/configure CORE_COUNT_WANTED=all >> >> is the way to go. >> >> /// Jürgen >> >> >> >> On 04/04/2014 04:15 PM, Elias Mårtenson wrote: >> >> Cool, thanks for this! >> >> Can you clarify one thing: If you don't specify anything on the command >> line, and also not specify anything at runtime, what will the default be? >> >> Casually, I'd expect it to be set to OMP enabled, with the core count = >> the number of cores on the machine. >> >> Regards, >> Elias >> >> >> On 4 April 2014 21:58, Juergen Sauermann >> <juergen.sauerm...@t-online.de>wrote: >> >>> Hi, >>> >>> I have added a few functions to support multi-core/open MP programming >>> for GNU APL, (see SVN 184. >>> >>> 1. ./configure >>> >>> You can now ./configure static and dynamic core counts: >>> >>> >>> ./configure CORE_COUNT_WANTED=N with N>0 >>> >>> static maximum core count. Will >>> >>> #define MULTICORE 1 >>> #define STATIC_CORE_COUNT N >>> >>> >>> ./configure CORE_COUNT_WANTED=0 >>> >>> no openMP support. Will >>> >>> #undef MULTICORE >>> #define STATIC_CORE_COUNT 1 >>> >>> >>> ./configure CORE_COUNT_WANTED=-1 or =all >>> >>> dynamic core count using all available cores. Will >>> >>> #define MULTICORE 1 >>> #undef STATIC_CORE_COUNT >>> >>> >>> ./configure CORE_COUNT_WANTED=-2 or =argv >>> >>> dynamic core count set by command line option --cc N. >>> Same as =all if --cc is not given. Will >>> >>> #define MULTICORE 1 >>> #undef STATIC_CORE_COUNT >>> >>> >>> ./configure CORE_COUNT_WANTED=-3 or =syl >>> >>> dynamic core count set in APL by ⎕SYL Will >>> >>> #define MULTICORE 1 >>> #undef STATIC_CORE_COUNT >>> >>> The interpreter is started with core count 1. >>> Eg. ⎕SYL[26]←2 will set core count to 2. >>> >>> ⎕SYL[24;] is the core count used in in ./configure (read-only) >>> ⎕SYL[25;] is the core count detected by pthread_getaffinity_np() >>> (read-only) >>> ⎕SYL[26;] is the current core count (read-only unless >>> CORE_COUNT_WANTED=syl) >>> >>> >>> --------------------------------------------------------------------------------- >>> >>> In the interpreter code, the above #defines become available by: >>> >>> #include "Common.hh" >>> >>> That also declares the following functions/macros: >>> >>> CoreCount core_count() // return number of cores that will be used >>> CoreCount max_cores() // return number of cores detected by >>> pthread_getaffinity_np() >>> CoreCount setup_cores(CoreCount new_count) // set new core count, return >>> min ( new_count, max_cores ) >>> >>> if STATIC_CORE_COUNT is #defined then core_count() is a macro expanding >>> to max ( CORE_COUNT_WANTED, 1). >>> In that case, max_cores() cores will be used and not core_count() cores! >>> >>> ./configure checks for presence of omp.h and libgomp and sets CXX flags >>> in Makefiles. >>> >>> omp.h is #included by Common.hh if present and needed (ie. if MULTICORE >>> is 1) >>> >>> >>> /// Jürgen >>> >>> >>> >>> >>> >> >> > >