|
Infinite degrees of freedom - www.infinitedegrees.info | |||||
|
Q: What is Synthesis?
A: Synthesis is a tool for simulating very large-scale populations
of elements with complex patterned connections. It provides a complete simulation
environment, including: a computation server capable of parallel and distributed
computation, a graphical user-interface for interactive visualization and manipulation,
a scripting language for automating parameter searches and experiments, an
interactive command-line environment for controlling the simulation, data agents
for data-gathering and analysis, a library of standard neuron, synapse and
connection pattern models. The simulation server is multithreaded for multiprocessor
computation and capable of distributing a simulation across multiple networked
computers.
Synthesis can be used to model virtually any complex system that is composed of many interacting elements. It is best suited to models in which the elements interact in a relatively fixed manner (i.e. networked elements). This may include nearest neighbor interactions or long-range patterned connectivity. In fact the patterns of connectivity permitted by Synthesis are essentially unlimited because users can define new connection generators for their specific models.
The simulator is
currently being used for medium to large-scale (10'000+ neurons) simulations.
The current implementation of the simulator provides basic support for single
and multicompartment cell models, numerical differential equation methods,
event-based cells, and synapse models.
A graphical user interface can be used to inspect a network, to view the progress
of a simulation and to change its parameters. Because of the client-server
implementation, the computationally intensive part of the simulation can be
run on a remote machine.
Q: Will it run
on my computer?
A: Synthesis currently runs on Mac OS X only.
In previous incarnations it has run on all supported PDO (portable distributed
objects)
platforms including HPUX, Solaris and Windows NT. It probably would not take
too much work to get it to run (without the nice graphical interface) on Linux
using GnuStep (www.gnustep.org).
Q: Where can I
get this software?
A: Right now we are not distributing Synthesis widely,
as it is still evolving rapidly. To see about getting a copy of Synthesis,
please email: synthesis@infinitedegrees.info.
Q: Did Apple ever do a story about this simulator and the research being done with it?
A: Funny you should ask. They wrote a story called "The brawn behind brain research".
Q: Who developed
Synthesis?
A: Synthesis is the brainchild of Sean Hill (now working with IBM at the EPFL on the Blue Brain Project) who wrote the first version (then called Coelacanth) in order to run simulations of thalamocortical neural
circuits as part of his PhD thesis. Alix Herrmann, who used it to run simulations
of parts of the auditory system as part of her PhD thesis, contributed significantly
with many good ideas and numerous additions and corrections over the years.
She also wrote much of the material contained in this FAQ.
Q: What has Synthesis been used for?
A: Synthesis has been used in the following work:
Q: There are
already numerous "object-oriented neural simulators" out there.
What is so great about this one?
A: Indeed, many neural network simulators exist, so
your question is entirely justified. To answer it, first we must go back
in time to understand where the Synthesis cometh from.
In 1994, Synthesis's creator, Sean Hill, needed a simulator for his PhD thesis
capable of performing large-scale thalamocortical simulations. That means
that only biological neural simulators will do --- artificial neural network
systems need not apply. Which removes a number of programs from consideration.
While there existed several neural network simulators for biologically realistic
simulations, the two most likely candidates ( Neuron and GENESIS) were
not able to provide a number of functions required for large-scale thalamocortical
simulations [i.e. the subject of Sean Hill's PhD thesis]. Neither of these
simulators was capable of quickly and efficiently simulating large networks
of simple neuron models.
While Neuron is a very powerful and flexible simulator, it works best for small
networks of detailed neuron models. It does not contain facilities for generating
and simulating large-scale models of simple neuron models. It is not simple
to build large-scale networks with Neuron.
GENESIS is capable of simulating a variety of large-scale neural networks using
simplified or complex neuron models. At the time development started (1994-5)
Genesis was not capable of building fast multiple layered complex simulations;
the performance on a workstation was limited. It was not practical to build
simulations with on the order of 10^6 connections or tens of thousands of cells.
It too is better suited to more detailed multi-compartment models of smaller
sized populations.
The Synthesis simulator has a modern object-oriented architecture which provides a number of features that give it many advantages for the more specific goal of constructing and simulating large-scale neural networks rapidly and efficiently. In addition, the platform that was chosen, Objective-C and OPENSTEP, made it possible for the simulator to really achieve the goals of generality, flexibility, and extensibility -- where many other efforts have failed because of inadequacies in the underlying development systems.
The Objective-C run-time system can dynamically load subclasses so that one may add new functionality and classes without changing or even having access to the source code. The architecture of the simulator exploits this in order to provide run-time loading of new models of the kinetics, connectivity and interaction dynamics. The main engine is optimized for speed yet every component of the simulator can be a loadable binary code "bundle". This modular object-oriented design allows the application to be fully distributed across multiple computers and it allows high-performance compiled code to be used for the computations. In addition, it is possible to develop new bundles easily using precompiled C or C++ libraries or code. New models can be easily added without recompiling the rest of simulator. Try that in a traditional C++ simulator!
The simulator was designed to model populations of cell types. The specific neuron, synapse and connection models and their parameters can be completely different for each cell population. It further assumes that each of the components of the simulation, i.e. the cellular and synaptic kinetics, can be described in terms of differential equations or the rate of change with respect to time. A common assumption is to categorize neurons as excitatory or inhibitory cell types. The properties of each of these populations can be markedly different. With this simulator the different response characteristics of each population can be easily modelled.
Multiple populations can be defined with various combinations of these populations forming layers. There can be any number of layers with each layer containing any number of populations of different cell types. Each type may be assigned a separate model or parameters for the cell, synapse and connection generator. The user specifies the percentage of the layer occupied by each type. The connections can be generated to specify the cells afferents and efferents by type and layer. The configuration of a network is done either through editing an ASCII text representation of the network objects or by using a graphical interface to create and set the parameters for each object.
©2005 Sean L. Hill. All rights reserved.
Please visit SoulHill