Oops, forgot the link:
http://git.savannah.gnu.org/gitweb/?p=autoconf-archive.git;a=blob_plain;f=m4/ax_openmp.m4

Regards,
Elias


On 4 April 2014 22:53, Elias Mårtenson <loke...@gmail.com> wrote:

> 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
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>

Reply via email to