"A Parallel and Multithreaded ERLANG Implementation" - status?

pekka@REDACTED pekka@REDACTED
Sun Jul 28 00:03:02 CEST 2002


The implementation Tony and I did some years back that I wrote my report
about was promising, it worked and performed well in some tests and not
so well in others. A fresh start would be welcome, I would take some
different design descisions in a new implementation that probably would
work better and actually make it easier to implement MT Erlang, but
still require a fair amount of work.

Another aproach that tempted me (and others) lately thought about would
be to "cheat". It would not have the potential to be as good as a "full"
MT Erlang but probably a better than just running several several plain
Erlang nodes on a MP machine. 
Basically shortcut the distribution mechanism, detect Erlang nodes
running on the same physical machine and then bypass the normal socket
based distribution by establishing a shared memory communication area
between the two Erlang nodes on the same machine. Far easier to
implement and you avoid the overhead of socket, TCP and external format
conversions. The full process contex switch overhead is still there and
one also would need to handle "node" scheduling of Erlang processes for
full benefit etc, etc. But thats the same problems as today with
distributed Erlang. 

A real MT Erlang is still desirable and it can be done very nicely and
efficient in my oppinion. MP machines is, as mentioned, a comodity
nowdays and now when hyperthreading is introduced in the Intel P4Xeon
CPUs even more more interesting benefits for an MT Erlang is opened.

/pekka   

>-----Original Message-----
>From: owner-erlang-questions@REDACTED 
>[mailto:owner-erlang-questions@REDACTED] On Behalf Of Jani Launonen
>Sent: Saturday, July 27, 2002 2:33 PM
>To: erlang-questions@REDACTED
>Subject: "A Parallel and Multithreaded ERLANG Implementation" - status?
>
>
>Hello,
>
>in his master's thesis ( 
>http://www.erlang.se/publications/xjobb/0089-hedqvist.pdf ), 
>Pekka Hedqvist studied how to implement Erlang emulator 
>suitable for multiprocessors mapping Erlang processes to OS 
>threads. While very interesting idea and worthy implementing 
>(from my point of view, at least), I haven't seen lately 
>anything suggesting that such implementation would take place 
>in near future. Although clusters are quite hot topic nowadays 
>(blades and such), I think SMP-machines hardly are going to be 
>fewer in near future - even for U1 form factor rack machines 
>are provided with dual processors. Multiple core CPUs are 
>going to be the norm, so running two Erlang emulators inside 
>one physical chip seems to be bad idea as they would have to 
>communicate through TCP/IP stack or pipe instead of sharing data
>(messages) through local (L1/L2 cache) memory without 
>communicating through OS.
>
>So if anybody has information, if there are any efforts put 
>towards implementing such multithreaded emulator, please share 
>some information about status.
>
>-+-+-+-
>Jani Launonen
>Student. . . . . . . . . .University of Oulu, Dept. of EE 
>Assistant Researcher . . .Apricot Project
>
>"Computing is a field which has one of the shortest collective 
>memories of any engineering or scientific discipline." - Marty 
>Fouts, comp.distributed
>
>




More information about the erlang-questions mailing list