Closed ridgeworks closed 5 years ago
Good to know, but it is hard to comment without the benchmark. There is no significant change to the shift/gc policies. Things may work out differently though as the exact sizes vary. It is still on my agenda to consider a more dynamic scheduling mechanism.
So, please share the benchmark. Can be private, but I prefer public if that is possible.
I've extracted the relevant test and attached it to this comment. As with my previous issue it requires the clpBNR module at https://github.com/ridgeworks/clpBNR_pl . Steps:
clpBNR.pl
HeatX_BM.txt
(attached)Thanks. The issue seems mostly related to being a too aggressive on GC after an exception. After some changes I now get 14.1 sec without and 12.2 sec with optimization (-O). (Intel NUC with i7-5557U running Ubuntu 18.04)
Need to investigate a little more before I trust this enough to publish.
Very good. Yes I am generating a fair number of exceptions.
You probably already know this but it first occurred in v7.7.14. Also when the stack limits in statistics/1 started being output output as '-'.
I'm trundling along on a 10 year old Mac Pro (2.26 Ghz. Xeon), so execution times won't be quite as impressive as yours.
On Jan 31, 2019, at 4:19 PM, Jan Wielemaker notifications@github.com wrote:
Thanks. The issue seems mostly related to being a too aggressive on GC after an exception. After some changes I now get 14.1 sec without and 12.2 sec with optimization (-O). (Intel NUC with i7-5557U running Ubuntu 18.04)
Need to investigate a little more before I trust this enough to publish.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SWI-Prolog/issues/issues/85#issuecomment-459510445, or mute the thread https://github.com/notifications/unsubscribe-auth/AG5UwUSTiYqRfDyMRCnWR3Qy08ECP3XBks5vI138gaJpZM4aa0ir.
For the record, the vital commit is SWI-Prolog/swipl-devel@d6a646a6cdc48667a137e43fecbb975f89973716
Pushed the fixes to swipl-devel.git. Bit too early for the stable branch, but I'm fairly confident this improves things a lot for programs handling many exceptions as part of their normal processing.
Thanks for resolving this so quickly. No rush, but any idea when this might make it into a development release? (I don't normally track those but I will in this case.)
On Feb 1, 2019, at 12:17 PM, Jan Wielemaker notifications@github.com wrote:
Pushed the fixes to swipl-devel.git. Bit too early for the stable branch, but I'm fairly confident this improves things a lot for programs handling many exceptions as part of their normal processing.
— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/SWI-Prolog/issues/issues/85#issuecomment-459797370, or mute the thread https://github.com/notifications/unsubscribe-auth/AG5Uwd4DDCG431310z_oq5QTAWA8vtmEks5vJHaegaJpZM4aa0ir.
Quite likely the coming week.
SWI-Prolog 8.0.1 on MacOS 10.13.4
I have a benchmark that takes approximately 33 secs to run on v7.6.4 and 715 secs on v8.0.1. In the latter case 675 secs is garbage collection (vs. 8.6 secs on v7.6.4). v8.0.1 does ~340,000 collections and ~100,000 global stack shifts vs. 3400 and 0 on v7.6.4. I've attached before and after statistics for details.
I know memory configuration has changed in 8.0.1 (single stack limit) but the only thing I've configured is:
Can that explain what I'm observing?