[ADMB Users] separable runs slower in Catch-at-Age model

Thorvaldur Gunnlaugsson thg at hafro.is
Fri Nov 20 05:37:08 PST 2009

At http://www.hafro.is/~thg/langtn/re/care/
there are files caresnr.tpl and .dat
where catch at age data (7x41) is simulated
with errors in catch, recruitment and stock (i.e. M?).
Random walk in F and Selection.
Exactly the same model is fitted
with all variables initialised to their true value.
Random effects are N(age,year), F(year) and 50% Selection_age(year)
When I change all the SEPARABLE_FUNCTIONS to just FUNCTION
the run-time is slightly shorter.

The run command is in file xrun on the directory.
 >uname -a is:
Linux hafskip #1 SMP Wed Nov 4 00:02:04 EST 2009 
x86_64 x86_64 x86_64 GNU/Linux
1.9GB memory.

Another conundrum which may not be specific to admb,
since there may have been a similar experience with a Kalman filter program.
In http://www.hafro.is/~thg/langtn/re/carefs/
the same model is fitted but only the Initial stock and N at first age
is estimated as RE.
The stock is then forward calculated
(not a separable model but runs ten times faster since there are much 
fewer estimated param).
I also tried estimating the final stock and N at the highest age
and back calculating.
That is in line with the old style of VPA by adding catches.
I thought this would be computationally faster.
The backward version bwfsr.tpl loops printing Max gradient=0 ?
If the Ny0 is estimated not as RE the results are similar to the forward 
so I am inclined to believe this is not a programing error.
A simpler version bwfs.tpl runs but slower than fwfs.tpl but results are 
very similar.
I had in mind to compare to a version in which the stock would be 
calculated backwards by adding catches but could not be done.
A versions of the separable program above caresnr.tpl where the stock 
function sf33
uses the catch rather than F is slower or runs into problems with Hessian?

Thanks in advance

More information about the Users mailing list