I tried to reproduce the increased pruning time locally but couldn't. I compared base to v3 on freecell/p03.pddl with sssimple. In the grid experiment, pruning time increased from 44.46 to 50.28 seconds (+5.82 seconds).
I ran both four times with the following timings:
base: 43.81s, 43.99s, 43.58s, 39.82s
v3: 43.42s, 42.20s, 41.28s, 40.96s
The fact that they got faster and faster suggests I might have some kind of speed-step functionality kicking in, making comparison difficult. But I ran that in an interleaved version and also changed the order (base, then v3; both at the same time; base, then v3; v3, then base), so if we average, it should be reasonably reliable.
That I cannot reproduce this could be due to compiler and hardware difference. From my casual look at the data, I think we mostly see negative effects on large tasks and in domains with lots of operators. This suggest to me that it could be cache-related; in the old code, some critical data structure were a bit more cache-friendly (perhaps just a bit smaller, perhaps because of allocation patterns), and this only shows for large tasks where cache becomes an issue. This could explain why I don't see this on my machine; it would depend on the specific cache characteristics.
Just speculation at this point.
|