Log in

Previous Entry | Next Entry

Parallel Programming: Announcement

As some of you know, I have been working on a book on parallel programming. My thought had been to complete it, then announce it. But I finally realized that it really never will be complete, at least not as long as people keep coming up with new parallel-programming ideas, which I most definitely hope will continue for a very long time.

So, here it is!


Jan. 3rd, 2011 07:27 pm (UTC)
Flow-Based Programming

I'm working on a flow-based programming system in which cooperating components are the "IC/Integrated Circuit" of it's parallel programming model. The components are modeled as cooperating co-routines/green threads/fibers which read and write to each others I/O channels.

In the simplest implementation there are no actual contention, locking or critical code sections because each component reads from it's inputs, performs some computation and writes to it's outputs. After the component is done it yields the CPU to the scheduler which transfers control to the next component.

In actual practice, the cooperative components are distributed between amongst 'n' available threads, with one thread per CPU core. Data transfer between components running concurrently on separate threads is is passed through non-locking, cache-coherent, FIFOs.

This system has the advantages of simplicity and re-usability of programming (much like UNIX pipes) with relative freedom from cache stalls and the thread rescheduling that happens when a locked critical section is encountered by a thread.

My system is, of course, nothing new. Systems like LINDA started flow-based programming a long time ago.

I was wondering if you were going to be covering flow-based systems within your analysis (Obvious MPI approaches this using message passing).



Jan. 4th, 2011 08:52 pm (UTC)
Re: Flow-Based Programming
Hello, Eris,

The closest thing to this approach currently in the book is pipelining, which is a trivial variant of flow-based programming. I don't have any immediate plans to go beyond this at the moment,

Were you interested in writing up a survey of the various flow-based programming efforts, with emphasis on open-source software?

Thanx, Paul
Jan. 10th, 2011 01:53 am (UTC)
Re: Flow-Based Programming
I also would like to see a section on Flow-Based Programming (FBP) in your book, or at least a link to my web site - http://www.jpaulmorrison.com/fbp . FBP started within IBM, and was used for the batch part of a major banking project in the '70s. IBM had a couple of FBP projects, but eventually dropped the last one around 1992. Since then, however, it has now spread world-wide, and IMHO a book on parallel programming is not really complete without a description of FBP. BTW the 2nd edition of my book on FBP came out in May of last year. Feel free to contact me if you need more info.
Regards, Paul Morrison