Re: Make NAMD2.7b1 with cuda bug?

From: Jim Phillips (jim_at_ks.uiuc.edu)
Date: Wed May 13 2009 - 13:41:29 CDT

NAMD will catch the flag if Charm++ doesn't consume it. There's not a
good way for an application to force polling behavior in Charm++, so NAMD
requires the flag for Charm++ and then ignores it.

-Jim

On Wed, 13 May 2009, Gengbin Zheng wrote:

>
> I am not aware of +idlepoll for mpi version of charm. I can not find it in
> the code either.
> MPI version of charm is doing idle sleep by default, and does have
> +idleblocking to turn on blocking wait, which does not work all the time (it
> assume msg under certain max size). But in any case, it is idleblocking the
> variable name, instead of idlepolling.
>
> Gengbin
>
> Jim Phillips wrote:
>>
>> This is incorrect. All versions of Charm++ support +idlepoll, and it is
>> needed by CUDA-enabled NAMD to ensure that the GPU is polled periodically.
>>
>> This code was broken for CUDA builds shortly before the 2.7b1 release and
>> fixed shortly afterwards. Please try the nightly build source code.
>>
>> -Jim
>>
>>
>> On Tue, 12 May 2009, Gengbin Zheng wrote:
>>
>>>
>>> That is a bug in NAMD. idelpoll is only defined in net version of charm++,
>>> not the mpi-linux-x86_64 version that you are compiling NAMD against.
>>> That code should be changed to:
>>>
>>> #if defined(NAMD_CUDA) && CMK_NET_VERSION
>>> if ( ! idlepoll ) {
>>> NAMD_die("Please add +idlepoll to command line for proper performance.");
>>> }
>>> #endif
>>>
>>>
>>> Gengbin
>>>
>>>
>>> Lev Lafayette wrote:
>>>> Hello NAMDers,
>>>>
>>>> I have just installed NAMD2.7b with cuda on our cluster. However during
>>>> the install process make failed because idlepoll was not defined in
>>>> src/BackEnd.C (line 135)
>>>>
>>>> The install is with openmpi/1.3.2-intel and intel/11.0 compilers.
>>>>
>>>> The configure command was ./config Linux-x86_64-icc --charm-arch
>>>> mpi-linux-x86_64 --with-cuda
>>>>
>>>> An attempt to make however results with:
>>>>
>>>> src/BackEnd.C(135): error: identifier "idlepoll" is undefined.
>>>>
>>>> As a dirty hack I've commented out the relevant lines in src/BackEnd.C
>>>>
>>>>
>>>> //#ifdef NAMD_CUDA
>>>> // if ( ! idlepoll ) {
>>>> // NAMD_die("Please add +idlepoll to command line for proper
>>>> performance.");
>>>> // }
>>>> //#endif
>>>>
>>>> . and it seems to make just fine after this and test jobs work.
>>>>
>>>>
>>>> Regards,
>>>>
>>>>
>

This archive was generated by hypermail 2.1.6 : Wed Feb 29 2012 - 15:50:57 CST