[ADMB Users] [R-sig-ME] MCMC fitting in glmmADMB
maren
maren.rebke at avitec-research.de
Thu Oct 23 04:35:50 PDT 2014
Hi Dave,
Thank you very much for fixing the memory leak and sending the new
version of glmmadmb! It seems to run fine. I only had to use save.dir in
the first run in order to create the .dat and other files in the same
folder as glmmadmb.exe. Otherwise I get the error message attached
below. I will now try to run a longer MCMC chain and check the memory
usage.
Thanks again for taking care of this problem so quickly!
Best wishes,
Maren
Error message:
Error in glmmadmb(Response ~ Fixed1 + Fixed2 + Fixed3 + (1 | Random1) +:
The function maximizer failed (couldn't find STD file) Troubleshooting
steps include (1) run with 'save.dir' set and inspect output files; (2)
change run parameters: see '?admbControl'
In addition: Warning message:
running command 'C:\WINDOWS\system32\cmd.exe /c
"C:/Users/maren/Documents/R/win-library/3.1/glmmADMB/bin/windows64/glmmadmb.exe"
-maxfn 500 -maxph 5 -noinit -shess' had status 1
Am 22.10.2014 18:06, schrieb dave fournier:
> On 10/22/2014 04:31 AM, maren wrote:
>
>
> I found two memory leaks in df1b2lp8.cpp which were causing
> glmmadmb to run out of memory when doing mcmc. They would
> also affect other aspects of the analysis.
>
> The offending pointers are
>
> block_diagonal_re_list
> block_diagonal_fe_list
>
> In the code they should be checked to see if they are non zero and
> deleted if they are. code is like that below.
>
> // check if already allocated
> if (block_diagonal_re_list)
> {
> delete block_diagonal_re_list;
> block_diagonal_re_list=0;
> }
> block_diagonal_re_list = new imatrix(1,num_separable_calls,
> 1,itmp);
> if (block_diagonal_re_list ==0)
> {
> cerr << "error_allocating imatrix" << endl;
> ad_exit(1);
> }
> // check if already allocated
> if (block_diagonal_fe_list)
> {
> delete block_diagonal_fe_list;
> block_diagonal_fe_list=0;
> }
> block_diagonal_fe_list = new imatrix(1,num_separable_calls,
> 1,itmpf);
>
> if (block_diagonal_fe_list ==0)
> {
> cerr << "error_allocating imatrix" << endl;
> ad_exit(1);
> }
>
>
> Thanks to valgrind for making this easy to find.
>
> So we need to get this into glmmadmb somehow.
>
>
>
>> Hi Dave,
>>
>> Thank you very much for offering to look into the problem. I attached
>> a shortened version of my data set (the first 2000 lines out of
>> 11195). I tried it out and the model is in principal running with
>> this shortened version. But please let me know if you need a larger
>> part of the data set.
>>
>> Technically the data set is not owned by us. Therefore, please don’t
>> distribute the data set further (without prior permission). For the
>> same reason I made all the variable names general. I assumed that the
>> details of what exactly is analysed here are not important for the
>> problem. But if you need more details about the study or the
>> variables please don’t hesitate to ask.
>>
>> I attached the R-code to run the model below. In case it is of
>> importance: I am using the R version 3.1.0 and the glmmADMB version
>> 0.8.0.
>>
>> Thanks!
>>
>> Maren
>>
>> #-----------------------------------------------------------------------------------------------------------------------#
>>
>> # Here is the R-code:
>>
>> library(glmmADMB)
>>
>> Data <- read.csv2("Rebke_Data_sample.csv", header=TRUE,
>> colClasses="character")
>>
>> Data$Response<- as.numeric(Data$Response)
>>
>> Data$Fixed1<- as.factor(Data$Fixed1)
>>
>> Data$Fixed1 <- relevel(Data$Fixed1, ref="Off")
>>
>> Data$Fixed2<- as.factor(Data$Fixed2)
>>
>> Data$Fixed2 <- relevel(Data$Fixed2, ref="1")
>>
>> Data$Fixed3<- as.factor(Data$Fixed3)
>>
>> Data$Random1<- as.factor(Data$Random1)
>>
>> Data$Random2<- as.factor(Data$Random2)
>>
>> Data$Random3<- as.factor(Data$Random3)
>>
>> Data$Random4<- as.factor(Data$Random4)
>>
>> Data$Offset<- as.numeric(Data$Offset)
>>
>> nsim <- 2000
>>
>> thin <- 10
>>
>> Model <- glmmadmb(Response ~ Fixed1 + Fixed2 + Fixed3 + (1|Random1) +
>> (1|Random2) + (1|Random3) + (1|Random4) + offset(log(Offset)),
>> data=Data, family="poisson", zeroInflation=TRUE,mcmc=TRUE,
>> mcmc.opts=mcmcControl(mcmc=nsim, mcsave=thin))
>>
>> #-----------------------------------------------------------------------------------------------------------------------#
>>
>>
>>
>>
>> Am 22.10.2014 04:44, schrieb dave fournier:
>>> On 10/21/2014 02:48 PM, - - wrote:
>>>
>>> Hi,
>>>
>>> That sounds like a bug maybe. Maybe a memory leak. Don't remember
>>> exactly how it is implemented, but
>>> I don't think the memory use of any of the MCMC stuff should grow
>>> over time like that. If you send me
>>> what I need to run your model I'll take a look at it.
>>>
>>> Dave
>>>
>>>
>>>> Hi Dave,
>>>>
>>>> Sorry, I guess I didn’t explain my problem correctly in my original
>>>> request due to translation issues. It is the RAM and not the hard
>>>> drive space that is reaching its capacity. After running the MCMC
>>>> chain for 24 hours (approximately 2000 iterations for the model of
>>>> my own data) the allocated memory is already about 6 GB.
>>>>
>>>> I will send a follow up to the mailing list to clarify this.
>>>>
>>>> Best wishes,
>>>> Maren
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.admb-project.org/pipermail/users/attachments/20141023/34926d1b/attachment-0001.html>
More information about the Users
mailing list