TLDR, but I will read it.
Anyway, I've just finished implementing my 2nd dataflow system. Opposite
to the previous one, there is not the whole system is built around the
dataflow architecture, only just a part of it is DF. It's a
collaborative spreadsheet using PHP/MySQL backend and AJAX/JS frontend.
Now I'm working on the documentation, which I will push here when it
will be at least in RC state, if anybody interested, or even if not.
--
ern0
dataflow programmer & evangelist
> a) are you sure this is how Erlang works - they refer to something
> called "green processes" (not "green threads").
Erlang calls its loci of control "processes", but they are normally
implemented using green threads. Like OS processes, they share nothing,
communicating only by message passing.
> b) how would single thread take advantage of Java or C# threads? Not
> sure what you mean by "crossing the barrier of multiple threads" -
> don't multiple threads give improved performance on multicore
> machines?
Yes, if you are I/O-bound or hold down the number of threads to equal
the number of processors. There are systems that multiplex N green
threads on M OS threads, though.
--
John Cowan co...@ccil.org http://ccil.org/~cowan
Half the lies they tell about me are true.
--Tallulah Bankhead, American actress
a) are you sure this is how Erlang works - they refer to something
called "green processes" (not "green threads").
b) how would single thread take advantage of Java or C# threads? Not
sure what you mean by "crossing the barrier of multiple threads" -
don't multiple threads give improved performance on multicore
machines? JavaFBP certainly keeps all the cores busy - although I
suppose that could be Java overhead :-)
Interesting. Offhand it seems to me the issue is not so scheduling
as
it is work balancing, with the caveat that it depends on what kind of
threads we are talking about. In other words the work is divided
into
works areas, with each work area being a single thread. Most of the
message passing happens within the single threads. This
implies message passing rates be approximately balanced.
Can you tell us a not-too-abstract situation when a single multi-thread
dispatcher fails? I wanna understand all the multi-threading dispatcing
problems before I write my own. Until now, I voted for a single
dispatcher (queue), with some priority handling, but I'm not sure now.
(My dispatcher, written in C++ for our automation/homeaut system is
single-threaded, but there's a component, called Thread, which works
like a simple Thru, it just passes the packet unchanged, but the further
processing will be run in a separate thread - it's some kinda quick and
dirty solution compared to a real multithreading dispatcher).
Also, you made me think about compound components (subnets): what are
the situations, where atomic components of a compound one should be kept
together somehow (e.g. one thread, queue, etc. for one compound
component)? In my view (and implementation), compound components are
just macros, they are "exploding" to atomic components, in a running
network there're no differences between inside-compound-component
connections and any other defined components.
(Linguistix: I think, we should celebrate the 100th synonim of the
component/auton/process/etc.)
>I would just like to point out that the book is now available on
> The variety of terms meaning the same things in other words is starting to
> grow scarily. One day I would like to see an online specification for
> Flow-Based Programming, including definition of what flow-based systems are,
> what they aren't, what systems are flow-based, what classes of flow-based
> systems exist or can possibly exist, basic principles and of course solid
> terminology. Morrison's book contains answers to some of these questions,
> but it is not available to everyone, it is too long for a quick reference
> and some of its terminology may be considered as dated by other FBP
> researchers. Once a draft is prepared by someone, then a decision on actual
> terms can be made by voting and corrections can be made later in wiki
> fashion.
>
Kindle and Lulu, so it is available to anyone with access to the
Internet. :-)
> I would love to see that too! However the implementation keeps
> intruding! Just for starters, could someone try to describe the
> difference between auta, green threads, green processes and red
> processes. Preferably in tabular format...
Auta are components. "Green" is an implementation technique for threads
that doesn't pass through the OS kernel when thread switching, which
make them lightweight. So "green threads" and "green processes" are
the same thing, except that "green processes" implies a shared-nothing
situation in which the threads communication only by message passing.
"Red processes" is not AFAIK an FBP term.
--
Barry thirteen gules and argent on a canton azure John Cowan
fifty mullets of five points of the second, co...@ccil.org
six, five, six, five, six, five, six, five, and six.
--blazoning the U.S. flag http://www.ccil.org/~cowan
> Sorry, but when I say a specification available to everyone, I mean a web
> page that can be opened in a web browser on any device pretty much like you
> can open any of W3C's specifications. It took me a few weeks to get your
> book delivered and such things as Kindle and Lulu make a little sense in my
> area even though it is not located in a galaxy far far away and there are
> thousands of programmers here.
I have to agree with this. The book is only available in encumbered
formats, so you not only have to pay (which is reasonable), but you are
seriously restricted in what devices you can use to read it (which is not).
I'm not blaming JPM for this; it's the current state of most e-books today.
--
I now introduce Professor Smullyan, John Cowan
who will prove to you that either co...@ccil.org
he doesn't exist or you don't exist, http://www.ccil.org/~cowan
but you won't know which. --Melvin Fitting
Perhaps, but it would be nice to have some urls like diz:
http://dataflowprogramming.net/terms/message
> I have downloaded the free "Kindle for PC" application, which lets me
> read the Kindle version on my PC. There is also "Kindle for MAC".
> Kindle for PC is quite friendly. I can also read both versions on
> Calibre, which is also free. I also have downloaded it to my Samsung
> Smartphone running Android - the free software is called Aldiko. Hope
> one of these solutions will help.
I'll add that Calibre can run on Linux, and that
http://lifehacker.com/#!5406505/run-kindle-for-pc-in-linux-with-wine
explains how to use Kindle for PC on Linux. But I'm surprised: Calibre
isn't supposed to be able to handle DRM-encumbered formats.
--
John Cowan co...@ccil.org http://ccil.org/~cowan
The penguin geeks is happy / As under the waves they lark
The closed-source geeks ain't happy / They sad cause they in the dark
But geeks in the dark is lucky / They in for a worser treat
One day when the Borg go belly-up / Guess who wind up on the street.