Hi Russel,

> At the heart of all the problems is shared memory.  Perhaps it is worth
> challenging the use of shared memory models for application programming;
> perhaps it is worth building new APIs that avoid shared memory in order
> to make application that exploit parallelism easier for the average
> programmer to write.
> 
> I am here thinking about CSP-based models:  separate processes each with
> their own memory and communicating via message passing.

:)

CSP also gives us easy ways of synchronising access to shared resources,
including passive shared memory, without using locks.  Channel
communication is only one form of higher-level concept built from
the abstract concept of CSP events.  Another is phased access, like
time-division multiplexing ... but with the phases marked by barrier
events (multiway syncs) that all processes engaged in the phased
access have in their alphabets.

> Erlang has shown that parallel applications can be written that do not
> suffer unexpected deadlock and livelock.  Also it shows that you can
> build an efficient process-based system on a shared memory
> multi-threaded system -- not surprising really.

I should hope so!!  There's (2+) decades of experience reflecting this,
backed up by parallel design rules with formal proofs of good behaviour
... for example, all those industrial Transputer-based projects using
occam ... and now, occam-pi (= occam2 + pi-calculus dynamics):

  http://www.occam-pi.org/
  http://www.cosmos-research.org/                 (millions of processes)
  http://www.cs.york.ac.uk/CPA08/programme.html   (CPA09, Nov, Eindhoven)

> So rather than trying to tinker round the edges of JSR166, JSR166y,
> java.util.concurrent, might it be better to create a whole new API to
> allow much easier programming of parallel applications.  This could be
> done as a JSR or just done as an Apache project.
> 
> A lot of the ground work on CSP and Java has already been done by Peter
> Welch and his group at University of Kent.

:)  See:

  http://www.cs.kent.ac.uk/projects/ofa/jcsp/

Cheers,

Peter.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org
For additional commands, e-mail: dev-h...@commons.apache.org

Reply via email to