Symbolic Parallelisation

In 1989, I found STRAND 88, a parallel declarative language for writing programs that was portable across a broad range of parallel computers. A key language feature made it possible to interface to C. I wanted to understand the principles,  limitations and traps of parallel declarative programming in early stages. One of STRAND's objectives was to specialize on symbolic computation. Consequently, I conducted a trial-project: parallelization of a symbolic computation library, written in C, by STRAND 88 (performed at RISC). STRAND worked very well. But at that pioneer time parallel computation had a babylonian mix of architectures, sytems, middleware ad languages. Finally STRAND went from the market. They were too early?
Mid 90ies, I had the great luck to start a cooperation with Roman Maeder (now Director of HPC at Wolfram). In 1998, he developed the Parallel Computing Toolkit for Mathematica, the base of gridMathematica now on version 7  . It now extends Mathematica 7 wich has built-in parallelism. Its Leightweight Grid Manager, makes it easy to manage a networked pool of remote computation kernels.
But the core of Roman's tool is symbolic parallelism, making Mathematica's unprecedentedly clean-designed declarative language, a parallel declarative language. It enabled us to parallelize the machine learning framework and UnRisk in a few lines of code and to test parallelization approaches across scenarios for speed-up maximization.

No comments:

Post a Comment