Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.programming > #868

Re: parallel programming

From vincent_belliard <vincent@famillebelliard.fr>
Newsgroups comp.programming
Subject Re: parallel programming
Date 2011-09-27 02:40 -0700
Organization http://groups.google.com
Message-ID <33b5ed3b-c0b0-4f4e-a892-bdec0ed1849e@u13g2000vbx.googlegroups.com> (permalink)
References <90b45b75-2a5e-4390-9436-8c5fe5ccd06c@z41g2000yqb.googlegroups.com> <fymgp03p26g9.1763csrecuonl$.dlg@40tude.net> <4e7cf020.91690274@text.giganews.com> <11mqgf2emmey1.168vxn0ccau5g.dlg@40tude.net>

Show all headers | View raw


I think I introduce a little confusion. First, it’s clear that I
didn’t make all my home works. I didn’t know everything about parallel
programming (but who does?).

When I talk about parallel programming I didn’t mean “heavy
computation in parallel”. I know that most of you think that first and
I apologize for that. In fact I meant more “distributed programming”.
It’s also some parallel programming, but the problem is not the same.

I already did an implementation with my entity concept. It was done in
C++ for a call center program. For such a program, you have an object
for each call, for each VXML or CCXML session, and many more. Each of
these objects communicates with the others with asynchronous one way
messages. It works perfectly well and we can manage thousands of calls
in parallel.

When I started thinking about the entity language, I wanted to put
directly in the language the concepts I made over C++. The result is
not a new theory on computer languages but a mix of all the little
things I developed over the years. I think it’s quite homogenous but
it won’t cover all the software design problems.

The language is quite immature because I only work a few hours every
week. It’s difficult to make in parallel the implementation, the
tools, the documentation and the forums.

Entities are not tasks or whatever you called it. They are based on
actors (with a little bit more). A task is strictly synchronous. It
starts, performs all what it has to do (including sending and
receiving messages), waits when it has nothing to do and finally dies
when everything is finished.

An entity is just an object in memory (or several objects). Nothing is
executed by default. When a message is sent to an entity, the entity
is associated with a thread (by an entities manager), the entity does
all what it has to do (including sending messages) and then gives back
the hand to the entity manager (which can use the thread for another
entity). The entity can work a long time before ending the message but
during this time it won’t be able to treat any message. It’s fully
asynchronous.

One of the aspects of entities it’s that entities which doesn’t have
file descriptors, can be stored on disk (in a database like MongoDB).
In such a case, when a message is sent to an entity, the entities
manager loads the entity in memory, executes the message and then
writes back the entity on disk (it’s like a stored procedure
execution).

I don’t agree when you said that synchronous operations (like RPC) are
faster that asynchronous. If the whole problem is thought asynchronous
it’s very efficient. On the other hand, mixing the synchronous and the
asynchronous model is quite inefficient.

The entity language will also evolve thanks to your contributions.
It’s the aim when I post on forums.

Vincent Belliard

Back to comp.programming | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

parallel programming vincent_belliard <vincent@famillebelliard.fr> - 2011-09-22 11:30 -0700
  Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-09-23 16:56 +0200
    Re: parallel programming cri@tiac.net (Richard Harter) - 2011-09-27 02:03 +0000
      Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-09-27 10:48 +0200
        Re: parallel programming vincent_belliard <vincent@famillebelliard.fr> - 2011-09-27 02:40 -0700
        Re: parallel programming cri@tiac.net (Richard Harter) - 2011-09-28 17:09 +0000
          Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-09-28 20:31 +0200
            Re: parallel programming cri@tiac.net (Richard Harter) - 2011-09-29 09:13 +0000
              Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-09-29 14:46 +0200
                Re: parallel programming vincent_belliard <vincent@famillebelliard.fr> - 2011-09-29 10:19 -0700
                Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-09-30 10:33 +0200
                Re: parallel programming cri@tiac.net (Richard Harter) - 2011-10-01 16:12 +0000
                Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-10-01 20:27 +0200
                Re: parallel programming cri@tiac.net (Richard Harter) - 2011-10-02 19:29 +0000
                Re: parallel programming "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> - 2011-10-03 09:13 +0200
                Re: parallel programming cri@tiac.net (Richard Harter) - 2011-10-03 05:49 +0000
  Re: parallel programming Rui Maciel <rui.maciel@gmail.com> - 2011-09-29 12:03 +0100
    Re: parallel programming vincent_belliard <vincent@famillebelliard.fr> - 2011-09-29 10:28 -0700
      Re: parallel programming Rui Maciel <rui.maciel@gmail.com> - 2011-09-29 23:09 +0100

csiph-web