[E-Lang] E FAQ
Zooko
zooko@zooko.com
Thu, 27 Sep 2001 12:21:38 -0700
> >3.2. If an E process is single-threaded, how to take advantage of
> > parallelism (e.g. on SMP's)?
> >[To be answered: micro-parallelism and/or multiple vats]
>
> What do you mean by "micro-parallelism"? My only answer is multiple vats.
If you read my letter to e-lang, [1] and try to read past the part that is
specific to the thread at the time, you'll see a proposal for computing separate
E vat ticks in parallel (e.g. to take advantage of a newfangled SMT CPU), while
still guaranteeing the same semantics.
In sum: it is possible (in the sense of "one could actually implement it", and
my friend Felix has actually implemented something like it), but implementing
all of the constraints imposed by the sequential semantics not to mention the
deterministic computation guarantee might erase too much of the performance
gains. Or, it might not -- I think it will depend on how often successive E
ticks access the same data in a mutually inconsistent manner.
Example: if there are two "event chains" which access completely exclusive data
sets, then this technique would probably give you a 2 times speed-up on an SMP
or SMT system, modulo constraints of I/O, remote invocation, and deterministic
computation and memory management. But if the two event chains update shared
data over and over then this technique would gain nothing and would waste some
CPU in the attempt.
Jonathan: is that what "micro-parallelism" means?
Regards,
Zooko
[1] http://www.eros-os.org/pipermail/e-lang/2001-April/005003.html