Monday, November 26, 2007

GRAFCET - The forgotten coordination language

I have been following with interest some of the papers and discussion regarding coordination languages in multicore/multithreaded applications [here and here ]. In short, the current model that we use to tackle concurrent programs, using thread, is badly flawed (due to nan-determinism). This would be amplified a thousand fold once multi-core processors become more popular and can support more cores. An interesting way to solve this problem is to abandon thread and go with coordination languages. These coordination languages should be deterministic but offer controlled non-determinism wherever it is needed.

Suggestions come left and right ranging from Erlang to Labview to Petri nets. I couldn't help but wonder if ye old forgotten GRAFCET could be one of the top candidate for the coordination language post.

GRACFET was born to manage heavy industry, where determinism means "the machine do not goble up a person's right arm" [quoting from a Prof. of mine back in UIT de Chateauroux]. I.E. with GRAFCET determinism should, nay, must be a super top priority. But, having GRAFCET coordinates rows upon rows of production lines means some form of non-determinism is at work. Much like Petri nets (GRAFCET is based on Petri nets after all, with a bit of modification), non-determinism is controlled on certain part of GRAFCET and not everywhere.

Furthermore, GRAFCET is really really easy to learn. There are 5 rules you need to know and that's it. I wonder if the French are not investigating this right now

1 comment:

Anonymous said...

Understandably your article helped me terribly much in my college assignment. Hats incorrect to you send, intention look ahead for the duration of more interrelated articles in a jiffy as its one of my pick subject-matter to read.