Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.prolog > #15918
| From | Mild Shock <janburse@fastmail.fm> |
|---|---|
| Newsgroups | comp.lang.prolog |
| Subject | MADV_HAWAII: Aloha from Minimal Terms (Was: MADV_HAWAII: Aloha from the 300ms Abyss) |
| Date | 2026-09-14 14:43 +0200 |
| Message-ID | <1188q5d$8isq$1@solani.org> (permalink) |
| References | <107cdg8$3ok7g$1@solani.org> <10p44s1$16ps$1@solani.org> <114cv6j$kb0c$1@solani.org> <117v88c$1n4v$1@solani.org> |
Hi, Kuniakis Automatons, or who ever wrote it and braught it to SWI-Prolog are pretty cool, My Dogelog Player currently cannot scale that high. Here is a SWI-Prolog example: /* SWI-Prolog 10.1.14-55-g8d24500be */ ?- between(1,5,J), N is J*1000000, hydra(N,_X), time(term_minimal(_X,_)), fail; true. % -1 inferences, 0.141 CPU in 0.243 seconds (58% CPU, -7 Lips) % -1 inferences, 0.203 CPU in 0.193 seconds (105% CPU, -5 Lips) % -1 inferences, 0.547 CPU in 0.622 seconds (88% CPU, -2 Lips) % -1 inferences, 0.719 CPU in 0.816 seconds (88% CPU, -1 Lips) % -1 inferences, 0.375 CPU in 0.485 seconds (77% CPU, -3 Lips) true. But why is time not monotonic? Some chaotic GC effect, especially the array buffers? And what are the -7 LIPS, a new take on safe AI? Well I don't go backward with my LIPS, and its a smooth and tranquille life in Dogelog Player land. Look how beautiful my boy is: /* Dogelog Player 2.3.1 for Java */ ?- between(300,305,N), hydra(N,_X), time(sys_term_canonical(_X,_)), fail; true. % Zeit 109.402 ms, Benutzer 100 %, Lips 1690 k % Zeit 105.561 ms, Benutzer 100 %, Lips 1763 k % Zeit 103.305 ms, Benutzer 100 %, Lips 1813 k % Zeit 106.643 ms, Benutzer 100 %, Lips 1768 k % Zeit 106.890 ms, Benutzer 100 %, Lips 1776 k % Zeit 106.227 ms, Benutzer 100 %, Lips 1798 k true. Bye P.S.: What about using canonical/minimal for the top-level. I got these two different outcomes: /* SWI-Prolog 10.1.14-55-g8d24500be */ ?- X = f(f(X)). X = f(f(X)). /* Dogelog Player 2.3.1 for Java */ ?- X = f(f(X)). X = f(X). Its not an extremly new feature in Dogelog Player. Maybe 1-2 years old already? Mild Shock schrieb: > Hi, > > Finally unlimited catch/throw arrived in Dogelog > Player. We do not anymore depend on the Java native > stack. The handling got a little bit slower, working > > on to get back the same speed. But its pretty robust > already and takes a 1'000'000 catch/3 without problems. > Here some testing results: > > /* Dogelog Player 2.3.1 for Java */ > % ?- between(1,3,_), time(test), fail; true. > % % Zeit 315.037 ms, Benutzer 100 %, Lips 22224 k > % % Zeit 379.011 ms, Benutzer 100 %, Lips 18473 k > % % Zeit 207.902 ms, Benutzer 100 %, Lips 33682 k > % true. > > /* Trealla Prolog 3.9.40 */ > % ?- between(1,3,_), time(test), fail; true. > % % Execution aborted > % % CPU elapsed 2.141s, 4_000_323 inferences, 1.869 MLips > > /* Scryer Prolog 0.10.0 */ > % ?- between(1,3,_), time(test), fail; true. > % % CPU time: 0.281s, 3_000_059 inferences > % % CPU time: 0.281s, 3_000_059 inferences > % % CPU time: 0.281s, 3_000_059 inferences > % true. > > /* SWI-Prolog 10.1.14 */ > % ?- between(1,3,_), time(test), fail; true. > % % 3,000,007 inferences, 0.281 CPU in 0.389 seconds > % % 3,000,007 inferences, 0.062 CPU in 0.064 seconds > % % 3,000,007 inferences, 0.062 CPU in 0.063 seconds > % true. > > What is SWI doing in the first run? Does it > send the throw ball to Hawaii and back? > > Bye > > BTW: This was the test case: > > deep(0,G) :- !, G. > deep(N,G) :- M is N-1, catch(deep(M,G),foo,true). > > test :- catch(deep(1000000,throw(bar)),_,true). > > Mild Shock schrieb: >> Hi, >> >> Usual question: >> >> > Why implement both pre-emptive threading >> AND cooperative tasks/engines? >> >> I had implemented the ISO proposal in formerly Jekejeke >> Prolog, you find the ISO proposal here: >> >> ISO/IEC DTR 13211–5:2007 >> Prolog multi-threading support >> https://logtalk.org/plstd/threads.pdf >> >> But the ISO proposal doesn't match modern WebGPU APIs, >> where your logical threads can live remotely in a dedicated GPU >> >> in the VRAM there, and where you would have launch >> parameters that say: Hey please run 4096 compute >> >> shaders for me, that have independet thread state. Using >> cooperative multi-tasking as the orchestrator works well. >> >> Bye >
Back to comp.lang.prolog | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
VIP0909: VibeCore Improvement Proposal Mild Shock <janburse@fastmail.fm> - 2025-08-11 11:35 +0200
VIP0111: Does a Map have a Constructor? (Was: VIP0909: VibeCore Improvement Proposal) Mild Shock <janburse@fastmail.fm> - 2026-03-14 18:11 +0100
100% Prolog Hash map beats SWI C Trie (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-03-17 04:07 +0100
AI Accelerators and ISO Prolog multi-threading (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:28 +0200
Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels] (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-07-29 15:41 +0200
Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM] (Was: Actor/Erlang is dead, no Thread and Mailbox conflation [golang channels]) Mild Shock <janburse@fastmail.fm> - 2026-07-30 11:22 +0200
Work slicing can simulate AbortController (Was: Summer Challenge: libSQL = Prolog+Modes [VDBE versus π-WAM]) Mild Shock <janburse@fastmail.fm> - 2026-08-01 13:23 +0200
Introducing an asm/1 statement in a Prolog system (Was: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:21 +0200
Introducing an asm/1 statement in a Prolog system (Re: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-08-09 20:25 +0200
MADV_HAWAII: Aloha from the 300ms Abyss [Exception Handling in Prolog] (Re: AI Accelerators and ISO Prolog multi-threading) Mild Shock <janburse@fastmail.fm> - 2026-09-10 23:42 +0200
MADV_HAWAII: Aloha from Minimal Terms (Was: MADV_HAWAII: Aloha from the 300ms Abyss) Mild Shock <janburse@fastmail.fm> - 2026-09-14 14:43 +0200
MADV_HAWAII: Decomposing the Ouroboros Road (Was: MADV_HAWAII: Aloha from the 300ms Abyss) Mild Shock <janburse@fastmail.fm> - 2026-09-20 18:30 +0200
Food for thought: Schwartzian Transform (Was: VIP0111: Does a Map have a Constructor?) Mild Shock <janburse@fastmail.fm> - 2026-09-23 22:01 +0200
Food for thought: Bayesian Experimental Designer (Was: Food for thought: Schwartzian Transform) Mild Shock <janburse@fastmail.fm> - 2026-09-24 14:32 +0200
What will microsoft say, will they buy it? (Was: Food for thought: Bayesian Experimental Designer) Mild Shock <janburse@fastmail.fm> - 2026-09-24 15:34 +0200
The recursive AI bottom line (Was: What will microsoft say, will they buy it?) Mild Shock <janburse@fastmail.fm> - 2026-09-24 15:38 +0200
csiph-web