Hi,

The reason, I do not compute running sum of <U_i> by inside the
EvalNonBonded

_dUFrame(row) += dU_i

 is to avoid double computations of first derivatives required to compute
<U_ i U_ j> part of the Hessian matrix.

So as long as you appropriately take care of <U_ i U_ j> components of the
Hessian, your approach would also work. But it would require double
computations of U_i.

Best,
Sikandar

On Fri, Nov 4, 2016 at 4:09 PM, Mohammad Motevaselian <
[email protected]> wrote:

> Thanks Sikandar, I think I will try the first option for now.
>
> I went through the relative entropy code to understand its code structure,
> since I want to use some of its functions,
> and I have the following question:
>
> The EvalNonbonded function in csg_reupdate.cc takes in only one
> interaction information, and that's why you defined "_dUFrame"
> to construct a nlamda by 1 matrix for the first derivative of U w.r.t
> potential parameters. And then, since you want the <U_i> you reset
> _dUFrame.clear() in EvalConfiguration and do the following running sum
> over the frames:
>
> _DS(row) += _dUFrame(row);
>
> My question is that can we do the following in the EvalNonbonded:
>
> _dUFrame(row) += dU_i ;
>
> And the would  _dUFrame(row) /= _nframes be equal <U_i> ?
>
> Please let me know if I am missing something?
>
> Thanks,
> Hossein
>
>
>
>
>
> On Friday, November 4, 2016 at 11:15:21 AM UTC-5, sikandar wrote:
>>
>> Hi,
>>
>> Currently VOTCA supports multi-thread parallel computations on single
>> node only using shared memory parallel implementation. It exploits trivial
>> parallelism in processing the frames in the MD trajectory. Since each frame
>> can be processed independently of other frames, total number of frames are
>> divided among the threads and at the end partial results from all the
>> threads are gathered to compute total quantities.
>>
>> To run VOTCA across multiple nodes, you need to implement distributed
>> memory based parallel computations using MPI. There are two options
>>
>> (i) use the similar frame based parallel computations where the frames
>> are now divided not only among threads but also among different nodes. This
>> should be easy to implement with basic MPI.
>>
>> (ii) domain decomposition where particles are distributed among different
>> nodes and pair potentials and force computations are done in parallel. This
>> is similar to what MD engine uses and not trivial to implement.
>>
>> I believe option (i) would be helpful if you have too many frames, which
>> is usually not the case for coarse-graining as for CG relatively short
>> trajectories are used for optimization.
>>
>> Best,
>> Sikandar
>>
>>
>>
>>
>>
>> On Thu, Nov 3, 2016 at 9:54 PM, Mohammad Motevaselian <
>> [email protected]> wrote:
>>
>>> Thank you Christoph, now I was able to add and compile my program in
>>> VOTCA.
>>> I have another question, when I use any coarse graining method in VOTCA,
>>> it only utilizes the existing number of threads of a core. If I am
>>> correct I cannot use multiple cores (like mpi) to run any VOTCA csg
>>> programs. I was wondering if there is any way to do that or
>>> it needs to be implemented in VOTCA?
>>>
>>> On Wednesday, November 2, 2016 at 6:40:32 PM UTC-5, Christoph Junghans
>>> wrote:
>>>>
>>>> 2016-11-02 17:12 GMT-06:00 Mohammad Motevaselian <[email protected]>:
>>>>
>>>> > Hi,
>>>> >
>>>> > So far I have worked with VOTCA to do coarse graining and went
>>>> through the
>>>> > structure of the codes and scripts (specifically csg_reupdate.cc and
>>>> > csg_fmatch.cc).
>>>> > I want now to implement a new C function in VOTCA. Could you please
>>>> tell me,
>>>> > where should I specify the name of my new function, such that cmake
>>>> > understand
>>>> > that it exists and compile it.
>>>> All file named <PROGNAME>*.cc get compile into <PROGNAME>, e.g.
>>>> csg_stat.cc  csg_stat_imc.cc  csg_stat_imc.h get compile into csg_stat.
>>>> After adding the file to  csg/src/tools you need to re-run cmake.
>>>>
>>>> If you need a function in two csg programs, you need to add the file
>>>> to libcsg (dir csg/src/libcsg) and rerun cmake.
>>>>
>>>> Christoph
>>>> >
>>>> > thanks
>>>> > Mohammad
>>>> >
>>>> > --
>>>> > You received this message because you are subscribed to the Google
>>>> Groups
>>>> > "votca" group.
>>>> > To unsubscribe from this group and stop receiving emails from it,
>>>> send an
>>>> > email to [email protected].
>>>> > To post to this group, send email to [email protected].
>>>> > Visit this group at https://groups.google.com/group/votca.
>>>> > For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>>
>>>> --
>>>> Christoph Junghans
>>>> Web: http://www.compphys.de
>>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "votca" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to [email protected].
>>> To post to this group, send email to [email protected].
>>> Visit this group at https://groups.google.com/group/votca.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>> --
> You received this message because you are subscribed to the Google Groups
> "votca" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at https://groups.google.com/group/votca.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"votca" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/votca.
For more options, visit https://groups.google.com/d/optout.

Reply via email to