[gmx-developers] Re: Fortran acceleration + OpenMP strangeness

Szilárd Páll szilard.pall at cbr.su.se
Thu May 31 17:40:54 CEST 2012


On Thu, May 31, 2012 at 5:29 PM, Berk Hess <hess at kth.se> wrote:
> Hi,
>
> But on what platform(s) are Fortran kernels still faster?
> If this is only some obscure or old platform, we might want to get rid of
> them anyhow.
> It mostly does more bad than good, as many people seem to think Fortran is
> faster than C
> and therefore compile with Fortran and run into trouble.

I'm not an advocate of the Fortran stuff, but I have personally never
heard about such incidents. Additionally, none of the alternative
acceleration types is simply "C", but rather SSE2, SSE4.1, AVX128,
Power6, etc. so I don't see how can such a confusion arise.

--
Szilárd


> Cheers,
>
> Berk
>
>
>
> On 05/31/2012 05:26 PM, Erik Lindahl wrote:
>>
>> Hi,
>>
>> Formally the Fortran77 standard specifies that all variables should be
>> static, which of course interferes in bad ways with threads.
>>
>> While there are some fortran compilers that require flags to deviate from
>> this, I don't think GNU is one of them.
>>
>> I was anyway contemplating whether to disable them (temporarily) and add
>> back together with the other kernels in a few days, so I suggest I do that
>> in the detection patch.
>>
>> Cheers,
>>
>> Erik
>>
>> --
>> Erik Lindahl<erik at kth.se>  <lindahl at cbr.su.se>
>> Professor of Theoretical&  Computational Biophysics, KTH
>>
>> Professor of Computational Structural Biology, Stockholm University
>> Tel (KTH): +46 8 55378029  Tel (SU): +46 8 164675
>> Cell (Sweden): +46 73 4618050. Cell (US): +1 206 457 7887
>>
>> On 31 maj 2012, at 17:09, Szilárd Páll<szilard.pall at cbr.su.se>  wrote:
>>
>>> Hi,
>>>
>>> I bumped into a strange issue when verifying the nbnxn code with
>>> Jenkins. Using the Fortran kernels, while the appropriate OpenMP flag
>>> is used and mdrun compiles fine, some tools fail to compile with a
>>> weird message complaining about missing symbols:
>>>
>>> ../gmxlib/libgmx.so.6: undefined reference to `omp_get_thread_num'
>>> ../gmxlib/libgmx.so.6: undefined reference to `GOMP_parallel_end'
>>> ../gmxlib/libgmx.so.6: undefined reference to `omp_get_num_threads'
>>> ../gmxlib/libgmx.so.6: undefined reference to `omp_set_num_threads'
>>> ../gmxlib/libgmx.so.6: undefined reference to `GOMP_parallel_start'
>>> ../gmxlib/libgmx.so.6: undefined reference to `omp_get_max_threads'
>>>
>>> i) Does anybody have an idea what could be wrong?
>>>
>>> ii) For what platforms are the fortran kernels still useful? If there
>>> is any platform where they provide a faster alternative to the plain C
>>> kernels, we should definitely keep them. Otherwise, deprecating them
>>> is an option.
>>>
>>> Cheers,
>>> --
>>> Szilárd
>>>
>



More information about the gromacs.org_gmx-developers mailing list