Subject: Parallel ã-WAM: An Interleaved Synchronous Emulator (Re: Parallel ã-WAM: JavaScript Workers as CPU Backend)
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
--- PyGate Linux v1.5.19
* Origin: Dragon's Lair, PyGate NNTP<>Fido Gate (3:633/10)