[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Erlang challenge



Steve Dekorte wrote:
> In one of the LL conference videos, the author of Erlang proposes a
> concurrency challenge - something along the lines of "see how many
> threads you language can deal with before it has problems". Has anyone
> compiled a list of results for this test using various languages? What
> was the bar set by Erlang?

Don't know about a list.  There are some details of the test, showing a
comparison between Erlang and Java, with source code for both languages,
here:
http://www.sics.se/~joe/ericsson/du98024.html

Another person who has done this test is Marc Feeley, author of Gambit-C, a
Scheme compiler which generates C code.  Feeley described his test results
in a message on the Erlang mailing list, here:
http://www.erlang.org/ml-archive/erlang-questions/200212/msg00058.html

He tested up to 900,000 threads on a P4 with 1GB RAM, with performance
similar to Erlang's.  The implementation given in the above message uses
Gambit's make-thread function, which is part of a very efficient preemptive
threading implementation, built on top of first-class Scheme continuations.

Feeley has developed an Erlang to Scheme compiler, ETOS, available here:
http://www.iro.umontreal.ca/~etos/

Not to belabor a point or anything :), but Feeley's use of Scheme is along
the same lines I was talking about yesterday, in characterizing Scheme as a
language assembly language.

Feeley touches on this when discussing Gambit's continuation-based threading
implementation, in this message:
http://srfi.schemers.org/srfi-18/mail-archive/msg00024.html .  He says
"Call/cc gives unequaled power and flexibility for compiling the control
constructs of other languages into Scheme, which I think is one of Scheme's
most important applications (I have already used Scheme to compile Erlang,
and am now using it to compile Java, and I know other users of Gambit have
done similar compilers)."

Not bad, for a scripting language...

Anton