[gecode-users] High memory consumption during engine declaration

benoit benoitlaurent at neuf.fr
Thu Nov 12 15:47:54 CET 2009


Hello,
I eventually identified the problem. I am to blame. Despite the piece of 
advice specified in the documentation, I did not worry about the exact 
domain of my variables ("temporarily" of course). Some of them were 
declared with Int::Limits::max.as upper bound. Coupled with the element 
constraint, it caused this high memory consumption. At least, my 
experience may benefit to others.
Thank you again for your help and sorry for the trouble.
Benoît
> Hi,
>
> if the peak memory is during construction of the engine, it means it
> occurs during your problem setup, not during search.  Maybe you can
> explain a little more what you're doing there - do you use a lot of
> intermediate (STL?) data structures, perform symbolic computations,
> read in large files or the like?
>
> Cheers,
>    Guido
>
> On Wed, Nov 11, 2009 at 1:10 PM, Christian Schulte <cschulte at kth.se> wrote:
>   
>> Hi,
>>
>> I don't really know what could be the reason without further looking at the
>> program. The memory consumed looks massive, actually, almost impossible.
>>
>> Let's do some math: the search tree has a depth of 45, say with
>> recomputation possibly using adaptive recomputation that might be around 10
>> spaces stored during search. That is, each space takes almost 100 Meg! A
>> thousand variables and 30000 propagators (which propagators do you use?)
>> should normally take much less.
>>
>> So, looks really fishy.
>>
>> Christian
>>
>>
>>
>> --
>> Christian Schulte, www.ict.kth.se/~cschulte/
>>
>>
>> -----Original Message-----
>> From: users-bounces at gecode.org [mailto:users-bounces at gecode.org] On Behalf
>> Of benoit
>> Sent: Tuesday, November 10, 2009 11:11 AM
>> To: Christian Schulte
>> Cc: 'Mikael Zayenz Lagerkvist'; users at gecode.org
>> Subject: [gecode-users] High memory consumption during engine declaration
>>
>> Good morning,
>>
>> Thank you both for your replies.
>>     
>>> Another hint: if your model uses the standard Gecode search engines, you
>>>       
>> can
>>     
>>> inquire how much memory is occupied by the nodes of the search tree. If
>>> there is a huge difference between what is reported by the search engine
>>>       
>> and
>>     
>>> what is reported by your operating system, you program just has a memory
>>> leak.
>>>
>>>       
>> I indeed use a standard Gecode search engine (Branch-and-Bound). I
>> followed you advice and performed the test: both values are coherent.
>>     
>>> Then, how deep is the search tree? How many variables and propagators does
>>> your problem have?
>>>
>>>       
>> Here are the figures:
>> - Variables: 622
>> - Propagators: 25654
>> - Deep: 49
>>
>>     
>>> In the end: we could say much more if you provided a little bit more
>>>       
>> detail
>>     
>>> about what you observe. The information that your program uses a lot of
>>> memory is not that helpful in itself.
>>>
>>>       
>> Mea culpa: the memory consumption reaches 862MB.
>>
>> My message was inaccurate yesterday evening: the memory peak occurs when
>> the engine constructor is called. It's maybe consistent with the figures
>> provided above ?
>>
>> Benoît
>>
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>
>>
>> _______________________________________________
>> Gecode users mailing list
>> users at gecode.org
>> https://www.gecode.org/mailman/listinfo/gecode-users
>>
>>     
>
>
>   

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.ps.uni-sb.de/pipermail/users/attachments/20091112/e5a2b304/attachment.htm>


More information about the gecode-users mailing list