Issue701

Title make iterated search release memory between iterations
Priority feature Status resolved
Superseder Nosy List jendrik, malte, manuel
Assigned To manuel Keywords
Optional summary

Created on 2016-12-21.12:32:48 by malte, last changed by manuel.

Messages
msg6150 (view) Author: manuel Date: 2017-02-23.09:17:36
Done.
msg6149 (view) Author: malte Date: 2017-02-21.14:07:48
I think unique_ptr makes more sense than a raw pointer here. The issue with
shared pointers exists either way (i.e., having a unique pointer is no worse
than a raw pointer in this respect) and will be resolved then. So I like the
pull request and think this can be merged.
msg6148 (view) Author: jendrik Date: 2017-02-21.13:50:13
I had a look at the pull request at 
https://bitbucket.org/manuel_h/downward/pull-requests/1.

The new code wraps the plain pointer returned by the option parser in a 
unique_ptr. I suspect it might be better to just "delete" the plain pointer when 
it's not used anymore, since we are planning to use shared_ptr and not unique_ptr 
for objects returned by the parser and it's impossible to convert a shared_ptr to 
a unique_ptr. 

Malte what's your take on this?
msg6145 (view) Author: jendrik Date: 2017-02-20.10:19:50
Thanks! I think the results look good:

coverage: goes up and down by at most 1 in 4 domains, nothing unusual.
time: can't be evaluated since these are all portfolios and iterated searches, but shouldn't be problematic.
memory: can be evaluated for LAMA-2011, where memory usage decreases significantly, sometimes by more than 1 GB.
quality: increases for 3 out 4 tested configurations.

So I'd say this looks good to merge, but I haven't seen the code. Can you add a link to the pull request, please?
msg6144 (view) Author: malte Date: 2017-02-20.10:13:34
Can you post a link to a pull request?
msg6143 (view) Author: manuel Date: 2017-02-20.09:38:06
Yes I was working on it. I just forgot to post the results:
http://ai.cs.unibas.ch/_tmp_files/heusner/issue701-v1-issue701-base-issue701-v1-compare.html

The difference is small but the change makes sense.
msg6136 (view) Author: jendrik Date: 2017-02-18.00:06:33
If I remember correctly Manuel started working on this, so let's maybe wait for his 
response. Manuel, if you're indeed working on this, could you please assign this 
issue to you?
msg6135 (view) Author: malte Date: 2017-02-17.23:53:01
Sure! The status from my previous message is still current.
msg6134 (view) Author: jendrik Date: 2017-02-17.21:22:42
What's the status here? Can I help out?
msg5957 (view) Author: malte Date: 2016-12-21.12:32:48
Iterated search doesn't delete the search engines it creates, which leaks a lot
of memory. I'm not calling this a "bug" because we always knew this and accepted
it as one aspect of our formerly lax memory management approach for "global"
objects, but if we added the algorithm today, we would certainly consider this a
major bug.

I think this can be fixed with 1-2 lines, and I can give pointers what needs to
be done and where. The main effort for this issue would be running the
experiments. (Assuming that there are no further complications that I'm
overlooking at the moment.)

Any takers? :-)
History
Date User Action Args
2017-02-23 09:17:36manuelsetstatus: in-progress -> resolved
messages: + msg6150
2017-02-21 14:07:48maltesetmessages: + msg6149
2017-02-21 13:50:13jendriksetmessages: + msg6148
2017-02-20 10:19:50jendriksetmessages: + msg6145
2017-02-20 10:13:34maltesetmessages: + msg6144
2017-02-20 09:38:06manuelsetassignedto: manuel
messages: + msg6143
2017-02-18 00:06:33jendriksetmessages: + msg6136
2017-02-17 23:53:01maltesetmessages: + msg6135
2017-02-17 21:22:43jendriksetmessages: + msg6134
2016-12-21 14:03:49manuelsetstatus: chatting -> in-progress
2016-12-21 13:44:45jendriksetnosy: + jendrik
2016-12-21 12:36:04manuelsetnosy: + manuel
2016-12-21 12:32:48maltecreate