CuPit is a parallel programming language with two main design goals: 1. to allow the simple, problem-adequate formulation of learning algorithms for neural networks with focus on algorithms that change the topology of the underlying neural network during the learning process and 2. to allow the generation of e cient code for massively parallel machines from a completely machine-independent program description, in particular to maximize both data locality and load balancing even for irregular neural networks. The idea to achieve these goals lies in the programming model: CuPit programs are objectcentered, with connections and nodes of a graph (which is the neural network) being the objects. Algorithms are based on parallel local computations in the nodes and connections and communication along the connections (plus broadcast and reduction operations). This report describes the design considerations and the resulting language de nition and discusses in detail a tutorial example program.
[1]
Ross N. Williams,et al.
FunnelWeb User's Manual
,
1992
.
[2]
Charles Antony Richard Hoare,et al.
Hints on programming language design.
,
1973
.
[3]
Niklaus Wirth,et al.
Programming in Modula-2
,
1985,
Texts and Monographs in Computer Science.
[4]
Brian W. Kernighan,et al.
The C Programming Language
,
1978
.
[5]
Martin A. Riedmiller,et al.
A direct adaptive method for faster backpropagation learning: the RPROP algorithm
,
1993,
IEEE International Conference on Neural Networks.
[6]
P. Werbos,et al.
Beyond Regression : "New Tools for Prediction and Analysis in the Behavioral Sciences
,
1974
.