[Developers] profiling ADMB model with gprof

Allan Hicks Allan.Hicks at noaa.gov
Wed Nov 17 21:51:42 PST 2010


Thanks to Ian for spurring me to compile ADMB10beta in Microsoft Visual 
C++, and thanks to all of the ADMB folks for their hard work.  I am very 
appreciative of the ease at which it is to compile the ADMB source code.

I compiled ADMB 10 using MS Visual Studio C++ 2008 (VC9) and MS Visual 
Studio C++ 2010 (VC10), and compared run times to ADMB 9 compiled with 
VC9.  I used the same expanded catch-at-age model that Ian Taylor used 
when investigating Linux.  All executables are 32-bit, compiled and ran 
on a Xeon 3680 with 3GB RAM running Windows XP 32-bit.  The results of 
25 runs are shown in the attached figure, and here are some key results:

1) I did not find Ian Taylor's Linux result that ADMB 10 was slower 
during minimization. ADMB9 and ADMB10 were about the same speed when 
compiled with the same compiler.

2) ADMB 10 was about 9% slower when estimating the Hessian (which 
includes the slightly faster minimization).

3) Compiling with VC10 resulted in slighter faster minimization times 
and significantly faster times when estimating the Hessian.

4) More than half of the run time is spent estimating the Hessian for 
this model.

Overall, the combination of ADMB10 and VC10 improves the speed of 
minimization, but is about the same speed as ADMB9 when also estimating 
the Hessian.  Finally, I did not observe the large difference in run 
times like Ian reported with Linux (he only looked at minimization time, 
so his observation has nothing to do with the Hessian).  This suggests 
to me that there may be something when compiling.

Thanks again to everyone and I'm glad to see these improvements (as well 
as the many improvements I am unaware of) in ADMB.

Allan




On 11/17/2010 5:37 PM, Ian Taylor wrote:
>  The which_library() function worked perfectly for me--thanks for the 
> information. It returned "s" and "o" when it was supposed to in 
> version 10. In version 9 perhaps it was not yet resurrected, as it 
> always returned "o", regardless of how I compiled.
>
> Pasted below is output showing that libado.a was 65% of the size of 
> libads.a in v9 but the ratio was 98% in v10beta, implying that 
> something may have gone wrong with the make file for 64 bit linux. 
> Allan Hicks just showed me some indication that on his Windows 
> computer, things were working well with v10beta, providing further 
> support for the idea that my slow run times were a problem with how 
> ADMB was getting compiled on linux.
>
> [~]$ ls -lh ~/h_itaylor/admb/v9/lib
> total 15M
> -rwxr--r-- 1 itaylor itaylor 1.5M Aug 18 13:52 libadmod.a
> -rwxr--r-- 1 itaylor itaylor 3.7M Aug 18 13:52 libado.a
> -rwxr--r-- 1 itaylor itaylor 5.7M Aug 18 13:52 libads.a
> -rwxr--r-- 1 itaylor itaylor 116K Aug 18 13:52 libadt.a
> -rwxr--r-- 1 itaylor itaylor 2.0M Aug 18 13:52 libdf1b2o.a
> -rwxr--r-- 1 itaylor itaylor 2.0M Aug 18 13:52 libdf1b2s.a
> -rwxr--r-- 1 itaylor itaylor  32K Aug 18 13:52 libdf1b2stub.a
> [~]$ ls -lh ~/h_itaylor/admb/v10/lib
> total 19M
> -rwxr--r-- 1 itaylor itaylor 1.9M Nov 10 12:29 libadmod.a
> -rwxr--r-- 1 itaylor itaylor 5.2M Nov 10 12:24 libado.a
> -rwxr--r-- 1 itaylor itaylor 5.3M Nov 10 12:28 libads.a
> -rwxr--r-- 1 itaylor itaylor 166K Nov 10 12:29 libadt.a
> -rwxr--r-- 1 itaylor itaylor 3.0M Nov 10 12:20 libdf1b2o.a
> -rwxr--r-- 1 itaylor itaylor 2.9M Nov 10 12:21 libdf1b2s.a
> -rwxr--r-- 1 itaylor itaylor  33K Nov 10 12:29 libdf1b2stub.a
>
>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ADMB9and10MS.pdf
Type: application/pdf
Size: 28084 bytes
Desc: not available
URL: <http://lists.admb-project.org/pipermail/developers/attachments/20101117/7f67faf4/attachment-0001.pdf>


More information about the Developers mailing list