Distributed process networks in Java

Kahn (1974, 1977) defined a formal model for networks of processes that communicate through channels carrying streams of data tokens. His mathematical results show the necessary conditions for an implementation to be determinate, that is, for the results of the computation to be identical whether the processes are executed sequentially, concurrently, or in parallel. In our Java implementation channels enforce blocking reads and each process has its own thread in order to ensure determinacy and avoid deadlock. The network connections required to maintain the communication channels between processes executing on separate servers are automatically established when parts of the program graph are distributed to other servers by Java object serialization. Our Java implementation of process networks is suitable for execution on a single computer, a cluster of servers on a high-speed LAN, or geographically dispersed servers on the Internet.

[1]  Thomas Martyn Parks,et al.  Bounded scheduling of process networks , 1996 .

[2]  Pierre Boulet,et al.  Towards Distributed Process Networks with CORBA , 2002, Scalable Comput. Pract. Exp..

[3]  Arnab Basu,et al.  An Implementation of Process Networks in Java by , .

[4]  B.L. Evans,et al.  Real-time sonar beamforming on a Unix workstation using process networks and POSIX threads , 1998, Conference Record of Thirty-Second Asilomar Conference on Signals, Systems and Computers (Cat. No.98CH36284).

[5]  David P. Anderson,et al.  SETI@home: an experiment in public-resource computing , 2002, CACM.

[6]  Edward A. Lee,et al.  Dataflow process networks , 2001 .

[7]  Guang R. Gao,et al.  Well-behaved dataflow programs for DSP computation , 1992, [Proceedings] ICASSP-92: 1992 IEEE International Conference on Acoustics, Speech, and Signal Processing.

[8]  Twan Basten,et al.  Efficient Execution of Process Networks , 2001 .

[9]  Edward A. Lee,et al.  Implementation of Process Networks in Java , 1997 .

[10]  Edsger W. Dijkstra,et al.  A Discipline of Programming , 1976 .

[11]  Jack B. Dennis,et al.  Data flow schemas , 1972, International Sympoisum on Theoretical Programming.

[12]  Gilles Kahn,et al.  The Semantics of a Simple Language for Parallel Programming , 1974, IFIP Congress.

[13]  Andrew L. Wendelborn,et al.  Process Networks as a High-Level Notation for Metacomputing , 1999, IPPS/SPDP Workshops.

[14]  A. L. Wendelborn,et al.  A Study of Computational Reconfiguration in a Process Network , 2000 .

[15]  Mudit Goel,et al.  Process Networks in Ptolemy II , 1998 .

[16]  Gilles Kahn,et al.  Coroutines and Networks of Parallel Processes , 1977, IFIP Congress.