[Top][All Lists]

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

Re: [Chicken-users] Anyone up for porting Termite to Chicken?

From: Alaric Snell-Pym
Subject: Re: [Chicken-users] Anyone up for porting Termite to Chicken?
Date: Wed, 21 May 2008 01:27:05 +0100

On 20 May 2008, at 3:27 pm, Ivan Raikov wrote:

Perhaps you
would like to show some code examples? I don't know who is this
"process-management model" and why I care about it, but I would like
to see some examples of actual working code that cannot be reproduced
with the MPI library.

Well, as far as I can tell, MPI seems to have a fairly static view of
the world as having a fixed number of processes in it upon startup,
so the following (in Erlang) comes to mind:

Which, basically, creates a new process and returns its PID, which is
then usable as the destination for a message send.

Also, looking at the MPI egg, it has functions to send integers,
u8vectors, etc - how do you send *s-expressions*?

MPI seems based around the classic scientific-computing model: you
have a fixed array of processors and pass numeric data between them,
often using a SIMD model.

Erlang, on the other hand, works as a bunch of processes (spread over
one or more physical nodes) that are created and destroyed on the
fly, with messages composed along the same lines as S-expressions
(lists of symbols, numbers, other lists, etc) being passed around.

Now, one could of course build that *on top of* MPI: make each MPI
process be a Chicken unix-level process, and then run a core server
Chicken-thread that listens for messages from MPI and routes them to
the appropriate thread, or notices messages telling it to start a new
thread and handle them. With the messages being bytevectors that
actually contain s-expressions encoded in utf8 or some such. But MPI
itself doesn't provide the same kind of services as the Erlang
concurrency system.



Alaric Snell-Pym

reply via email to

[Prev in Thread] Current Thread [Next in Thread]