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.
