Russel Winder's Website

GPars is Groovy Parallelism

I have been interested in parallel processing for over 20 years. Starting in the mid-1980s at UCL heading the research programme that developed the Solve programming language -- this was an object-oriented, parallel programming language with transactional state. It was a few years ahead of its time, but the funding ran out. Sadly there is no online material as yet for this.

I then ran the UC++ project to bring active objects to C++. This evolved into KC++ - there may be lots of broken links on these very old, archived webpages. All this contributed to various efforts at London Parallel Application Centre (LPAC) which looked at developing a European-wide standard for a parallel C++ language via the Europa project.

Since then of course OpenMP and MPI have become the de facto, possible de jure, standards for parallel programming using Fortran, C and C++. The Java Platform went a different route.

The Java Platform has had threads since its very inception. However shared memory multi-threading is a tar pit of confusion and problems. Synchronization of shared memory is the problem, and people are not very good at it. Of course we have had models of parallel processing such as Actor Model and CSP for decades. What we are now seeing is a resurgence of these models as it becomes clear that shared-memory multithreading is not a viable programming model for applications programming. Erlang has had what is effectively the Actor Model for years. Scala has also taken this up. Clojure is going this route. What about Java? Nothing :-( Doug Lea's java.util.concurrent is a huge benefit. Futures are the future if you have to use threads.

The JVM seems to be the really active platform for applications programming, and Groovy is a great language that works symbiotically with Java. It has potential for being a great coordination language for parallel computations. Groovy can provide domain specific languages for describing parallel computations, raising the level of abstraction at which the programmer works.

I had said many months ago that I would coordinate an effort to move this forward. Meanwhile Václav Pech acted. He started the GParallelizer project. Recently we have all clubbed together to take this as a basis for a strategic push. GParallelizer has become GPars and is now a fully recognized Codehaus project.

Anyone interested in parallelism using the JVM should be interested in GPars. Go check it out. Join in.

Copyright © 2017 Russel Winder -