CuPit-2 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
2. to allow the generation of efficient 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-2 programs are object-centered, 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
This report describes the design considerations and the resulting
language definition and discusses in detail a tutorial example
This CuPit-2 language manual and tutorial is an updated version of the
original CuPit language manual [Technical Report 1994-04].
The new l ... mehranguage CuPit-2 differs from the original CuPit in
several ways. All language changes from CuPit to CuPit-2 are
listed in the appendix.