Parallel Computing Toolkit (PCT) brings parallel computation to anyone with access to more than one computer on a network. It implements many parallel programming primitives and includes high-level commands for the parallel execution of operations such as animation, plotting, and matrix manipulation. This toolkit also supports many popular programming approaches such as parallel Monte Carlo simulation, visualization, searching, and optimization. The implementation of all high-level commands is in Mathematica source form and can serve as templates for building additional parallel programs.
PCT builds on Mathematica's advanced symbolic programming language. It is written entirely in the Mathematica language and uses Mathematica's standard MathLink protocol to communicate between any number of Mathematica kernels. The kernels can run under any supported operating system including Unix, Linux, Windows, and Macintosh. Individual machines can be single- or multiprocessor PCs and servers connected through TCP/IP.
PCT supports all common parallel programming paradigms: shared or distributed memory; automatic or explicit scheduling; and concurrency, including synchronization, locking, and latency hiding. It also supports failure recovery. In the event of a network, hardware, or software failure the affected computation is reassigned.
We gratefully acknowledge the support of Orion Multisystems, whose desktop cluster workstation DT-12 was used to perform most of the evaluations shown in the PCT documentation and examples.
Roman E. Maeder, Wollerau, Switzerland