> See test/mmff94validate.cpp and the comments at the top. The easiest
> to grab is:
>
>     MMFF94_dative.mol2
>     MMFF94_opti.log

Okay I will definitely have a look at that one. Thanks.
>
> surprising. I'll be curious what you find. (You can also use
> obminimize on _dative.mol2 as well if you want a *lot* of profiling.)
>

Yes. I want to have a better idea of where is the load in terms of CPU 
usage.  First I tried to use gprof, since its the tool I am most 
familiar with, but I realize that gprof doesn't work for profiling 
applications that make use of shared libraries.

So I switched to OProfile.  I am using CPU_CLK_UNHALTED events to 
generate statistics. The following sample output shows the VDW energy 
term together with VectorDivide, --Substract, --Length, and floating 
point operations are the most frequently issued. This when running 
obminize against forcefields.sdf

CPU: Intel Architectural Perfmon, speed 1600 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a 
unit mask of 0x00 (No unit mask) count 12000
samples  %        image name               symbol name
-------------------------------------------------------------------------------
13316     6.9366  libopenbabel.so.4.0.0    
OpenBabel::OBForceField::VectorDivide(double*, double, double*)
12735     6.6339  plugin_forcefields.so    void 
OpenBabel::OBFFVDWCalculationMMFF94::Compute<false>()
11612     6.0489  libopenbabel.so.4.0.0    
OpenBabel::OBForceField::VectorSubtract(double*, double*, double*)
10354     5.3936  libopenbabel.so.4.0.0    
OpenBabel::OBForceField::VectorLength(double*)
7815      4.0710  libm-2.11.1.so           cos
7012      3.6527  libm-2.11.1.so           __ieee754_sqrt
5105      2.6593  libm-2.11.1.so           __ieee754_acos
4262      2.2202  libm-2.11.1.so           __ieee754_atan2
3571      1.8602  libopenbabel.so.4.0.0    
OpenBabel::OBForceField::VectorDot(double*, double*)
3317      1.7279  libm-2.11.1.so           sqrt
3314      1.7263  plugin_forcefields.so    
OpenBabel::OBForceField::VectorDistance(double*, double*)
3087      1.6081  libopenbabel.so.4.0.0    
OpenBabel::OBForceField::VectorCross(double*, double*, double*)
3030      1.5784  libopenbabel.so.4.0.0    
vector<OpenBabel::OBBond*>::iterator::__normal_iterator(OpenBabel::OBBond** 
const&)
2749      1.4320  plugin_forcefields.so    void 
OpenBabel::OBFFVDWCalculationMMFF94::Compute<true>()

-- truncated output ---

Martin handle me a bigger file of molecules, that I will profile but 
this time using obenergy,  in order to have a better idea of how the 
terms from MMFF94 are making use of the processor.  And I want also to 
profile obconformer using small/medium sized molecules.

> I think Tim also started on porting the forcefield.cpp code over to
> use the Eigen template matrix/vector library:
> https://github.com/timvdm/OBForceField/tree/master/src
>

I have to have a look at this too

Cheers,
--
Omar V.M.

------------------------------------------------------------------------------
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to