No programming
Programming languages are used to describe algorithms. However, neural networs are not algorithms - they are data structures. Neural network is defined as a graph where vertices are neurons and arcs are synapses (or on the higher level, they may be populations and projections). It is not clear why to use here programming languages while much simpler declarative description can be sufficient. Following this idea, we created a simple declarative language based on XML to specify the network structure. However, programming (say, Python) may indeed be necessary for interpreting and displaying results obtained by the network or processes inside it and we provide Python codes for this.
In order to begin creating networks of their own, the users can get familiar with the ArNI-X tutorials inside the ArNI-X user manual.
The network block constructor
The human brain, the greatest known spiking neural network, is very complex. It consists of many sections which differ by their internal structure, neuron properties and functionality. The practically applicably artificial spiking neural networks should also include various smaller standard blocks. Probably, the future big polyfunctional SNNs will be made from many typical sub-structires like builgings from the bricks.
ArNI-X makes this hierarchical construction easy. ArNI-X network descriptions can include other ArNI-X network descriptions.
Emulation speed
At present, ArNI-X is implemented on CPU and GPU. It can use in parallel several GPU cards installed on one host. It makes possible to emulate in real time large networks including several tens of thousands neurons.
It can even utilize GPU clusters for network hyper-parameter optimization.
Efficient tool for SNN-related studies
ArNI-X has been successfully used in several research projects devoted to application of spiking neural networks to reinforcement learning, classification and pattern recognition, rare event prediction, creation of dynamics models of objects and to other tasks.