advanced science
& engineering
no title
banner

{ Immediacy }

Process Interaction Models

The methods and mechanisms by which processes interact.

Process interaction Models is the title of my doctoral thesis. I continue to have an interest in the subject but now that interest extends beyond computer architecture to the physical world. In particular, I am interested in molecular level interaction that is constrained by membranes (esp. sensory manifolds) and the higher level interaction mechanics between meta-processes.

This interest has historically extended to the study of the effects and affects that programming models and languages have upon engineering behavior. I have especially been interested in these issues as the relate to programming with concurrency.

The Carnap Programming Language

A new language for manycore devices and many-manycore systems.

"The primitive process of a Carnap program is called an action. An action determines a local or shared state. Actions are assembled by construction to form the component processes of a program. Programs consist of concurrent processes that construct and interact via logically shared data structures and resources called contexts.

In this way the application programmer is able to separate concerns, reasoning separately about the two primary aspects of Carnap programs: data structures and the concurrent processes that act upon them.

Contexts are associative and statically typed. Two system level contexts allow concurrent access to SQL databases and any system that will respond to a standard universal resource identifier (URI). Concurrency control is provided by the Carnap primitives (initial implementations will include a File Server, PostgreSQL and Apache 2.0).

The primary goal of Carnap is to ease the general purpose programming of applications that can utilize the concurrency of future many-core and many many-core systems." The Carnap Programming Language Manual.

Thus begins the reference manual for a new language.

Process Oriented Programming

A separation of concerns; logically shared data structures and the concurrent processes that act upon them.

Carnap is derived from my work at Yale University and in Paris at ENSMPnote:1 and Paris VInote:2, designed to ease the programming of parallel machines. The Ease process oriented programming model has found its way into a variety of applications and systems and has recently been used in large scale distributed systems where its light weight concurrency model is preferable to conventional transaction models.

This work(ref.1) proposes a new language for parallel computation and related (distributed) data structures. The language provides a type associative storage model that can be efficiently implemented on a range of parallel machine memory architectures.

Ease is a general purpose, high level, imperative programming language designed to enable the simple expression of concurrent algorithms on parallel machines. Parallel machine in this context refers not only to general purpose parallel machines but also to specialised (perhaps massively parallel) super computers, embedded systems and real time control systems.

A program is described as a collection of processes that execute concurrently, constructing and interacting via strictly typed distributed data structures called "contexts". Ease provides a separation of concerns; distinguishing between potentially large scale data structures and the concurrent processes that act upon them.

Ease is novel in the following regard: a "context" provides a priority oriented and strictly typed intermediary in which distributed data structures are constructed and by which processes may interact. Ease provides simple and symmetric binding operators which allow complex data structures to be constructed and exchanged efficiently. Ease provides constructions for both cooperative and subordinate concurrency.

Ease is a development and synthesis of several concepts that exist in the domain of parallel processing. The principal synthesis in Ease is between the formal process calculus and constructor concepts of CSP and the ideas of distributed data structures found in the tuple space concepts of Linda.

Unlike the generalised Tuple Space of Linda, Ease contexts are strictly typed and perform no matching at runtime.

Ease is designed to exploit opportunities for efficiency on a range of machine architectures, whilst remaining architecture independent.

The main requirements when designing Ease were that it should be an expressive, well defined language, efficient to implement and applicable to a wide range of applications in general purpose computing and embedded systems, and be suited as a target formalism for automatic generation.

Research Statement

A research statement by Steven Ericsson-Zenith

Much work has been done in the past thirty years identifying and formalizing primitive mechanisms of communication with strong locality, such as point-to-point communication. Observations in quantum mechanics, and perhaps biophysics, suggest that other primitive mechanisms may also exist. But whatever the primitive mechanisms are, the means by which meta-processes interact in the world involves additional intermediary mechanisms and process structures.

Our understanding of these intermediary mechanisms in molecular biology is limited but is gradually being disclosed by current work in the field, as illustrated by recent breakthroughs to our understanding of the biological clocks that are involved in the operation of physiology and in the genetic mechanics behind system wide sensory modalities, such as pain (reported recently in NATURE (ref.2)).

Our development of these intermediary interaction mechanisms in computer systems architecture has been limited to low-level memory and communication mechanics. Nonlocal computer system memory architecture represents a primitive intermediary by which processes interact. Well-known problems related to concurrent access to nonlocal memory are solved by allowing process sequences to capture and relinquish exclusive access to data structures in memory, and simple mechanisms can be provided to implement this, as shown in our earlier work on the Ease interaction model, recently reworked for the language Carnap.

However, that research is incomplete and new data from biophysics suggest that higher level dynamics in biological systems provide alternative models for large scale interaction. The processes involved may not be primitive and the order of their complexity is currently difficult to determine. They clearly involve autonomous abstracted meta-processes and hierarchical membranes whose role and collaboration with the other processes of the system is not solely by point-to-point communication with strong locality but rather manifests a spread of related conformance with possible non-local interactions, though this is by no means certain. For example, we see this uncertainty in models of the conformance of protein chemotaxis, where both strong locality and non-locality are proposed in competing standard models.

The difference between the interaction models used in existing computing architectures and the models we see in biology may be related to the difference between the fundamental mechanics of logical operation. Biological implementation of logical operations is potentially large scale differentiation across the entire system. This is very different from the strong locality and integration of logical parts that exists in the current logical operations of today's computing systems.

Basic research across the spectrum of science is the reverse engineering of meta-processes like these and their interaction. Basic research across the spectrum of engineering tends to follow the opposite approach by taking incremental steps from what is known to work. We strongly believe that these approaches combined inform each other.

Thus our research in this area is both theoretical and practical. We seek to understand the mechanics of the world and to prove theories related to these mechanics by proof-in-practice, applying successful theories to new engineering applications.

New Work

More recent developments and ongoing projects.

Carnap.info

The Carnap Programming Language project site.

Many Core

A start-up project that is providing support for Many Core architectures and devices.

Senses.info

IASE primary research area, focused on understanding the natural engineering of the recognition problems.

Previous Work (Ease)

The Ease model or Process Oriented Programming.

Process Interaction Models - EASE

The above link is dedicated to my doctoral work begun at Yale University while doing research work with Professor David Gelernter and completed at Universite Pierre et Marie Curie, PARIS (VI) - traditionally the science department of the Sorbonne - and the Ecole NS des Mines de Paris. I successfully defended Process Interaction Models(ref.3) in July 1992.

The work provides a critical review of existing process interaction models in computer science engineering and makes a new proposal, called Ease, designed to provide a general purpose parallel programming model that addresses the issues raised. The work also begins to deal with the semeiotics issues related to the effect that engineering languages have upon problem solving behavior.

This work is strongly influenced by my industry experience with the UK semiconductor company INMOS (now STMicroelectronics) and the development of the transputer microprocessor and Occam.

I wrote papers on Ease in 1990 that are published by Yale University and may still be available. You can find detailed references to them here. In particular, Yale University technical report TR809 Programming with Ease: A Semiotic definition of the language(ref.4) was widely distributed and, in essence, is the foundation of my Ph.D. thesis. You can see the original announcement of Ease on July 12th, 1990 in the record of comp.arch. An intermediate paper I wrote while in France A Rationale for Programming with Ease can be found in Springer's "Lecture Notes In Computer Science; Vol. 574, Research Directions in High-Level Parallel Programming Languages ."(ref.5) This is a good volume that captures a snapshot of most of the work going on at the time. You can Google Book this paper too. Post thesis, Ease; the model and its implementation was published in the January 1993 edition of ACM SIGPLAN Notices, Volume 28 Issue 1.(ref.6)

Downloads

A free collection of documents.

Process Interaction Models.

THESE de DOCTORAT de l.UNIVERSITE PARIS VI. The full thesis.

Chapter 7: Writing Programs with Ease

An overview of the proposal

Appendix: C-with-Ease

The proposal added to a conventional language

Ease Grammar

The original Ease Bison/Flex grammar

End Notes

note:1 Ecole Nationale Superior des Mines de Paris (An engineering school established by Napoleon)

note:2 The University of Pierre and Marie Curie; traditionally the science department of the Sorbonne.

References

Alf-Christian Achilles. The Collection of Computer Science Bibliographies. Alf-Christian Achilles (2007). (ref:1)

Banâtre, Jean-Pierre. Lecture Notes In Computer Science; Vol. 574, Research Directions in High-Level Parallel Programming Languages. Spinger Verlag (1992). (ref:5)

Cox, James J et al.. An SCN9A channelopathy causes congenital inability to experience pain. Nature, [Vol.444][P.894-898] (2006). (ref:2)

Ericsson-Zenith, Steven. Process Interaction Models. Universite Pierre et Marie Curie, PARIS (VI) (1992). (ref:3)

Ericsson-Zenith, Steven. Programming with Ease: A Semiotic definition of the language. Yale University Computer Science Department, Technical Report TR809 (1990). (ref:4)

Ericsson-Zenith, Steven. Ease; the model and its implementation. ACM SIGPLAN Notices, Volume 28 Issue 1 (1993). (ref:6)

Copyright © 2008, Steven Ericsson-Zenith (All Rights Reserved)

Institute for Advanced Science & Engineering

A 501(c)3 nonprofit basic research organization incorporated in California.

format: memeio/xsl/xhtml.

this page generated by memeio Tuesday, February 12th 2008 12:35 p.m. -08:00