Parallel π-WAM: An Interleaved Synchronous Emulator (Re: Parallel π-WAM: JavaScript Workers as CPU Backend)

Mild Shock <[email protected]> Sat, 25 Jul 2026 03:58:43 +0200
Newsgroups comp.lang.python
Message-ID <[email protected]>
Hi,

The π-WAM an alternative Prolog VM, for the
Dogelog Player, got one after the other, a GPU
backend prototype, and then productive CPU backends.
So in retrospect we felt the need to not only
emulate in 100% Prolog the initial single threaded
π-WAM, but also its multi threaded successors.

One central idea is to partition the state into
slices, that belong to each logical thread. Since
we adress slices by an offset, we can also use
these offsets for a parallel simulation. Because
of varying warp and tilt parameters the output
usually differs from the CPU backends.

Bye

See also:

Parallel π-WAM: An Interleaved Synchronous Emulator
https://medium.com/2989/0196089e143a

Mild Shock schrieb:
> Hi,
> 
> We recently implemented a parallel π-WAM on
> a CPU backend and could demonstrate an
> estimated 1.7 Giga Lips. This CPU backend
> was written in Java, uses Java platform
> threads and is meanwhile part of library(edge/
> brainfog). In the following we report first
> porting steps to JavaScript.
> 
> With the adoption of JavaScript workers we
> embrace preemptive multithreading, even
> for a Web Prolog, and depart from Dogelog
> Players cooperative multitasking. The design
> also adopts SharedArrayBuffer to replicate
> the Java heap, that is shared among
> Java platform threads.
> 
> Bye
> 
> See also:
> 
> Parallel π-WAM: JavaScript Workers as CPU Backend
> https://medium.com/2989/5ef903e5e785