----------------------------------------------------------------------------------
@MSGID:
<11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com> 7c2763f9
@REPLY: <m2msy1n81k.fsf@logic.at> 92266295
@REPLYADDR Mild Shock <bursejan@gmail.com>
@REPLYTO 2:5075/128 Mild Shock
@CHRS: CP866 2
@RFC: 1 0
@RFC-References:
<f4ad7701-cae3-4513-8b8e-a483415c6ad8@googlegroups.com> <977d5e9f-469f-4516-9260-26e917bbec2cn@googlegroups.com>
<142ae65f-61ad-403e-8450-caebfddf6d0an@googlegroups.com> <4e9bf208-0882-4f63-b243-b434f0a1392cn@googlegroups.com>
<3a23c78d-d4a1-472a-a460-776a5ca7d3een@googlegroups.com> <e945e9c8-e72f-41a2-bb06-473d275396c0n@googlegroups.com>
<030ed934-efa4-4a1e-96b4-96f9c5214a6en@googlegroups.com> <db4b30f2-2c33-42f6-9630-2828418aa146n@googlegroups.com>
<868d4f75-c293-4929-83b7-e319f4dba451n@googlegroups.com> <m2r0njgghs.fsf@logic.at>
<37516061-91b6-4129-8221-4bdb0fa59f42n@googlegroups.com> <6c9c0d39-8658-47b8-8526-2fd11e08fc71n@googlegroups.com>
<bdad9f24-5b6a-49a8-98f9-3c2dd3e20be1n@googlegroups.com> <m2msy1n81k.fsf@logic.at>
@RFC-Message-ID:
<11039c8a-8b50-47fb-b0e9-3f09d08d46fbn@googlegroups.com>
@TZUTC: -0700
@PID: G2/1.0
@TID: FIDOGATE-5.12-ge4e8b94
I am also slower than SWI-Prolog with formerly Jekejeke Prolog,
but sandwhich between Scryer Prolog and SWI-Prolog for this example.
I never know whether my CLP(FD) still works, so first some sanity checks:
?- nth_member(X, [5,4,6], 4).
X = 2;
fail.
?- nth_member(2, [5,4,6], X).
X = 4;
fail.
Then the benchmark results:
?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
% Time 48513 ms, GC 373 ms, Wall 04/09/2023 21:41
true.
But I don`t know whether its comparable with Scryer Prolog since
I didn`t test Scryer Prolog, and the Scryer Prolog figures are from
Markus Triskas machine.
I am currently phasing out formerly Jekejeke Prolog. It should receive
the same core as Dogelog Player. And then maybe can also re-add
CLP(FD) and see what happens. But this might take months. Especially
since I want to reinvent CLP(FD), adding some CRA Strategy, and I
don`t know yet eactly how to do it. I could optimized the non-labeling
behaviour exactly towards this test case, where GNU Prolog performs well.
Markus Triska schrieb am Montag, 4. September 2023 um 19:42:01 UTC+2:
> Mild Shock <
burs...@gmail.com> writes:
>
> > Whats the Scryer Performance of this Example?
> >
> > /* GNU Prolog 1.5.0 */
> > ?- between(1,200,N), length(L,N), nth_member(I,L,E), fail; true.
> > (94 ms) yes
> >
> > /* SWI-Prolog 9.1.14 */
> > ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), fail; true)).
> > % 94,504,524 inferences, 4.766 CPU in 4.767 seconds (100% CPU,
19830457 Lips)
> > true.
> With Scryer Prolog 0.9.2 on my machine, I get:
>
> ?- time((between(1,200,N), length(L,N), nth_member(I,L,E), false; true)).
> % CPU time: 84.182s
> true.
>
> On my machine, that`s ca. 15 times slower than SWI 8.3.15, which is the
> last SWI version I found installed on this machine. Newer versions may
> well be faster! For best performance, I recommend to build Scryer Prolog
> with the optional --release flag, i.e.:
>
> $ cargo build --release
> All the best,
> Markus
>
> --
> comp.lang.prolog FAQ:
http://www.logic.at/prolog/faq/
> The Power of Prolog:
https://www.metalevel.at/prolog
--- G2/1.0
* Origin: usenet.network (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441