PlutoSpin- Putting a New Spin on Programming
Current attempts, such as OpenMP, to bring about easier to use parallel
programming are focused on the syntax issues. This is an important area since we
currently have to go through programming hoops, such as pthreads (which
GIPSpin
makes internal use of), to take advantage of concurrence. Resolving the syntax
issues will make it easier and lead to a consistent text format for parallel
programming. As human beings we find it hard to view and deal with all the side
effects inherent in parallel programming. When dealing with concurrence, the
programmer has to be aware of safe handling of data-structures, timing, dead-lock,
and other issues. It is hard to visualize these effects in text format, and it is even
harder to conceptualize what should be threaded in a program. This is where a
graphical interface which helps the programmer deal with such issues is helpful. It
can show the programmer what is currently being threaded, the variables used, and
it's AI can guide the programmer as to what should be threaded, and which
data-structures should have semaphores, mutex-locks, and/or be cubbied.

The industry has made initial strides into combining visual programming concepts
with traditional text coding. We have helper routines to jump to variables and
functions, and tools to make dependency graphs, but a lot remains to be done. Most
of the education and human talent is focused on making new text languages. While
text languages have certainly proven themselves in terms of speed of coding, a push
to make use of our 2D visualization capabilities is warranted as we move towards the
age of concurrence in both hardware and software. New multi-core CPU's and the
recently introduced Sony/Toshiba/IBM "Cell" architecture are exciting developments
in hardware concurrency as they get us a step closer to how science believes our
own brains work at the algorithmic level. A lot remains to be done to take effective
advantage of them. Our primary research focus is the enhancement of
GIPSpin to
make multi-threaded programming easy.
Copyright © 2005 E Berta. All rights reserved.