Large Scale Neural Network Application Programming Interface
This document describes a programming interface to be used for simulating an artificial
neural network or a network of simulated brain cells. This API is distinguished
by the scale of simulations it hopes to accomodate, which is on the order of
100,000,000,000 neurons. The neural network model is simulated by means of an
iterative process executed over a number of separate processing nodes. Each node may be
part of a tailored beowulf cluser or one of a large number of computers distributed over
the internet.
This API is expected to
become part of the standard library for a new programming language currently
under closed development
(development will be opened when it reaches a suitable state of maturity).
The assumptions underlying the model are described in the associated document:
Assumptions
The details of the simulation cycle are described in the associated document:
Processing Loop
Through the initial version of the API is static future versions will provide
for the model to be dynamically optimised to run on the available processing nodes.
This is termed a 'mobile model'.
Network Topologies will be transferred through means of a standard interchange format
described in the associated documents:
Note: This part of the document is in very early stages.
A reference implementation is being developed in tandem (in C/C++)
and is at a more advanced level of construction.
Objects
The API defines minimum programmatical properties for the following objects
-
Neuron
- an arbitary software analog of a biological neuron
- Connection - properties of connections between a pair of neurons
-
Network
- includes recursive definition in terms of other networks
- NeuronAddress - a means of addressing a neuron in a very large network
- Region - specifies a sub area of the network
- ProcesssingNode - describes and handles the processing a part of a network,
usually that to be handled by a single computer.
- DistributionObject - specifies how the implementation of the network is to be
distributed over the available processing nodes
- CoordinatorNode - used to gather global information from processing ndoes
- Pixel - used to generate a visual representation of part of a network
- NeuronDataFile - OS independent API for accessing the underlying filesystem
efficiently in the context of the Large Scale Neural Network API
This is an open standard which may be used, modified or reproduced
freely for any purpose whatsoever provided that its original and contributing authors
are duely acredited somewhere in any accompanying documentation. It is provided as is
comes with no warrantly either express or implied. The complete API consists of this
document and those that it links to which have the title "Large Scale Neural Network API".
Any queries relating to this license should be directed to the documents author.
As an additional courtesy it is requested but not required that the authors are kept
informed of the uses to which the API is put.
(C) Copyright Bruce S. O. Adams
2000 - All rights reserved.
Contributions
This is an open and evolving standard created for the purpose of scientific research.
Contributions are actively encouraged. At present their is normal formal support or
renumeration for any work undertaken. Criticisms, suggested improvements and all
other queries should be directed to the email address given below:
This document is under version control using CVS
The Current Version is $Revision: 1.2 $
It was last updated $Date: 2007/02/07 23:32:03 $
Please direct queries to:
LSNNAPI at cybernetics demon co uk
EOF