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

Berk Hess hess at kth.se
Thu May 31 17:42:56 CEST 2012


On 05/31/2012 05:40 PM, Szilárd Páll wrote:
> 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
Maybe this is no longer an issue with cmake.
With autoconf there was an enable-fortran flag, I don't see such a flag 
with cmake.

Cheers,

Berk
>
>> 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 deviCUDA driver version is insufficient for CUDA runtime versionate 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