chicken-users
[Top][All Lists]
Advanced

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

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


From: Ivan Raikov
Subject: Re: [Chicken-users] Anyone up for porting Termite to Chicken?
Date: Thu, 22 May 2008 12:09:13 +0900
User-agent: Gnus/5.11 (Gnus v5.11) Emacs/22.2 (gnu/linux)

  It appears that I was wrong about not being able to start MPI
processes dynamically. The MPI-2 standard does include a procedure
MPI_Comm_spawn which can be used to create MPI processes from a master
process. In fact, one of the main motivations for MPI-2 was to break
free from the static process model. I have added a binding for
MPI_Comm_spawn to the mpi egg, and it appears to work as advertised
with Open MPI under Linux.

  My impression of the Erlang process model is also based on the
documentation. Both systems seem to follow a very similar approach in
that the processes are completely isolated from one another, and there
is a system-wide barrier synchronization facility. This is what makes
implementing concurrent systems in Erlang and MPI so easy. The real
trouble with concurrent systems starts when you share memory and both
Erlang and MPI avoid this zealously. But I will be interested to hear
about other aspects of Erlang and Termite that are lacking in Chicken
MPI.

   -Ivan


Mark Fredrickson <address@hidden> writes:

> An Erlang "process" is really a green thread, not dissimilar to
> Chicken's continuation based threads. Erlang processes run inside of a
> virtual machine, which is the equivalent of the Chicken run-time. At
> least on paper (which is as far as my knowledge extends) the Erlang
> and Scheme + MPI models are fairly similar.
>
> I do believe that one can start a new Erlang VM and add it to the
> cloud at any time, but I get the impression this is actually rare.
> With n cores, why not just start a VM on each core to begin with? The
> Erlang designers are extremely paranoid about the VM's stability (e.g.
> I understand a large portion of IO is done over pipes so that if the
> IO process crashes, the VM is safe), so restarts of VMs tend to be
> few. This is probably one area that Chicken would not fair as well. In
> Erlang, if one "process" (thread really) has a problem it crashes (by
> design) and everyone else is fine. A Chickeny Termite would probably
> need to expend some effort to match this. Though I think it certainly
> could be done.




reply via email to

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