<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing DTD v2.3 20070202//EN" "journalpublishing.dtd">
<article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" article-type="research-article">
<front>
<journal-meta>
<journal-id journal-id-type="publisher-id">Front. Comput. Neurosci.</journal-id>
<journal-title>Frontiers in Computational Neuroscience</journal-title>
<abbrev-journal-title abbrev-type="pubmed">Front. Comput. Neurosci.</abbrev-journal-title>
<issn pub-type="epub">1662-5188</issn>
<publisher>
<publisher-name>Frontiers Research Foundation</publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id pub-id-type="doi">10.3389/fncom.2010.00141</article-id>
<article-categories>
<subj-group subj-group-type="heading">
<subject>Neuroscience</subject>
<subj-group>
<subject>Original Research</subject>
</subj-group>
</subj-group>
</article-categories>
<title-group>
<article-title>Enabling Functional Neural Circuit Simulations with Distributed Computing of Neuromodulated Plasticity</article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author" corresp="yes">
<name><surname>Potjans</surname> <given-names>Wiebke</given-names></name>
<xref ref-type="aff" rid="aff1"><sup>1</sup></xref>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="author-notes" rid="fn001">&#x0002A;</xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Morrison</surname> <given-names>Abigail</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff3"><sup>3</sup></xref>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
</contrib>
<contrib contrib-type="author">
<name><surname>Diesmann</surname> <given-names>Markus</given-names></name>
<xref ref-type="aff" rid="aff2"><sup>2</sup></xref>
<xref ref-type="aff" rid="aff4"><sup>4</sup></xref>
<xref ref-type="aff" rid="aff5"><sup>5</sup></xref>
</contrib>
</contrib-group>
<aff id="aff1"><sup>1</sup><institution>Institute of Neuroscience and Medicine (INM-6), Computational and Systems Neuroscience, Research Center J&#x000FC;lich</institution> <country>J&#x000FC;lich, Germany</country></aff>
<aff id="aff2"><sup>2</sup><institution>RIKEN Brain Science Institute</institution> <country>Wako City, Saitama, Japan</country></aff>
<aff id="aff3"><sup>3</sup><institution>Functional Neural Circuits Group, Faculty of Biology, Albert-Ludwigs-University of Freiburg</institution> <country>Freiburg, Germany</country></aff>
<aff id="aff4"><sup>4</sup><institution>Bernstein Center Freiburg, Albert-Ludwigs-University of Freiburg</institution> <country>Freiburg, Germany</country></aff>
<aff id="aff5"><sup>5</sup><institution>RIKEN Computational Science Research Program</institution> <country>Wako City, Saitama, Japan</country></aff>
<author-notes>
<fn fn-type="edited-by"><p>Edited by: Per Jesper Sj&#x000F6;str&#x000F6;m, University College London, UK</p></fn>
<fn fn-type="edited-by"><p>Reviewed by: Alfonso Renart, Rutgers University, USA; Andrew P. Davison, CNRS, France; Wulfram Gerstner, Ecole Polytechnique F&#x000E9;d&#x000E9;rale de Lausanne, Switzerland</p></fn>
<fn fn-type="corresp" id="fn001"><p>&#x0002A;Correspondence: Wiebke Potjans, Research Center J&#x000FC;lich, Institute of Neuroscience and Medicine (INM-6), 52425 J&#x000FC;lich, Germany.; e-mail: <email>w.potjans&#x00040;fz-juelich.de</email></p></fn>
</author-notes>
<pub-date pub-type="epub">
<day>23</day>
<month>11</month>
<year>2010</year>
</pub-date>
<pub-date pub-type="collection">
<year>2010</year>
</pub-date>
<volume>4</volume>
<elocation-id>141</elocation-id>
<history>
<date date-type="received">
<day>01</day>
<month>02</month>
<year>2010</year>
</date>
<date date-type="accepted">
<day>15</day>
<month>09</month>
<year>2010</year>
</date>
</history>
<permissions>
<copyright-statement>Copyright &#x000A9; 2010 Potjans, Morrison and Diesmann.</copyright-statement>
<copyright-year>2010</copyright-year>
<license license-type="open-access" xlink:href="http://www.frontiersin.org/licenseagreement"><p>This is an open-access article subject to an exclusive license agreement between the authors and the Frontiers Research Foundation, which permits unrestricted use, distribution, and reproduction in any medium, provided the original authors and source are credited.</p></license>
</permissions>
<abstract>
<p>A major puzzle in the field of computational neuroscience is how to relate system-level learning in higher organisms to synaptic plasticity. Recently, plasticity rules depending not only on pre- and post-synaptic activity but also on a third, non-local neuromodulatory signal have emerged as key candidates to bridge the gap between the macroscopic and the microscopic level of learning. Crucial insights into this topic are expected to be gained from simulations of neural systems, as these allow the simultaneous study of the multiple spatial and temporal scales that are involved in the problem. In particular, synaptic plasticity can be studied during the whole learning process, i.e., on a time scale of minutes to hours and across multiple brain areas. Implementing neuromodulated plasticity in large-scale network simulations where the neuromodulatory signal is dynamically generated by the network itself is challenging, because the network structure is commonly defined purely by the connectivity graph without explicit reference to the embedding of the nodes in physical space. Furthermore, the simulation of networks with realistic connectivity entails the use of distributed computing. A neuromodulated synapse must therefore be informed in an efficient way about the neuromodulatory signal, which is typically generated by a population of neurons located on different machines than either the pre- or post-synaptic neuron. Here, we develop a general framework to solve the problem of implementing neuromodulated plasticity in a time-driven distributed simulation, without reference to a particular implementation language, neuromodulator, or neuromodulated plasticity mechanism. We implement our framework in the simulator NEST and demonstrate excellent scaling up to 1024 processors for simulations of a recurrent network incorporating neuromodulated spike-timing dependent plasticity.</p>
</abstract>
<kwd-group>
<kwd>synaptic plasticity</kwd>
<kwd>neuromodulator</kwd>
<kwd>computational neuroscience</kwd>
<kwd>modeling</kwd>
<kwd>large-scale simulations</kwd>
<kwd>integrate-and-fire neurons</kwd>
<kwd>distributed computing</kwd>
<kwd>spiking networks</kwd>
</kwd-group>
<counts>
<fig-count count="11"/>
<table-count count="2"/>
<equation-count count="6"/>
<ref-count count="55"/>
<page-count count="17"/>
<word-count count="13129"/>
</counts>
</article-meta>
</front>
<body>
<sec>
<label>1</label> <title>Introduction</title>
<p>It is generally assumed that mammalian learning is implemented by changes in synaptic efficacy, as it is the case in simpler organisms (see e.g., Antonov et al., <xref ref-type="bibr" rid="B3">2003</xref>). Historically, attempts to provide a theoretical explanation of learning have mainly been influenced by Hebb&#x00027;s postulate (Hebb, <xref ref-type="bibr" rid="B22">1949</xref>) that the sequential activation of two neurons strengthens the synapse connecting them. Thus, theoretical &#x0201C;Hebbian&#x0201D; plasticity rules depend on the pre- and post-synaptic activity and sometimes also on the weight itself. Although these rules have been shown to solve some interesting problems (Gerstner et al., <xref ref-type="bibr" rid="B16">1996</xref>; Song et al., <xref ref-type="bibr" rid="B48">2000</xref>; Song and Abbott, <xref ref-type="bibr" rid="B47">2001</xref>) it is not clear that such &#x0201C;two factor&#x0201D; rules can be the mechanism that enables animals to learn complicated tasks, such as those to find sparse rewards in complex environments.</p>
<p>However, experiments have shown that in some preparations, synaptic plasticity depends not only on the activity of the pre- and post-synaptic neurons but also on the presence of neuromodulators such as acetylcholine, norepinephrine, serotonin, and dopamine. Neuromodulators are released from neurons that are primarily located in the brainstem and basal forebrain, but that innervate many brain areas through long range connections (for a review see Cooper et al., <xref ref-type="bibr" rid="B11">2002</xref>). The functional consequences of the long-range neuromodulatory projections are very diverse and depend strongly on the specific neuromodulator, the target area and the neuromodulatory concentration. For example, the release of acetylcholine from the basal forebrain into the cortex is involved in the control of attention (Hasselmo and McGaughy, <xref ref-type="bibr" rid="B21">2004</xref>; Herrero et al., <xref ref-type="bibr" rid="B23">2008</xref>; Deco and Thiele, <xref ref-type="bibr" rid="B12">2009</xref>), and noradrenaline, mainly originating from the locus coeruleus, is released throughout the central nervous system facilitating the processing of relevant, or salient, information (Berridge and Waterhouse, <xref ref-type="bibr" rid="B6">2003</xref>). One neuromodulatory function which has evoked high interest in the experimental as well as the theoretical neuroscience communities is reward learning on the basis of dopamine released in the striatum from midbrain areas (Schultz et al., <xref ref-type="bibr" rid="B45">1997</xref>; Reynolds et al., <xref ref-type="bibr" rid="B44">2001</xref>).</p>
<p>An influential hypothesis on the mechanism of neuromodulation is that neuromodulators can be released extrasynaptically from en passant boutons on neuromodulatory axons and modulate the plasticity of synapses that are remote from release sites, a concept known as volume transmission (Agnati et al., <xref ref-type="bibr" rid="B1">1995</xref>; Zoli and Agnati, <xref ref-type="bibr" rid="B53">1996</xref>). This is illustrated in Figure <xref ref-type="fig" rid="F1">1</xref>. For an illustration of en passant boutons on a neuromodulatory axon and a schematic representation of the main sources of volume transmission signals, see Moreau et al. (<xref ref-type="bibr" rid="B30">2010</xref>) and Zoli et al. (<xref ref-type="bibr" rid="B54">1999</xref>), respectively. This hypothesis implies a temporal rather than a spatial selectivity for neuromodulatory action (Arbuthnott and Wickens, <xref ref-type="bibr" rid="B4">2007</xref>). Pawlak et al. (<xref ref-type="bibr" rid="B38">2010</xref>) in this special issue review the recent experimental <italic>in vitro</italic> findings concerning the effects of neuromodulators released from long-range neuromodulatory systems on STDP. Despite the large range of time scales and the variety of mechanisms by which the neuromodulators influence STDP, the review finds that the effects can be divided into two categories. In the first category, the neuromodulator is essentially required for the induction of STDP. In the second category, the neuromodulator alters the threshold for the plasticity induction. The review argues that the neuromodulatory influence is the crucial mechanism linking synaptic plasticity to behaviorally based learning, especially when learning depends on a reward signal. This hypothesis is further supported by a number of spiking neuronal network models that can learn a reward related task, due to the incorporation of three-factor synaptic plasticity rules (Seung, <xref ref-type="bibr" rid="B46">2003</xref>; Xie and Seung, <xref ref-type="bibr" rid="B52">2004</xref>; Baras and Meir, <xref ref-type="bibr" rid="B5">2007</xref>; Florian, <xref ref-type="bibr" rid="B14">2007</xref>; Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>; Potjans et al., <xref ref-type="bibr" rid="B42">2009b</xref>; Vasilaki et al., <xref ref-type="bibr" rid="B50">2009</xref>).</p>
<fig id="F1" position="float">
<label>Figure 1</label>
<caption><p><bold>Volume transmission: a neuromodulator is released from en passant boutons on neuromodulatory axons and modulates the plasticity of synapses remote from the release sites as a &#x0201C;third factor</bold>. &#x0201D; The modulatory signal is a composition of the neuromodulator released by multiple boutons in a certain area (three are shown). For simplicity the figure shows only one modulated synapse. However, commonly the signal is assumed to affect multiple synapses within a certain volume (pink area).</p></caption>
<graphic xlink:href="fncom-04-00141-g001.tif"/>
</fig>
<p>These spiking neuronal network models of reward learning are typically formulated in a general way before being tested in concrete tasks. The generation of the neuromodulatory signal, or third factor, is determined by the task to be solved. Three categories can be identified for the generation of the neuromodulatory signal: either the signal is injected into the spiking network by an external controller, or it is determined by a mixture of an external supervisor and the spiking activity of the network or it is generated purely internally. The categories can be further discriminated with respect to the points in time leading to discontinuous changes in the value of the signal. An update can be triggered by an external event (such as an external stimulus), by the generation of a spike or it can be driven in discrete time steps. The neuromodulatory signal is either represented as a discrete variable that has a non-zero value only at the points in time that an update is triggered, or it is represented as a continuous variable between discontinuous updates. The three categories and their sub-categories are illustrated in Figure <xref ref-type="fig" rid="F2">2</xref>.</p>
<fig id="F2" position="float">
<label>Figure 2</label>
<caption><p><bold>Characterization of existing modeling studies with respect to the generation process of a plasticity modulating signal</bold>. From left to right: interplay between external (E) and internal (N) information in the generation process of the modulatory signal (n). <bold>(A)</bold> The signal is generated purely externally (task two in Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Potjans et al., <xref ref-type="bibr" rid="B42">2009b</xref>; Vasilaki et al., <xref ref-type="bibr" rid="B50">2009</xref>). <bold>(B)</bold> The signal combines information from an external supervisor and internal information (Seung, <xref ref-type="bibr" rid="B46">2003</xref>; Xie and Seung, <xref ref-type="bibr" rid="B52">2004</xref>; Baras and Meir, <xref ref-type="bibr" rid="B5">2007</xref>; Florian, <xref ref-type="bibr" rid="B14">2007</xref>; Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>, task three). <bold>(C)</bold> The signal is generated purely internally (task four in Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>). From top to bottom: timing of discontinuous updates to the signal. Top: updates are triggered by external events, indicated by arrows (event-driven). Middle: updates occur in discrete time steps dt (time-driven). Bottom: updates triggered by the arrival of neuromodulatory spikes, indicated by arrows (spike-driven). Upper and lower rows show a signal that takes continuous values between updates, or discrete values at the times of updates, respectively.</p></caption>
<graphic xlink:href="fncom-04-00141-g002.tif"/>
</fig>
<p>In the first category (Figure <xref ref-type="fig" rid="F2">2</xref>A), the plasticity modulating signal does not depend on the spiking activity of the network at all. The signal is updated in an event-driven fashion triggered by external events, such as entering a reward-related state in a navigation task or the occurrence of a reward predicting stimulus in classical conditioning tasks. Both discrete-time (Potjans et al., <xref ref-type="bibr" rid="B42">2009b</xref>; Vasilaki et al., <xref ref-type="bibr" rid="B50">2009</xref>) and continuous-time (task two in Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>) representations of the neuromodulatory signal have been investigated.</p>
<p>In the second category (Figure <xref ref-type="fig" rid="F2">2</xref>B), the generation of the plasticity modulating signal requires the presence of an all-knowing external supervisor. The signal depends on the interplay between information provided externally and internally. Signal updates are triggered by the occurrence of an external event (task three in Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>) or the emission of a spike of a specific output neuron within the network (XOR task in Florian, <xref ref-type="bibr" rid="B14">2007</xref>; Seung, <xref ref-type="bibr" rid="B46">2003</xref>; Xie and Seung, <xref ref-type="bibr" rid="B52">2004</xref>); alternatively, the signal is generated in discrete time steps (Baras and Meir, <xref ref-type="bibr" rid="B5">2007</xref>, target firing learning model in Florian, <xref ref-type="bibr" rid="B14">2007</xref>). In the event-driven model proposed by Izhikevich (<xref ref-type="bibr" rid="B24">2007</xref>) to solve an instrumental conditioning task, the signal is modeled as a continuous variable where the timing and magnitude of updates are determined externally. Whether the update is actually carried out by the synapses is contingent on an internal condition (i.e., a comparison of firing rates in two pools) meeting an externally imposed criterion (i.e., the desired ordering of the firing rates). In the models proposed by Seung (<xref ref-type="bibr" rid="B46">2003</xref>), Xie and Seung (<xref ref-type="bibr" rid="B52">2004</xref>), and Florian (<xref ref-type="bibr" rid="B14">2007</xref>) to solve a XOR task, updates are triggered by the spikes of an output neuron; the magnitudes of the updates are determined by an external supervisor that evaluates the response of the output neuron to the spiking activity of an input layer representing different combinations of 0 and 1. For an input of [0,1] or [1,0], every spike of the output neuron results in a positive value for the neuromodulatory signal, whereas a negative value is generated for each input spike in response to an input of [0,0] or [1,1]. Between spikes of the output neuron, the value of the neuromodulatory signal is zero.</p>
<p>Other models in the second category assume that the signal is updated in discrete-time steps in <italic>n</italic>&#x000B7;&#x00394;<italic>T</italic>, where <italic>n</italic> is an integer; &#x00394;<italic>T</italic> can be a small step size or the duration of a certain episode. This is illustrated in the middle row of Figure <xref ref-type="fig" rid="F2">2</xref>B. Here the values of the signal are determined as a function of the spiking activity in comparison to a desired activity which is provided by an external supervisor. The signal can either take continuous values, as in the model proposed by Baras and Meir (<xref ref-type="bibr" rid="B5">2007</xref>) to solve a path learning task and the target firing-rate learning model proposed by Florian (<xref ref-type="bibr" rid="B14">2007</xref>) or discrete values at specific times, as in an alternative variant of the target firing-rate learning model proposed by Florian (<xref ref-type="bibr" rid="B14">2007</xref>) and the XOR learning model proposed by Baras and Meir (<xref ref-type="bibr" rid="B5">2007</xref>).</p>
<p>The first two categories demonstrate the importance of three-factor rules in solving reward related tasks of different complexity, ranging from XOR to navigation tasks. However, in order to understand how different brain areas interact to produce cognitive functions these models are not sufficient. This problem requires the consideration of functionally closed loop models, where the neuromodulatory signal is generated by the network itself (Figure <xref ref-type="fig" rid="F2">2</xref>C). So far, only two studies have investigated such models. In both the model proposed by Izhikevich (<xref ref-type="bibr" rid="B24">2007</xref>), which learns a shift in dopamine response from an unconditional stimulus to a reward-predicting conditional stimulus, and that proposed by Legenstein et al. (<xref ref-type="bibr" rid="B26">2008</xref>) which learns a biofeedback task, each spike of a specific population of neurons leads to an update of a continuous-time variable.</p>
<p>The simulation of models in this third category and the spike-based models of the second category is beset by considerable technical challenges. Spike-driven updates are intrinsically more troublesome than updates driven by external events or occurring in regular intervals, as they do not entail a natural interruption point for the simulation at which signal information can be calculated and conveyed to the relevant synapses. This difficulty is compounded in the context of models where different brain regions interact, as the neuromodulatory signal is not only likely to be composed of the activity of a population of neurons, but also affecting synapses between entirely different populations. A final hurdle comes with model size. The spiking network models implementing three-factor synaptic plasticity rules discussed above consist only of a small (of the order of 10 to 10<sup>2</sup>) (Seung, <xref ref-type="bibr" rid="B46">2003</xref>; Xie and Seung, <xref ref-type="bibr" rid="B52">2004</xref>; Baras and Meir, <xref ref-type="bibr" rid="B5">2007</xref>; Florian, <xref ref-type="bibr" rid="B14">2007</xref>; Potjans et al., <xref ref-type="bibr" rid="B42">2009b</xref>; Vasilaki et al., <xref ref-type="bibr" rid="B50">2009</xref>) to moderate (of the order of 10<sup>3</sup>) number of neurons (Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>). However, to simultaneously achieve cortical levels of connectivity (10%) and number of inputs (10<sup>4</sup>) (Braitenberg and Sch&#x000FC;z, <xref ref-type="bibr" rid="B9">1998</xref>), a minimal network size of 10<sup>5</sup> neurons is required. Similarly, to investigate brain-scale circuits involving the interaction of multiple brain areas, large-scale networks are likely to be necessary. Consequently, distributed computing techniques are required. Indeed, even the systematic study of smaller networks demand such techniques as learning often takes place on a very long time scale compared to the time scale of synaptic plasticity. The requirement for distributed computing adds to the complexity of the problem of implementing neuromodulated plasticity via volume transmission. The challenge can be stated as follows: how can a synapse, which is typically only accessed through its pre-synaptic neuron, be efficiently informed about a neuromodulatory signal generated by a population of neurons that are generally located on machines different than those of either the pre- or the postsynaptic neuron. Whereas efficient methods exist to integrate the dynamics of large-scale models by distributed computing (Hammarlund and Ekeberg, <xref ref-type="bibr" rid="B18">1998</xref>; Harris et al., <xref ref-type="bibr" rid="B20">2003</xref>; Morrison et al., <xref ref-type="bibr" rid="B35">2005</xref>), so far no solution for the efficient implementation of neuromodulated plasticity in spiking neuronal networks has been presented. Studies of network models in which the neuromodulatory signal is internally generated have not provided any technical details (Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>), thus the models cannot be reproduced or extended by the wider modeling community.</p>
<p>To address this gap and thus open up this fascinating area of research, we present a framework for the implementation of neuromodulated plasticity in time-driven simulators operating in a distributed environment. The framework is general, in that it is suitable for all manner of simulations rather than one specific network model or task. Moreover, we do not focus on a specific implementation language, neuromodulator or neuromodulated plasticity mechanism and rely on only a few assumptions about the infrastructure of the underlying simulator. In the framework the plasticity modulating signal is generated by a user-defined population of neurons contained within the network. The neuromodulatory signal influences all synapses located in a user-defined specific volume, modeling the effect of volume transmission (see Figure <xref ref-type="fig" rid="F1">1</xref>). Our framework yields excellent scaling for recurrent networks incorporating neuromodulated STDP in its excitatory to excitatory connections. In order to analyze the efficiency of the framework implementation accurately, we develop a general technique to decompose the total run time into the portion consumed by communication between machines and the portion consumed by computation. This separation enables us to distinguish the saturation in run time caused by communication overhead from any potential saturation caused by a sub-optimal algorithm design. This technique can be applied to arbitrary network simulations und will thus aid the future development and analysis of extensions to distributed simulation tools.</p>
<p>A general scheme for the distributed simulation of neural networks is summarized in section <xref ref-type="sec" rid="s1">2.1</xref> to clarify terminology and make explicit the assumptions made about the simulator infrastructure. In section <xref ref-type="sec" rid="s5">3.1</xref> we present an efficient way to implement neuromodulated plasticity in this distributed simulation environment. To illustrate the technique, in section <xref ref-type="sec" rid="s7">3.2</xref> we compare the run times of recurrent networks (10<sup>4</sup> and 10<sup>5</sup> neurons) incorporating neuromodulated spike-timing dependent plasticity (Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>) to those of networks incorporating the corresponding &#x0201C;two factor&#x0201D; spike-timing dependent plasticity.</p>
<p>The conceptual and algorithmic work described here is a module in our long-term collaborative project to provide the technology for neural systems simulations (Gewaltig and Diesmann, <xref ref-type="bibr" rid="B17">2007</xref>). Preliminary results have been already presented in abstract form (Potjans et al., <xref ref-type="bibr" rid="B41">2009a</xref>).</p>
</sec>
<sec>
<label>2</label> <title>Materials and Methods</title>
<sec id="s1">
<label>2.1</label> <title>Distributed neural network simulation</title>
<p>To clarify the terminology used in the rest of the manuscript and define the requirements a simulator must fulfill in order to incorporate our framework for neuromodulated plasticity, in the following we briefly describe a general purpose time-driven simulation scheme for distributed computation. For a more thorough and illustrated description, see Morrison et al. (<xref ref-type="bibr" rid="B35">2005</xref>). Variants of this scheme underlie the majority of simulators that are designed for simulating networks of point neurons, for example NEST (Gewaltig and Diesmann, <xref ref-type="bibr" rid="B17">2007</xref>), C2 (Ananthanarayanan and Modha, <xref ref-type="bibr" rid="B2">2007</xref>) and PCSIM (Pecevski et al., <xref ref-type="bibr" rid="B39">2009</xref>), see Brette et al. (<xref ref-type="bibr" rid="B10">2007</xref>) for a review.</p>
<sec id="s2">
<label>2.1.1</label> <title>Network representation</title>
<p>Our fundamental assumption is that a neural network can be represented as a directed graph, consisting of nodes and the connections between them. The class of nodes comprises spiking neurons (either single- or few-compartment models) and devices, which are used to stimulate or record from neurons. A connection enables information to be sent from a sending node to a receiving node. The definition of a connection typically includes at least a weight and a delay. The weight determines the strength of a signal and the delay how long it takes for the signal to travel from the sending to the receiving node. The simplest synapse model delivers a fixed connection weight to the post-synaptic node. If the connection is intended to be plastic, the connection definition must also include a mechanism that defines the weight dynamics. &#x0201C;Two factor&#x0201D; rules, such as spike-timing dependent plasticity, can be implemented if the post-synaptic node maintains a history of its relevant state variables (e.g., as described in Morrison et al., <xref ref-type="bibr" rid="B31">2007</xref>).</p>
<p>Each neuron is represented on exactly one of the <italic>m</italic> machines running the simulation, and synapses are distributed such that they are represented on the same machine as their post-synaptic target. Distributing the axon of a sending node in this way has a considerable advantage in communication costs compared to distributing dendrites (Morrison et al., <xref ref-type="bibr" rid="B35">2005</xref>). In contrast to the neurons, each device is represented on every machine and only interacts with the local neurons. This reduces the communication load, as measured data or stimulation signals do not have to be transferred between machines. The cost of this approach is that <italic>m</italic> data files are generated for each recording device.</p>
</sec>
<sec id="s3">
<label>2.1.2</label> <title>Simulation dynamics</title>
<sec>
<title>Time-driven network update</title>
<p>The network is evaluated on an evenly spaced time grid <italic>t<sub>i</sub></italic>&#x02009;&#x0003D;&#x02009;<italic>i</italic>&#x000B7;&#x00394;<italic>t</italic>. At each grid point the network is in a well defined state <italic>S<sub>i</sub></italic>. The time interval &#x00394;<italic>t</italic> between two updates can be maximized by setting it to the minimal propagation delay <italic>d</italic><sub>min</sub> of the network. This is the largest permissible temporal desynchronization between any two nodes in the network (see Lamport, <xref ref-type="bibr" rid="B25">1978</xref>; Morrison et al., <xref ref-type="bibr" rid="B35">2005</xref>; Plesser et al., <xref ref-type="bibr" rid="B40">2007</xref>). Note that the computation resolution for the neuron models can be much finer than the resolution of the global scheduling algorithm, for example neurons can advance their dynamics with a time step <italic>h</italic>&#x02009;&#x0003D;&#x02009;0.1 ms even if the global algorithm advances in communication intervals of &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;1 ms. Alternatively, neuron model implementations can be defined within this framework that advance their dynamics in an event-driven fashion, i.e., from one incoming spike to the next (Morrison et al., <xref ref-type="bibr" rid="B36">2007</xref>; Hanuschkin et al., <xref ref-type="bibr" rid="B19">2010</xref>).</p>
<p>During a network update from one time step to the next, i.e., the interval (<italic>t</italic><sub><italic>i</italic>&#x02009;&#x02212;&#x02009;1</sub>,<italic>t<sub>i</sub></italic>], a global state transfer function <italic>U</italic>(<italic>S<sub>i</sub></italic>) propagates the network from one state <italic>S<sub>i</sub></italic> to the next <italic>S</italic><sub><italic>i</italic>&#x0002B;1</sub>. As a result of this, each neuron may generate one or more spike events which are communicated to the other machines at the end of the update interval at <italic>t<sub>i</sub></italic>. Before the start of the next network update, i.e., the interval (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>], the communicated events are delivered to their targets. This is described in greater detail below. In the following, we will refer to &#x00394;<italic>t</italic> as the communication interval. To implement our framework for neuromodulated plasticity, we therefore assume that the update cycle of the underlying simulator in a distributed environment can be expressed as the following algorithm:</p>
<p><monospace>1: <italic>T</italic>&#x02009;&#x02190;&#x02009;0</monospace></p>
<p><monospace>2: while <italic>T &#x0003C; T<sub>stop</sub></italic> do</monospace></p>
<p><monospace>3:      parallel on all machines do</monospace></p>
<p><monospace>4:        deliver events received at last</monospace></p>
<p><monospace>            communication to targets</monospace></p>
<p><monospace>5:        call <italic>U(S<sub>T</sub></italic> )</monospace></p>
<p><monospace>6:     end parallel</monospace></p>
<p><monospace>7:     communicate new events between machines</monospace></p>
<p><monospace>8:     increment network time: <italic>T</italic>&#x02009;&#x02190;&#x02009;<italic>T</italic>&#x02009;&#x0002B;&#x02009;&#x00394;t</monospace></p>
<p><monospace>9: end while</monospace></p>
</sec>
<sec>
<title>Event delivery</title>
<p>A neuron&#x00027;s spike events must be delivered to its target nodes with a propagation delay determined by the connecting synapse. After the communication of events that takes place after each &#x00394;<italic>t</italic> interval, the simulation algorithm activates the outgoing synapses of the neurons that spiked during the previous interval. The sequence diagram for a simple synapse model is shown in Figure <xref ref-type="fig" rid="F3">3</xref>A. The synapse generates an event of weight <italic>w</italic> and delay <italic>d</italic>. The delay is determined by subtracting the lag between spike generation and communication from the propagation delay associated with the synapse: for a spike generated at <italic>s</italic><sub>pre</sub> and communicated at <italic>t<sub>i</sub></italic> with a total synaptic propagation delay <italic>d</italic><sub>syn</sub>, the remaining delay <italic>d</italic> is equal to <italic>d</italic><sub>syn</sub>&#x02009;&#x002D;&#x02009;(<italic>t<sub>i</sub></italic>&#x02009;&#x002D;&#x02009;<italic>s</italic><sub>pre</sub>). The event is sent to the synapse&#x00027;s target node, which writes the event to its incoming event buffer such that it becomes visible to the update dynamics of the target neuron at the correct time step, <italic>s</italic><sub>pre</sub>&#x02009;&#x0002B;&#x02009;<italic>d</italic><sub>syn</sub>. A description of the ordering of buffer reading and writing operations to ensure that events are integrated correctly can be found in Morrison and Diesmann (<xref ref-type="bibr" rid="B33">2008</xref>). For the purposes of this manuscript, we assume that a simulator delivers events as described above, i.e., spikes have propagation delays, are communicated between machines at regular intervals and are buffered at the target neuron until they are due to be incorporated in the neuronal dynamics.</p>
<fig id="F3" position="float">
<label>Figure 3</label>
<caption><p><bold>Sequence diagram for static (A) and STDP (B) synapses</bold>. The object Synapse (<italic>j</italic>,<italic>i</italic>) denotes a synapse from source neuron <italic>i</italic> to target neuron <italic>j</italic>; neuron <italic>i</italic> emits a spike at time <italic>s</italic><sub>pre</sub>.</p></caption>
<graphic xlink:href="fncom-04-00141-g003.tif"/>
</fig>
<sec>
<title>Synapse update</title>
<p>In contrast to neurons, incoming events are rare for individual synapses at realistic firing rates. Therefore, to develop our framework we make the assumption that a simulator uses the more efficient strategy of updating synapses in an event-driven fashion only on the arrival of a pre-synaptic spike rather than in a time-driven fashion as neurons are. This is possible for the class of synaptic models that only depend on local factors such as the current weight of the synapse, the time since the last update and state information available from the post-synaptic neuron (Morrison et al., <xref ref-type="bibr" rid="B34">2008</xref>). This class includes synaptic depression (Thomson and Deuchars, <xref ref-type="bibr" rid="B49">1994</xref>), synaptic redistribution (Markram and Tsodyks, <xref ref-type="bibr" rid="B28">1996</xref>) and spike-timing dependent plasticity (STDP) (Markram et al., <xref ref-type="bibr" rid="B27">1997</xref>; Bi and Poo, <xref ref-type="bibr" rid="B8">1998</xref>, <xref ref-type="bibr" rid="B7">2001</xref>).</p>
<p>As we measure performance on the example of STDP with a neuromodulatory third factor (see section <xref ref-type="sec" rid="s7">3.2</xref>) it is worth discussing the infrastructure for calculating STDP updates triggered only on the arrival of pre-synaptic spikes in somewhat more detail. See Figure <xref ref-type="fig" rid="F3">3</xref>B for the sequence diagram for the activation of an STDP synapse; the corresponding pseudo-code is given in Morrison et al. (<xref ref-type="bibr" rid="B31">2007</xref>). All post-synaptic variables, such as the post-synaptic spike times and the low-pass filtered post-synaptic rate, are stored at the post-synaptic neuron. On the arrival of a pre-synaptic spike, the synapse requests these variables from the post-synaptic neuron for the period between the last and the current pre-synaptic spike (<monospace>get_history(s_last,s_pre)</monospace>). Based on this information the synapse can integrate its weight dynamics from one spike time to the next. The post-synaptic variables only have to be stored until they have been processed by every incoming synapse. After the weight has been updated an event is sent to the post-synaptic neuron as in the case of the simple synapse model discussed in section <xref ref-type="sec" rid="s3">2.1.2</xref> and illustrated in Figure <xref ref-type="fig" rid="F3">3</xref>A.</p>
</sec>
</sec>
</sec>
</sec>
<sec id="s4">
<label>2.2</label> <title>Benchmark network models</title>
<p>To investigate the performance of our proposed framework, we measure the simulation times of recurrent networks incorporating neuromodulated spike-timing dependent plasticity at their excitatory&#x02013;excitatory connections whilst systematically varying the number of processors used. The STDP model uses an all-to-all spike pairing scheme and is based on the model proposed by Izhikevich (<xref ref-type="bibr" rid="B24">2007</xref>):</p>
<disp-formula id="E1"><mml:math id="M1"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>w</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x003B4;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>pre</mml:mtext><mml:mo>/</mml:mo><mml:mtext>post</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>n</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x003B4;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub><mml:mo>,</mml:mo></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
<p>where <italic>c</italic> is an eligibility trace, <italic>n</italic> the neuromodulator concentration, <italic>s</italic><sub>pre/post</sub> the time of a pre- or post-synaptic spike, <italic>s<sub>n</sub></italic> the time of a neuromodulatory spike, and <italic>C</italic><sub>1</sub> and <italic>C</italic><sub>2</sub> are constant coefficients. &#x003B4;(<italic>t</italic>) is the Dirac delta function; &#x003C4;<italic><sub>c</sub></italic> and &#x003C4;<italic><sub>n</sub></italic> are the time constants of the eligibility trace and the neuromodulator concentration, respectively. Unlike the networks investigated by Izhikevich (<xref ref-type="bibr" rid="B24">2007</xref>), the neuromodulator concentration is always present, so we subtract a baseline <italic>b</italic> from the neuromodulator concentration. STDP(&#x00394;<italic>t</italic>) is the window function of additive STDP:</p>
<disp-formula id="E2"><mml:math id="M2"><mml:mrow><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo> <mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mo>+</mml:mo></mml:msub><mml:msup><mml:mtext>e</mml:mtext><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#x0007C;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x0007C;</mml:mo><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mo>+</mml:mo></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x02009;</mml:mtext><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mo>&#x02212;</mml:mo></mml:msub><mml:msup><mml:mtext>e</mml:mtext><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mo>&#x0007C;</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x0007C;</mml:mo><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mo>&#x02212;</mml:mo></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x02009;</mml:mtext><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable><mml:mo>,</mml:mo></mml:mrow></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;<italic>s</italic><sub>post</sub>&#x02009;&#x02212;&#x02009;<italic>s</italic><sub>pre</sub> is the temporal difference between a post-synaptic and a pre-synaptic spike, <italic>A</italic><sub>&#x0002B;</sub> and <italic>A</italic><sub>&#x02212;</sub> are the amplitudes of the weight change and &#x003C4;<sub>&#x0002B;</sub> and &#x003C4;<sub>&#x02212;</sub> are time constants. As a control, we also measure the simulation times of networks in which the neuromodulated STDP is exchanged for STDP without neuromodulation according to the model of Song and Abbott (<xref ref-type="bibr" rid="B47">2001</xref>), i.e., <inline-formula><mml:math id="M3"><mml:mrow><mml:mover accent='true'><mml:mi>w</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x003B4;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>pre/post</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula>. In the neuromodulated and the unmodulated networks the synaptic weights are bounded between 0 and a maximal synaptic weight <italic>w</italic><sub>max</sub>.</p>
<p>We investigate the performance for networks of two different sizes: 1.125 &#x000D7;&#x02009;10<sup>4</sup> and 1.125 &#x000D7;&#x02009;10<sup>5</sup>, referred to in the rest of the manuscript as the 10<sup>4</sup> and 10<sup>5</sup> networks, respectively. Both networks consist of 80% excitatory and 20% inhibitory current based integrate-and-fire neurons. In the subthreshold range the membrane potential <italic>V</italic> is determined by the following dynamics:</p>
<disp-formula id="E3"><mml:math id="M4"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mtext>m</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mi>V</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mtext>m</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mi>I</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where &#x003C4;<sub>m</sub> is the membrane time constant, <italic>C</italic><sub>m</sub> the membrane capacity and <italic>I</italic>(<italic>t</italic>) the input current to the neuron, which is the sum of any external currents and the synaptic currents. The synaptic current <italic>I</italic><sub>syn</sub> due to an incoming spike is represented by an exponential function:</p>
<disp-formula id="E4"><mml:math id="M5"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>syn</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mi>w</mml:mi><mml:mtext>&#x02009;</mml:mtext><mml:msup><mml:mtext>e</mml:mtext><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mrow><mml:mtext>syn</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
<p>where <italic>w</italic> is the weight of the corresponding synapse and &#x003C4;<sub>syn</sub> the rise time. If the membrane potential passes the threshold <italic>V</italic><sub>th</sub> a spike is emitted and the neuron is clamped to the reset potential <italic>V</italic><sub>reset</sub> for the duration of the refractory period &#x003C4;<sub>ref</sub>.</p>
<p>The excitatory&#x02013;excitatory connections are plastic, as described above; all other connections are static. All neurons receive additional Poissonian background noise. The network firing rate due to the Poissonian background noise of both networks is approximately 10&#x02009;Hz in the asynchronous irregular regime. We arbitrarily choose the first <italic>N</italic><sub>nm</sub> excitatory neurons to be the neuromodulator releasing neurons. A tabular description of the benchmark network models and a specification of the parameters used can be found in <bold>Tables 1 and 2</bold> of Appendix.</p>
<p>The simulations are carried out using the simulation tool NEST (Gewaltig and Diesmann, <xref ref-type="bibr" rid="B17">2007</xref>) with a computation time step of 0.1 ms and a communication interval equal to the minimal propagation delay <italic>d</italic><sub>min</sub>. The simulations of the 10<sup>4</sup> neuron networks are performed on a cluster of SUN X86 consisting of 23 compute nodes equipped with two AMD Opteron 2834 quad core processors with 2.7&#x02009;GHz clock speed running Ubuntu Linux. The nodes are connected via InfiniBand (24 ports InfiniBand switch, Voltaire ISR9024D-M); the MPI implementation is OpenMPI 1.3.1. The simulations for the 10<sup>5</sup> neuron networks are performed on a Bluegene/P (JUGENE<xref ref-type="fn" rid="fn1"><sup>1</sup></xref>).</p>
</sec>
</sec>
<sec>
<label>3</label> <title>Results</title>
<sec id="s5">
<label>3.1</label> <title>Implementing neuromodulated plasticity in a distributed environment</title>
<p>In this section we present a novel and general framework to implement neuromodulated plasticity efficiently for a distributed time-driven simulator as described in section <xref ref-type="sec" rid="s1">2.1</xref> The neuromodulator concentration available in a certain volume is the superposition of the neuromodulator concentration released by a population of neurons projecting into the same volume. We assume, in agreement with experimental findings (e.g., Garris et al., <xref ref-type="bibr" rid="B15">1994</xref>; Montague et al., <xref ref-type="bibr" rid="B29">2004</xref>), that each spike of the neuromodulator releasing neurons contributes to the extracellular neuromodulator concentration and thus the concentration can be given as a function of spike times.</p>
<sec>
<label>3.1.1</label> <title>A distributed volume transmitter</title>
<p>The major challenge is to provide an efficient mechanism to inform a set of synapses about a non-local neuromodulatory signal in a manner that respects the temporal ordering of spikes and signal changes, without making the assumption that the neurons generating the signal are identical with the modulated synapses&#x02019; pre- or post-synaptic neurons or even that they are represented on the same machines as the pre- or post-synaptic neurons. Our solution is to introduce a new category of node, which we will refer to as a &#x0201C;volume transmitter.&#x0201D; The volume transmitter collects all spikes from a neuromodulator releasing population of neurons and transmits the spikes to a user-specified subset of synapses (see Figure <xref ref-type="fig" rid="F4">4</xref>A). As the subset of synapses is typically distributed over all machines, we define the volume transmitter to be duplicated on each machine. It provides the spikes to the synapses local to its machine, in common with the &#x0201C;device&#x0201D; category of nodes (see section <xref ref-type="sec" rid="s2">2.1.1</xref>). However, as the population of neurons releasing the neuromodulator into a given volume is also typically distributed over all machines, the volume transmitter must receive spikes from a globally defined population, in common with the &#x0201C;neuron&#x0201D; category of nodes. The volume transmitter, therefore, represents a third category of nodes, duplicated on each machine and transmitting information locally like a device, but receiving events from all machines like a neuron. The distribution of the volume transmitter, the transmission of the spikes to the local synapses and the global collection of the spikes from the neuromodulator releasing neurons are depicted for an example network distributed over two machines in Figure <xref ref-type="fig" rid="F4">4</xref>B.</p>
<fig id="F4" position="float">
<label>Figure 4</label>
<caption><p><bold>A distributed volume transmitter object</bold>. <bold>(A)</bold> The volume transmitter (VT) collects all spikes from the neurons releasing the neuromodulator into a given volume and delivers them to any associated synapses. <bold>(B)</bold> An example network is distributed over two machines. The volume transmitter (VT) is duplicated on each machine. It collects globally the spikes of the neuromodulator releasing neurons (red) and delivers them locally to the neuromodulated synapses (blue).</p></caption>
<graphic xlink:href="fncom-04-00141-g004.tif"/>
</fig>
<p>Note that the dynamics of the neuromodulator concentration is calculated by the synapses rather than the volume transmitter. This enables the same framework to be used for a variety of neuromodulatory dynamics as long as they depend only on the spike history. Moreover, the association of a volume transmitter with a specific population of neuromodulator releasing neurons and a specific subset of synapses allows multiple volume transmitters to be defined in the same network model. Thus a network model can represent multiple projection volumes and multiple neuromodulatory interactions.</p>
</sec>
<sec id="s6">
<label>3.1.2</label> <title>Managing the spike history</title>
<p>In order to calculate its weight update, a neuromodulated synapse must have access to all the spikes from the neuromodulator releasing neuron population that occurred since the last pre-synaptic spike. This is similar to the requirement of an STDP synapse, which needs access to the post-synaptic spike history since the last pre-synaptic spike (see section <xref ref-type="sec" rid="s3">2.1.2</xref>). For STDP, this requirement can be met if the post-synaptic neuron stores its spike times (Morrison et al., <xref ref-type="bibr" rid="B36">2007</xref>). To prevent a continual growth in memory requirements as a simulation progresses, the spike times are discarded once all incoming synapses have accessed them. This is an inappropriate strategy for managing the neuromodulatory spikes, as they are typically generated by a population of neurons and so have a substantially higher total rate than the pre-synaptic spike rate. Having a large number of spikes in the history entails proportionally higher computational costs for the algorithm that determines which spikes can be discarded. We propose a novel alternative approach: in addition to delivering a spike history &#x0201C;on demand&#x0201D; when a pre-synaptic spike arrives (Figure <xref ref-type="fig" rid="F5">5</xref>A), the volume transmitter also delivers its spike history to all associated synapses at regular intervals (Figure <xref ref-type="fig" rid="F5">5</xref>B). Not only does this combination of an event- and time-driven approach allows us to dispense with an algorithm to discard spikes from the history, it also has the major advantage of enabling the spike history to be stored in a static data structure, rather than a computationally more expensive dynamic data structure.</p>
<fig id="F5" position="float">
<label>Figure 5</label>
<caption><p><bold>Sequence diagram for neuromodulated synapses in the event-driven (A) and the time-driven (B) mode</bold>.</p></caption>
<graphic xlink:href="fncom-04-00141-g005.tif"/>
</fig>
<p>Let us first consider the collection and storing of the spikes of the neuromodulator releasing neurons (Figure <xref ref-type="fig" rid="F4">4</xref>). A suitable structure to store the spikes is a traditional ring buffer which stores data in a contiguous series of segments as shown in Figure <xref ref-type="fig" rid="F6">6</xref>, where each segment of the buffer corresponds to one integration time step <italic>h</italic> (see also Morrison et al., <xref ref-type="bibr" rid="B35">2005</xref>; Morrison and Diesmann, <xref ref-type="bibr" rid="B32">2006</xref>). However, unlike the standard usage of a ring buffer in neuronal network simulations, where only one object reads from it and exactly one read operation from one segment is carried out in each time step, in this situation multiple objects depend on the data and read operations are carried out at unpredictable times and require information from a range of segments at once. Consequently, a new approach to writing to and reading from a ring buffer is necessary, as we describe in the following.</p>
<fig id="F6" position="float">
<label>Figure 6</label>
<caption><p><bold>Writing to and reading from the ring buffer of the volume transmitter for event communication in intervals of &#x00394;<italic>t</italic></bold>. In this example, &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;3<italic>h</italic>, where <italic>h</italic> is the computation time step. <bold>(A)</bold> Short black bars indicate the grid <italic>h</italic> imposes on the temporal axis. At time step <italic>t<sub>i</sub></italic>&#x02009;&#x0003D;&#x02009;<italic>i</italic>&#x00394;<italic>t</italic> all spikes generated by the neuromodulator releasing neurons in the time interval (<italic>t</italic><sub><italic>i</italic>&#x02212;1</sub>,<italic>t<sub>i</sub></italic>] are delivered to the volume transmitter (here: the spike times <italic>s</italic><sub>1</sub>,<italic>s</italic><sub>2</sub>,<italic>s</italic><sub>3</sub> (brown bars) with propagation delays <italic>d</italic><sub>1</sub>,<italic>d</italic><sub>2</sub>,<italic>d</italic><sub>3</sub>). Blue bars indicate the arrival of the spikes in the projection volume. <bold>(B)</bold> Ring buffer. Left: at time <italic>t<sub>i</sub></italic> during event delivery. The neuromodulatory spikes generated in (<italic>t</italic><sub><italic>i</italic>&#x02212;1</sub>,<italic>t<sub>i</sub></italic>] (blue bars, labeled by the event id for illustration only) increment the counters at the positions (<italic>s<sub>x</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>d<sub>x</sub></italic>&#x02009;&#x02212;&#x02009;<italic>t<sub>i</sub></italic>)/<italic>h</italic>&#x02009;&#x02212;&#x02009;1 for <italic>x</italic>&#x02009;&#x0003D; [1,2,3] from the &#x0201C;front&#x0201D; of the ring buffer (indicated by the red 0). At the end of the event delivery phase, the first &#x00394;<italic>t</italic>/<italic>h</italic> elements (gray) contain the neuromodulatory spikes due to arrive in the projection volume during (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>]. Right: at <italic>t</italic><sub><italic>i</italic></sub>&#x0002B;1 during event delivery. The &#x02019;front&#x02019; of the buffer has been rotated &#x00394;<italic>t</italic>/<italic>h</italic> segments clockwise with respect to the buffer at time <italic>t<sub>i</sub></italic>. Neuromodulatory spikes generated in the time interval (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>] by the neuromodulator releasing neurons (generation times not shown) are written to the buffer (orange bars), the first &#x00394;<italic>t</italic>/<italic>h</italic> elements (gray) contain the neuromodulatory spikes due to arrive in the projection volume during (<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>,<italic>t</italic><sub><italic>i</italic>&#x0002B;2</sub>]. <bold>(C)</bold> The spike history buffer. Left: at <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub> before the event delivery phase the contents of the top &#x00394;<italic>t</italic>/<italic>h</italic> elements of the ring buffer at <italic>t<sub>i</sub></italic> (gray) are copied to the spike history buffer and the counters are reset. Right: at <italic>t</italic><sub><italic>i</italic>&#x0002B;2</sub> before the event delivery phase the contents of the top &#x00394;<italic>t</italic>/<italic>h</italic> elements of the ring buffer at <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub> are copied to the spike history buffer and the counters are reset.</p></caption>
<graphic xlink:href="fncom-04-00141-g006.tif"/>
</fig>
<p>When a neuromodulator releasing neuron <italic>n</italic> emits a spike at time <italic>s<sub>n</sub></italic>, a certain propagation delay <italic>d<sub>n</sub></italic> is required for the spike to arrive at the projection volume, as illustrated in Figure <xref ref-type="fig" rid="F6">6</xref>A. Following the description in section <xref ref-type="sec" rid="s3">2.1.2</xref>, events are communicated after each communication interval of length &#x00394;<italic>t</italic>. Assuming <italic>s<sub>n</sub></italic> is in the interval (<italic>t</italic><sub><italic>i</italic>&#x02212;1</sub>,<italic>t<sub>i</sub></italic>] where <italic>t<sub>i</sub></italic>&#x02009;&#x0003D;&#x02009;<italic>i</italic>&#x00394;<italic>t</italic>, the neuromodulatory spike event is communicated between machines at time <italic>t<sub>i</sub></italic> along with all the other spike events generated in that interval (see Morrison and Diesmann, <xref ref-type="bibr" rid="B32">2006</xref> for an in depth discussion of the interval borders). Neuromodulatory spike events generated in that interval are delivered to the volume transmitter and sorted into the ring buffer according to their propagation delays. Assigning the &#x0201C;front&#x0201D; of the ring buffer the index 0, for a spike emitted at <italic>s<sub>n</sub></italic> with a delay <italic>d<sub>n</sub></italic>, the counter at position (<italic>s<sub>n</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>d<sub>n</sub></italic>&#x02009;&#x02212;&#x02009;<italic>t<sub>i</sub></italic>)/<italic>h</italic>&#x02009;&#x02212;&#x02009;1 is incremented. This is depicted in the left side of Figure <xref ref-type="fig" rid="F6">6</xref>B. Setting the ring buffer size to <italic>d</italic><sub>max</sub>/<italic>h</italic>, where <italic>d</italic><sub>max</sub> is the maximal propagation delay, allows the correct order of spikes to be maintained for all possible configurations of spike generation time, communication time, and propagation delay. The communication interval &#x00394;<italic>t</italic> can be set to any integer multiple of <italic>h</italic> up to <italic>d</italic><sub>min</sub>, the minimum synaptic propagation delay. A communication interval of &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;<italic>h</italic>, where events are communicated in every time step, is the most obvious, naive approach and is probably implemented in at least the first version of almost all simulators. As mentioned in section <xref ref-type="sec" rid="s3">2.1.2</xref>, a choice of &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;<italic>d</italic><sub>min</sub> is the largest possible communication interval that still maintains the correct ordering of events. Maximizing &#x00394;<italic>t</italic> has two advantages: it reduces the communication overhead (see Morrison et al., <xref ref-type="bibr" rid="B35">2005</xref>), and each neuron can perform <italic>d</italic><sub>min</sub>/<italic>h</italic> integration time steps as an uninterrupted sequence, improving the cache efficacy considerably (Plesser et al., <xref ref-type="bibr" rid="B40">2007</xref>).</p>
<p>As a result of the sorting, right before the event delivery phase at time <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>, the counters for positions in the range [0,&#x00394;<italic>t</italic>/<italic>h</italic>&#x02009;&#x02212;&#x02009;1] give the total number of neuromodulatory spikes that are due to arrive at the synapses in each time step from <italic>t<sub>i</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>h</italic> to <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>. Counters at positions greater than &#x00394;<italic>t</italic>/<italic>h</italic> do not necessarily contain the total number of spikes for their respective time steps, as these positions could still receive events at later event delivery phases. At this point, the volume transmitter copies the contents of the ring buffer in the range [0,&#x00394;<italic>t</italic>/<italic>h</italic>&#x02009;&#x02212;&#x02009;1] to a separate spike history buffer of length &#x00394;<italic>t</italic>/<italic>h</italic>, see Figure <xref ref-type="fig" rid="F6">6</xref>C. It then resets those counters to zero and rotates the &#x02019;front&#x02019; of the ring buffer by &#x00394;<italic>t</italic>/<italic>h</italic> segments as shown in the right side of Figure <xref ref-type="fig" rid="F6">6</xref>B. Thus the spike history buffer contains all the neuromodulatory spikes that are due to arrive in the projected volume in the interval (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>], and the ring buffer is prepared to receive the events communicated at time <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>.</p>
<p>We now turn to the delivery of the neuromodulatory spikes to the synapses. Let us assume that a synapse associated with a given volume transmitter has received and processed all the neuromodulatory spikes with arrival times up to and including <italic>t<sub>i</sub></italic>. Therefore the last update time of the synapse <italic>s</italic><sub>last</sub> is equal to the last neuromodulatory spike time &#x02264;<italic>t<sub>i</sub></italic>. At time <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub> the machines exchange all events generated in the interval (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>]. If the synapse&#x00027;s pre-synaptic neuron emits a spike at time <italic>s</italic><sub>pre</sub> within this interval, all neuromodulatory spikes with <italic>t<sub>i</sub></italic>&#x02009;&#x0003C;&#x02009;(<italic>s<sub>n</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>d<sub>n</sub></italic>) &#x0003C;&#x02009;<italic>s</italic><sub>pre</sub> still need to be taken into account to calculate the weight dynamics of the synapse up to <italic>s</italic><sub>pre</sub>. Conversely, neuromodulatory spikes that have already been generated and communicated between machines, but are due to arrive at the projection volume after <italic>s</italic><sub>pre</sub>, i.e., (<italic>s<sub>n</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>d<sub>n</sub></italic>) &#x02265;&#x02009;<italic>s</italic><sub>pre</sub>, should not be taken into account. When the synapse is activated during the event delivery phase at <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>, it therefore requests the spike history buffer from the volume transmitter, which contains those neuromodulatory spikes for which (<italic>s<sub>n</sub></italic>&#x02009;&#x0002B;&#x02009;<italic>d<sub>n</sub></italic>) is in the range (<italic>t<sub>i</sub></italic>,<italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>], as described above. Depending on its dynamics, it may also need additional information from the post-synaptic neuron; this is illustrated for the case of dopamine-modulated STDP (Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>) in Figure <xref ref-type="fig" rid="F5">5</xref>A, where the post-synaptic spikes between <italic>s</italic><sub>last</sub> and <italic>s</italic><sub>pre</sub> must also be requested. At the end of its weight update, the synapse emits an event of the appropriate weight and delay to its post-synaptic target, and sets its variable <italic>s</italic><sub>last</sub> to the value of <italic>s</italic><sub>pre</sub>.</p>
<p>Directly after the event delivery phase at <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>, the volume transmitter sends its spike history buffer to every associated synapse (see Figure <xref ref-type="fig" rid="F5">5</xref>B: <monospace>send_history()</monospace>). This triggers a weight update for every synapse in which the synapse&#x00027;s last update time <italic>s</italic><sub>last</sub> is earlier than the latest spike in the spike history buffer, <italic>s</italic><sub>VT</sub>. In the dopamine-modulated STDP synapse shown in Figure <xref ref-type="fig" rid="F5">5</xref>B, calculating the weight update involves requesting all post-synaptic spikes between <italic>s</italic><sub>last</sub> and <italic>s</italic><sub>VT</sub>. After calculating the weight update, the synapse sets its variable <italic>s</italic><sub>last</sub> to the value of <italic>s</italic><sub>VT</sub>. Thus at the event delivery phase at time <italic>t</italic><sub><italic>i</italic>&#x0002B;2</sub>, each synapse associated with the volume transmitter has received and processed all neuromodulatory spikes with arrival times up to and including <italic>t</italic><sub><italic>i</italic>&#x0002B;1</sub>.</p>
<p>In the above we have described how the synapse can be informed of the spikes necessary for calculating its weight updates without requiring dynamic memory structures or an algorithm to discard spikes that are no longer necessary. The key insight is that event-driven requests for the volume transmitter&#x00027;s spike history triggered by the arrival of pre-synaptic spikes can be complemented by delivering the spike history at regular intervals in a time-driven fashion. This combined approach does not entail any additional computational costs for the synapse. It must process every neuromodulatory spike, so it makes no difference when the processing takes place, as long as all the information required to calculate a weight update is available when an event is generated. On a global level there are additional costs, as accessing every synapse every &#x00394;<italic>t</italic> interval involves more operations than accessing synapses only on the arrival of pre-synaptic spikes. However, these additional costs can be reduced by transferring the neuromodulatory spikes not in intervals of &#x00394;<italic>t</italic>, but in intervals of <italic>n</italic>&#x000B7;&#x00394;<italic>t</italic>, where <italic>n</italic> is an integer. We leave <italic>n</italic> as a parameter that can be chosen by the user; the consequences of the choice of transfer interval are discussed in section <xref ref-type="sec" rid="s8">3.2.3.</xref> The only alterations that need to be made to the above description to accommodate this improvement is that the spike history buffer must be correspondingly longer (i.e., <italic>n</italic>&#x000B7;&#x00394;<italic>t</italic>/<italic>h</italic>), and spikes must be copied from the ring buffer to the correct section of it.</p>
</sec>
<sec>
<label>3.1.3</label> <title>Establishing a neuromodulated connection</title>
<p>The interaction between the volume transmitter and the synapses requires a bidirectional link. This link from synapse to volume transmitter can be realized by passing the volume transmitter as a parameter when a neuromodulated synapse is defined. The synapse stores a pointer to the volume transmitter and passes its own pointer to the volume transmitter, which maintains a list of associated synapse pointers. For the simulation tool NEST (Gewaltig and Diesmann, <xref ref-type="bibr" rid="B17">2007</xref>) this can be expressed as follows:</p>
<p><monospace>1 neuron1&#x0003D;nest.Create(&#x0201C;iaf_neuron&#x0201D;)</monospace></p>
<p><monospace>2 neuron2&#x0003D;nest.Create(&#x0201C;iaf_neuron&#x0201D;)</monospace></p>
<p><monospace>3 vt&#x0003D;nest.Create(&#x0201C;volume_transmitter&#x0201D;)</monospace></p>
<p><monospace>4 nest.SetDefaults(&#x0201C;neuromodulated_ synapse&#x0201D;,{&#x0201C;vt&#x0201D;: vt[0]})</monospace></p>
<p><monospace>5 nest.Connect(neuron1, neuron2, model&#x0003D;&#x0201C;neuromodulated_synapse&#x0201D;)</monospace></p>
<p>Here we are using NEST&#x00027;s interface to the Python<xref ref-type="fn" rid="fn2"><sup>2</sup></xref> programming language PyNEST (Eppler et al., <xref ref-type="bibr" rid="B13">2009</xref>). The population of neurons releasing the neuromodulator are connected to the volume transmitter with standard synaptic connections specifying the propagation delays. For example, in NEST:</p>
<p><monospace>6 nest.ConvergentConnect(neuromodulator_neurons, vt, delay&#x0003D;d, model&#x0003D;"static_synapse&#x0201D;)</monospace></p>
<p>These operations can be performed in either order.</p>
</sec>
</sec>
<sec id="s7">
<label>3.2</label> <title>Performance</title>
<p>To investigate the efficiency and scalability of our framework, we simulated networks of 10<sup>4</sup> and 10<sup>5</sup> neurons incorporating STDP with and without neuromodulation at their excitatory&#x02013;excitatory synapses as a function of the number of processors used (see section <xref ref-type="sec" rid="s4">2.2</xref>). The results are illustrated in Figure <xref ref-type="fig" rid="F7">7</xref>. Figure <xref ref-type="fig" rid="F7">7</xref>A shows the simulation times for one biological second of the 10<sup>4</sup> neuron network and Figure <xref ref-type="fig" rid="F7">7</xref>B shows the corresponding speed-up curves, i.e., how much faster a simulation runs with <italic>m</italic> machines than with 1 machine (Wilkinson and Allen, <xref ref-type="bibr" rid="B51">2004</xref>). When neuromodulatory spikes are transferred in intervals of &#x00394;<italic>t</italic>&#x02009;&#x0003D;&#x02009;<italic>d</italic><sub>min</sub>, a supralinear scaling can be observed up to 32 machines, beyond which the scaling is approximately linear. Simulation times are on average 17 times slower than those for the corresponding network incorporating unmodulated STDP. If neuromodulatory spikes are transmitted less often, in intervals of 70&#x000B7;<italic>d</italic><sub>min</sub>, the reduced number of operations results in a supralinear scaling up to 184 machines. As the number of machines grows, the disparity in simulation times between the neuromodulated and unmodulated networks decreases. The supralinear scaling in all simulations of the 10<sup>4</sup> neuron network is due to cache effects.</p>
<fig id="F7" position="float">
<label>Figure 7</label>
<caption><p><bold>Performance of simulations of networks incorporating STDP with and without neuromodulation</bold>. <bold>(A)</bold> Time to simulate 1 biological second of the 10<sup>4</sup> neuron network as a function of the number of machines in double logarithmic representation. Neuromodulated STDP with transference of neuromodulatory spikes from the volume transmitter in intervals of <italic>d</italic><sub>min</sub> (red), 70&#x000B7;<italic>d</italic><sub>min</sub> (green), unmodulated STDP (blue). <bold>(B)</bold> Speed-up factor for the simulation times shown in <bold>(A)</bold>. <bold>(C)</bold> Time to simulate 1 biological second of the 10<sup>5</sup> neuron network as a function of the number of machines in double logarithmic representation. Neuromodulated STDP with transference of neuromodulatory spikes from the volume transmitter in intervals of 100&#x000B7;<italic>d</italic><sub>min</sub> (green), unmodulated STDP (blue). <bold>(D)</bold> Speed-up factor for the simulation times shown in <bold>(C)</bold>. Gray lines indicate linear predictions.</p></caption>
<graphic xlink:href="fncom-04-00141-g007.tif"/>
</fig>
<p>Figures <xref ref-type="fig" rid="F7">7</xref>C and D show the simulation times for one biological second of the 10<sup>5</sup> neuron network and the corresponding speed-up curves. The neuromodulated network (transfer interval: 100&#x000B7;<italic>d</italic><sub>min</sub>) and the unmodulated control network both scale approximately linearly up to 1024 machines. On average the neuromodulated network is 3.2 times slower than the unmodulated network.</p>
<p>These results demonstrate that the framework scales well, up to at least 184 or 1024 machines, depending on the network size. However, they also raise a number of questions. Firstly, in Figures <xref ref-type="fig" rid="F7">7</xref>A and B we observe that the unmodulated network shows a supralinear scaling up to 64 processors, but then the simulation time saturates at 0.65&#x02009;s. This suggests that an increase in communication overhead is masking the decrease in computation time. How do the scaling properties of the neuromodulated and unmodulated networks compare if the communication overhead is factored out? Secondly, the neuromodulated network simulations take longer than the unmodulated network simulations. Is this due to the overhead of the volume transmitter infrastructure or due to the increased complexity of the neuromodulated STDP update rule? Finally, faster simulation times are observed when the transfer interval of the volume transmitter is increased. What is the relationship between the performance and the choice of transfer interval? We address these questions in the following three sections.</p>
<sec>
<label>3.2.1</label> <title>Saturation due to communication overhead</title>
<p>Let us assume that the simulation time <italic>T</italic><sub>sim</sub>(<italic>m</italic>) for <italic>m</italic> machines is composed of two components: the computing time <italic>T</italic><sub>c</sub>(<italic>m</italic>) required to perform the parallel simulation operations such as calculating the neuronal and synaptic dynamics, and the communication time <italic>T</italic><sub>ex</sub>(<italic>m</italic>) required to exchange events between machines:</p>
<p><italic>T</italic><sub>sim</sub>(<italic>m</italic>)&#x02009;&#x0003D; <italic>T</italic><sub>c</sub>(<italic>m</italic>)&#x02009;&#x0002B; <italic>T</italic><sub>ex</sub>(<italic>m</italic>)</p>
<p>The communication time <italic>T</italic><sub>ex</sub>(<italic>m</italic>) is a characteristic of the computing architecture used for simulation and typically depends on the number of communicated bytes. As described in section <xref ref-type="sec" rid="s3">2.1.2</xref> communication buffers containing spike entries are communicated between machines in time steps of <italic>d</italic><sub>min</sub>. The number of spikes that each machine sends can be approximated as <inline-formula><mml:math id="M6"><mml:mrow><mml:mo stretchy='false'>(</mml:mo><mml:mi>N</mml:mi><mml:mo>/</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x003BB;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, where <italic>N</italic> is the total number of neurons, <italic>m</italic> the number of machines and &#x003BB; the average firing rate. If the spikes of successive time steps of length <italic>h</italic> are separated in the communication buffers by markers, the total number of bytes in each communication buffer is:</p>
<disp-formula id="E5"><mml:math id="M7"><mml:mrow><mml:mi>b</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mi>N</mml:mi><mml:mi>m</mml:mi></mml:mfrac><mml:mo>&#x003BB;</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mtext>spike</mml:mtext></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mi>h</mml:mi></mml:mfrac><mml:msub><mml:mi>b</mml:mi><mml:mrow><mml:mtext>marker</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>
<p>where <italic>b</italic><sub>spike</sub> is the number of bytes to represent the global identifier of a neuron and <italic>b</italic><sub>marker</sub> is the number of bytes taken up by a marker. In our implementation in NEST, <italic>b</italic><sub>spike</sub>&#x02009;&#x0003D; <italic>b</italic><sub>marker</sub>&#x02009;&#x0003D;&#x02009;8. For a given network simulation we can calculate <italic>b</italic>(<italic>m</italic>) and thus the communication time as:</p>
<disp-formula id="E6"><mml:math id="M8"><mml:mrow><mml:msub><mml:mi>T</mml:mi><mml:mrow><mml:mtext>ex</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mfrac><mml:mi>T</mml:mi><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mtext>min</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Ex</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow></mml:math></disp-formula>
<p>where <inline-formula><mml:math id="M9"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Ex</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> is the time taken to perform one exchange between <italic>m</italic> machines of <italic>b</italic> bytes per machine and <italic>T</italic> is the biological time simulated. The single exchange time <inline-formula><mml:math id="M10"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Ex</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> can be determined empirically by measuring the time taken for <italic>n</italic> calls of the exchange routine for a packet of size <italic>b</italic> and dividing the total time by <italic>n</italic>. We measured the single exchange time <inline-formula><mml:math id="M11"><mml:mrow><mml:msubsup><mml:mi>T</mml:mi><mml:mrow><mml:mtext>Ex</mml:mtext></mml:mrow><mml:mn>1</mml:mn></mml:msubsup><mml:mo stretchy='false'>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> on our X86 computing cluster by averaging over 1000 function calls exchanging packets of sizes determined by the 10<sup>4</sup> neuron network simulation (see section <xref ref-type="sec" rid="s4">2.2</xref>). Figure <xref ref-type="fig" rid="F8">8</xref>A shows the total communication time <italic>T</italic><sub>ex</sub> as a function of the number of machines for the 10<sup>4</sup> neuron network simulation. The communication time increases with the number of machines in proportion to <italic>m</italic> ln(<italic>m</italic>), which is to be expected for the algorithm underlying the <monospace>MPI_Allgather()</monospace> routine from the MPI library<xref ref-type="fn" rid="fn3"><sup>3</sup></xref> used in our implementation. Figure <xref ref-type="fig" rid="F8">8</xref>B shows the communication time as a percentage of the total simulation time <italic>T</italic><sub>sim</sub>. The proportion of the simulation time taken up by data exchange increases rapidly with the number of machines. This representation underlines the fact that the communication overhead plays a proportionally bigger role for computationally less expensive applications: the proportion of the total time consumed by data exchange increases more quickly for the unmodulated network simulation than for the neuromodulated cases, rising to more than 40% for the unmodulated network at 184 machines and to 25 and 5% for the neuromodulated networks with transfer intervals of 70&#x000B7;<italic>d</italic><sub>min</sub> and <italic>d</italic><sub>min</sub> respectively.</p>
<fig id="F8" position="float">
<label>Figure 8</label>
<caption><p><bold>Communication overhead in a distributed simulation of the 10<sup>4</sup> neuron network</bold>. <bold>(A)</bold> Time required for all necessary data exchanges for a simulation of one biological second as a function of the number of machines. The gray curve is a fit of <italic>m</italic>&#x000B7;ln(<italic>m</italic>) to the data. <bold>(B)</bold> Communication time as a percentage of the total simulation time as a function of the number of machines. Neuromodulated STDP with transference of neuromodulatory spikes from the volume transmitter in intervals of <italic>d</italic><sub>min</sub> (red), 70&#x000B7;<italic>d</italic><sub>min</sub> (green), unmodulated STDP (blue).</p></caption>
<graphic xlink:href="fncom-04-00141-g008.tif"/>
</fig>
<p>To obtain the pure computation time <italic>T</italic><sub>c</sub>(<italic>m</italic>), we substract the communication time <italic>T</italic><sub>ex</sub>(<italic>m</italic>) from the total run time <italic>T</italic><sub>sim</sub>(<italic>m</italic>). The result is shown in Figure <xref ref-type="fig" rid="F9">9</xref>A and the corresponding speed-up curves in Figure <xref ref-type="fig" rid="F9">9</xref>B.</p>
<fig id="F9" position="float">
<label>Figure 9</label>
<caption><p><bold>Computation time for a distributed simulation of one biological second of the 10<sup>4</sup> neuron network</bold>. <bold>(A)</bold> Computation time as a function of number of machines in double logarithmic representation. Neuromodulated STDP with transference of neuromodulatory spikes from the volume transmitter in intervals of <italic>d</italic><sub>min</sub> (red), 70&#x000B7;<italic>d</italic><sub>min</sub> (green), unmodulated STDP (blue). <bold>(B)</bold> Speed-up factor for the simulation times shown in <bold>(A)</bold>. Gray lines indicate linear predictions.</p></caption>
<graphic xlink:href="fncom-04-00141-g009.tif"/>
</fig>
<p>The effect on the scaling of the neuromodulated network simulations is small. However, the saturation of simulation time for the unmodulated network observed in Figures <xref ref-type="fig" rid="F7">7</xref>A and B is no longer visible, demonstrating that the saturation was due to communication overhead rather than suboptimal simulation algorithms. All network simulations exhibit linear scaling or better up to 184 machines.</p>
</sec>
<sec>
<label>3.2.2</label> <title>Dependence of performance on the neuromodulatory firing rate</title>
<p>Figures <xref ref-type="fig" rid="F7">7</xref> and <xref ref-type="fig" rid="F9">9</xref> show that the simulation times for the neuromodulated network simulations are much longer than for the unmodulated network simulations. This could be due to the computational cost of the volume transmitter overhead, or to the increased complexity of the neuromodulated STDP update rule, which depends not only on the pre- and post-synaptic rate but also on the rate of the population of neuromodulator releasing neurons (see section <xref ref-type="sec" rid="s4">2.2</xref>). For the curves shown in Figures <xref ref-type="fig" rid="F7">7</xref> and <xref ref-type="fig" rid="F9">9</xref>, the size of the neuromodulator releasing population <italic>N</italic><sub>nm</sub> was set to 50, resulting in a neuromodulatory firing rate of &#x02248;500&#x02009;Hz.</p>
<p>Figure <xref ref-type="fig" rid="F10">10</xref> shows the dependence of the simulation time for the 10<sup>4</sup> neuron network on 184 processors as a function of the firing rate of the neuromodulatory population. The different firing rates are realized by varying the number of neuromodulator releasing neuron <italic>N</italic><sub>nm</sub> from 0 to 60 in steps of 5. Note that the network activity is not affected by the choice of <italic>N</italic><sub>nm</sub> on the time scale of one second, so the pre- and post-synaptic firing rates are constant for all values of <italic>N</italic><sub>nm</sub>. A linear increase of simulation time with neuromodulatory firing rate can be observed, with a greater slope for a transfer interval of <italic>d</italic><sub>min</sub> than for 70&#x000B7;<italic>d</italic><sub>min</sub>. For a neuromodulatory spike rate of 0&#x02009;Hz, the simulation times for the neuromodulated networks are only slightly larger than for the unmodulated network. These results demonstrate that the large disparity in simulation times observed between the neuromodulated and unmodulated simulations is not due to overheads related to the volume transmitter infrastructure but to the increased computational complexity of the neuromodulated STDP update rule. As a further test, we carried out an experiment for a neuromodulatory firing rate of 500&#x02009;Hz in which the volume transmitter infrastructure transfers the neuromodulatory spikes to the synapse, but the synapse performs the unmodulated STDP update rule, i.e., the synapse ignores the transferred spikes. In this case the simulation times are reduced to those of the unmodulated STDP control case (data not shown).</p>
<fig id="F10" position="float">
<label>Figure 10</label>
<caption><p><bold>Simulation time for one biological second of the 10<sup>4</sup> neuron network for 184 machines as a function of the neuromodulatory firing rate</bold>. Neuromodulated STDP with transference of neuromodulatory spikes from the volume transmitter in intervals of <italic>d</italic><sub>min</sub> (red squares), 70&#x000B7;<italic>d</italic><sub>min</sub> (green squares). The blue line indicates the simulation time for the unmodulated network; the gray lines are linear fits to the data.</p></caption>
<graphic xlink:href="fncom-04-00141-g010.tif"/>
</fig>
<p>These results confirm the decision to store the neuromodulatory spikes in a fixed-size buffer and ensure all spikes are taken into consideration by regular updates of the associated synapses. The alternative approach, to store spikes in a dynamically sized buffer and update synapses only on demand, requires the use of an algorithm to discard spikes that have already been processed. The complexity of such an algorithm is linear in the number of spikes in the buffer, therefore such a scheme would entail proportionally higher costs with increased neuromodulatory spike rate, whereas the cost for our framework is approximately constant.</p>
</sec>
<sec id="s8">
<label>3.2.3</label> <title>Dependence of performance on the transfer interval</title>
<p>Figures <xref ref-type="fig" rid="F7">7</xref> and <xref ref-type="fig" rid="F10">10</xref> show that faster simulation times are achieved with a transfer time of 70&#x000B7;<italic>d</italic><sub>min</sub> than with a transfer time of <italic>d</italic><sub>min</sub> for all numbers of machines and all neuromodulatory rates. This is unsurprising, as the longer transfer time entails proportionally fewer transfer operations: the number of transfer operations is given by <italic>T</italic>/(<italic>n</italic>&#x000B7;<italic>d</italic><sub>min</sub>), where <italic>T</italic> is the biological time simulated. However, a longer transfer time also requires a larger data structure to hold all the buffered spikes. As increasing the memory used by an application will generally decrease its speed, optimizing performance may require a trade-off to be found between reducing the number of operations and limiting the memory requirements.</p>
<p>To obtain the dependence of the simulation time on the transfer time, we carried out simulations of the 10<sup>4</sup> neuron network whilst varying the parameter <italic>n</italic>, where <italic>n</italic>&#x000B7;<italic>d</italic><sub>min</sub> is the transfer interval for communicating spikes in a time-driven fashion from the volume transmitter to the synapses (see section <xref ref-type="sec" rid="s6">3.1.2</xref>). The results are shown in Figure <xref ref-type="fig" rid="F11">11</xref>A. By plotting the simulation time as a function of 1/<italic>n</italic> in Figure <xref ref-type="fig" rid="F11">11</xref>B, we can see that the simulation time is indeed proportional to 1/<italic>n</italic> for <italic>n</italic>&#x0003E;2. For smaller values of <italic>n</italic> the neuromodulator spike buffers are sometimes empty, in which case the transfer operation is omitted, leading to a faster simulation time than the linear prediction. These results demonstrate that increasing the memory requirements of the volume transmitter does not result in a decrease in performance, so in practice a large value of <italic>n</italic> should be selected.</p>
<fig id="F11" position="float">
<label>Figure 11</label>
<caption><p><bold>Simulation time for one biological second of the 10<sup>4</sup> neuron network for 184 machines with respect to <bold><italic>n</italic></bold>, where <bold><italic>n&#x000B7;d</italic></bold><sub>min</sub> is the transfer interval of the volume transmitter</bold>. <bold>(A)</bold> Simulation time as a function of <italic>n</italic>. <bold>(B)</bold> Simulation time as a function of 1/<italic>n</italic>. The gray line shows the linear fit for <italic>n</italic>&#x0003E;2.</p></caption>
<graphic xlink:href="fncom-04-00141-g011.tif"/>
</fig>
</sec>
</sec>
</sec>
<sec sec-type="discussion">
<title>Discussion</title>
<p>Neuromodulated plasticity has recently become a hot topic in computational as well as experimental neuroscience. There is evidence for neuromodulator involvement in many cognitive functions, such as attention or reward learning (Reynolds et al., <xref ref-type="bibr" rid="B44">2001</xref>; Hasselmo and McGaughy, <xref ref-type="bibr" rid="B21">2004</xref>). On the cellular level it has been shown that long-range neuromodulatory systems strongly influence the induction of spike-timing dependent plasticity (see Pawlak et al., <xref ref-type="bibr" rid="B38">2010</xref> in this special issue). Neuromodulated plasticity is a strong candidate for a mechanism that links synaptic plasticity to system level learning (Seung, <xref ref-type="bibr" rid="B46">2003</xref>; Xie and Seung, <xref ref-type="bibr" rid="B52">2004</xref>; Baras and Meir, <xref ref-type="bibr" rid="B5">2007</xref>; Florian, <xref ref-type="bibr" rid="B14">2007</xref>; Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref>; Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>; Potjans et al., <xref ref-type="bibr" rid="B42">2009b</xref>, 2010; Vasilaki et al., <xref ref-type="bibr" rid="B50">2009</xref>; Pawlak et al., <xref ref-type="bibr" rid="B38">2010</xref>, this special issue). However, so far in most spiking neural networks models implementing neuromodulated synaptic plasticity, the signal is injected externally into the network rather than being generated by the network itself (but see Izhikevich, <xref ref-type="bibr" rid="B24">2007</xref> and Legenstein et al., <xref ref-type="bibr" rid="B26">2008</xref>). Furthermore, technical details about the implementation of neuromodulated plasticity in spiking neural networks have not been provided. Due to this lack models cannot be easily reproduced or extended by the wider modeling community.</p>
<p>Here, we present for the first time a general framework for the efficient implementation of neuromodulated plasticity in time-driven distributed simulations where the neuromodulatory signal is generated within the network. The presented framework paves the way for the investigation of a wide range of neural circuits which generate and exploit a neuromodulatory signal to carry out cognitive functions, such as dopamine-driven learning and noradrenaline-mediated stress response. The framework is general in the sense that it does not rely on a particular implementation language, neuromodulator, or neuromodulated plasticity and makes few and easily fulfilled assumptions about the data structures and algorithms of the underlying simulation tool. The main difficulty in the implementation of neuromodulated plasticity in distributed simulations is how to inform the neuromodulated synapses efficiently about the non-local neuromodulatory signal, which is typically generated by a population of neurons on different machines than either the pre- or the post-synaptic neuron. We solved this problem by introducing a new object called &#x0201C;volume transmitter,&#x0201D; which represents the neuromodulatory signal available in a certain volume by globally collecting all the spikes from neurons in a specified neuromodulator releasing population and transferring the spikes to a user-specified subset of local synapses. We propose a hybrid algorithm for the transfer of spikes from the volume transmitter to the neuromodulated synapses. In addition to the delivery triggered by every pre-synaptic spike, the neuromodulatory spike history is delivered in discrete time intervals of <italic>n</italic>&#x000B7;&#x00394;<italic>t</italic>, where <italic>n</italic> is an integer and &#x00394;<italic>t</italic> the communication interval of the network. This has three advantages over a purely event-based transfer: first, the neuromodulatory spikes can be stored in a static data structure; second, no additional algorithm is required to determine which spikes can be cleared from the history; and third, the memory requirements are known and fixed regardless of the network activity. The technology is fully implemented and available in NEST including an example and can be controlled through the application interface to the Python programming language (Eppler et al., <xref ref-type="bibr" rid="B13">2009</xref>).</p>
<p>Our results show that simulation time is proportional to 1/<italic>n</italic> for <italic>n</italic>&#x0003E;2; this is due to the decrease in the number of operations performed. As no deterioration in performance can be observed for large <italic>n</italic> as a result of the larger memory structure, in practice a large <italic>n</italic> should be selected. For a suitably large choice of <italic>n</italic>, our framework exhibits supralinear scaling up to 184 machines on simulations of a balanced random network of 10<sup>4</sup> neurons incorporating neuromodulated STDP in its excitatory to excitatory connections. Further, linear scaling can be observed up to 1024 machines on simulations of a network containing 10<sup>5</sup> neurons with a biologically realistic number of inputs to each neuron (10<sup>4</sup>) and connectivity (10%), corresponding to 1&#x02009;mm<sup>3</sup> of mammalian cortex. The scaling properties of the neuromodulated network simulations are comparable to, or better than, that of an unmodulated network simulation. Additionally, our framework does not incur any additional costs with increased firing rate of the neuromodulatory neuron population other than those necessarily imposed by the complexity of the neuromodulated synaptic update rules. Although our motivation was to provide a framework capable of meeting the demands of very large distributed neuronal network simulations, it can be used without adaptation for the serial simulation of smaller-scale networks in which the neuromodulatory signal is generated within the network.</p>
<p>In the context of analyzing the benchmark simulations we developed a technique to determine what proportion of the run time of a simulation is taken up by communication between machines. This generally applicable technique enables a developer of distributed software to distinguish a saturation due to communication overheads from one due to a suboptimally implemented algorithm.</p>
<p>Although our hybrid communication strategy was developed in the context of the particular challenges of neuromodulated plasticity, it could well enable a more efficient formulation of algorithms to model unmodulated plasticity such as STDP. Combining event-driven weight updates triggered by pre-synaptic spikes with time-driven updates at regular intervals would permit also the post-synaptic spike history to be stored in a static data structure and remove the need for an algorithm to discard spikes that are no longer relevant. However, as one spike history structure is required for each post-synaptic neuron (rather than one for an entire neuromodulatory population), the memory requirements of the simulation will depend more strongly on the choice of transfer interval. In future work, we will investigate the trade-off between reducing the number of transfer operations and increasing the memory requirements.</p>
<p>We have formulated the neuromodulator dynamics as a dynamics on a graph where the interaction is mediated by point events. This integrates well into the representation of spiking neuronal networks used for large-scale simulation. In addition we have decided to place the dynamics of the neuromodulatory signal at the site of the individual synapse. An alternative approach would be to low-pass filter the neuromodulatory spikes on each machine and then exchange and add the filtered signals between machines. As the global signal is mostly likely to be slow, this exchange could perhaps be performed less often than the communication of spikes in intervals of &#x00394;<italic>t</italic>. However, this alternative approach has several disadvantages with respect to our proposal. First, whereas the alternative proposal would require additional communication to exchange the filtered signals among machines, our framework causes no additional communication costs, as spikes have to be exchanged anyway in the distributed framework. Therefore, an approximate solution is unlikely to be more efficient. Second, our approach has the advantage that neuromodulated synaptic dynamics where changes of the synaptic state depend on the instantaneous value of the neuromodulator level can be implemented exactly. Therefore, even in the case that an approximate solution is more efficient for a particular application, it would be useful to have the exact implementation at hand for a verification of the results. Third, in our proposal the same framework can be used for a variety of different neuromodulators with different neuromodulatory dynamics, assuming the neuromodulator level can be calculated solely on the basis of the spike train of the releasing population. However, this generality comes at a price. The time course of a neuromodulator, which is probably essentially identical within a certain volume of cortex, is recomputed in every synapse, resulting in redundant operations. Moreover, we assumed that each spike of the neuromodulator releasing population contributes the same amount to the neuromodulator concentration. If necessary, these disadvantages can be remedied in the context of a specific scientific question by developing more specialized versions of the volume transmitter that calculate the dynamics of the neuromodulator under investigation and then deliver the results of this calculation to the synapses.</p>
<p>Our solution is based on the assumption that it is sufficiently accurate to represent the times of the neuromodulatory spikes on the grid defined by the computation step size. The framework can be modified to process &#x0201C;off-grid&#x0201D; spike times, but at the cost of maintaining dynamic data structures in the volume transmitter which would result in a deterioration of performance. A further limitation of our framework is that it has no capacity to represent spatial variations in neuromodulator concentration within the population of synapses such as diffusion processes. Recently, a simulation tool has been presented which considers diffusion processes by explicitly modeling the extracellular space (Zubler and Douglas, <xref ref-type="bibr" rid="B55">2009</xref>).</p>
<p>As our solution enables networks to be simulated that generate their own modulatory signals, it paves the way for the investigation of closed-loop functional models. We already successfully applied our framework to a model that implements temporal-difference learning based on dopamine modulated plasticity to solve a navigation problem (Potjans et al., <xref ref-type="bibr" rid="B43">2009c</xref>). Even though the network investigated here was comparatively small (order of 10<sup>3</sup> neurons), systematic investigation of it required distributed computing; although the plasticity process occurs on a time scale of tens of milliseconds, the learning process on the network level takes place on a time scale of minutes to hours. The user has full flexibility to assign the volume transmitter to specific groups of neuromodulator releasing neurons and neuromodulated synapses, thus allowing the simulation of multiple volumes with different neuromodulator concentrations or multiple neuromodulators with different dynamics in the same network. Our results suggest that the framework will scale up to much larger networks than those investigated here. This will enable the investigation of &#x0201C;brain-scale&#x0201D; networks modeling circuits made up of several brain areas. One possible application is to investigate the role of neuromodulators such as acetylcholine in the cortex simultaneously with its generation process, which takes place in subcortical areas. It is our hope that our novel technology will make it easy for computational neuroscientists to study sophisticated models with interesting system-level behavior based on neuromodulated plasticity.</p>
</sec>
<sec>
<title>Conflict of Interest Statement</title>
<p>The authors declare that the research was conducted in the absence of any commercial or financial relationships that could be construed as a potential conflict of interest.</p>
</sec>
</body>
<back>
<ack>
<p>We are most grateful to Hans Ekkehard Plesser for language legality consultation. We also thank the editor and the reviewers for the constructive interaction which helped us to considerably improve the integration of our work into the special issue. Partially funded by DIP F1.2, BMBF Grant 01GQ0420 to the Bernstein Center for Computational Neuroscience Freiburg, EU Grant 15879 (FACETS), the Junior Professor Program of Baden-W&#x000FC;rttemberg, &#x0201C;The Next-Generation Integrated Simulation of Living Matter&#x0201D; project, part of the Development and Use of the Next-Generation Supercomputer Project of the Ministry of Education, Culture, Sports, Science and Technology (MEXT) of Japan and the Helmholtz Alliance on Systems Biology. Access to supercomputing facility through JUGENE-Grant JINB33.</p>
</ack>
<app-group>
<app id="A1">
<title>Appendix</title>
<sec>
<title>Benchmark model description and specification</title>
<table-wrap position="float" id="T1">
<label>Table 1</label>
<caption><p><bold>Tabular description of benchmark network model after Nordlie et al. (<xref ref-type="bibr" rid="B37">2009</xref>)</bold>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left" colspan="4">A: MODEL SUMMARY</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Populations</td>
<td align="left" colspan="3">Three: excitatory (E), inhibitory (I), neuromodulator releasing neurons (M) (&#x02282; excitatory population)</td>
</tr>
<tr>
<td align="left">Connectivity</td>
<td align="left" colspan="3">Random convergent connections</td>
</tr>
<tr>
<td align="left">Neuron model</td>
<td align="left" colspan="3">Leaky integrate-and-fire, fixed voltage threshold, fixed absolute refractory time (voltage clamp), exponential synaptic current inputs</td>
</tr>
<tr>
<td align="left">Plasticity</td>
<td align="left" colspan="3">Additive STDP/neuromodulated additive STDP in all excitatory to excitatory connections</td>
</tr>
<tr>
<td align="left">Input</td>
<td align="left" colspan="3">Independent fixed-rate Poisson spike trains to all neurons</td>
</tr>
<tr>
<td align="left">Measurements</td>
<td align="left" colspan="3">Simulation time</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">B: POPULATIONS</th>
</tr>
<tr>
<th align="left">Name</th>
<th align="left" colspan="2">Elements</th>
<th align="left">Size</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">E</td>
<td align="left" colspan="2">Iaf neuron</td>
<td><italic>N</italic><sub>E</sub>&#x02009;&#x0003D;&#x02009;4<italic>N</italic><sub>I</sub></td>
</tr>
<tr>
<td align="left">I</td>
<td align="left" colspan="2">Iaf neuron</td>
<td align="left"><italic>N</italic><sub>I</sub></td>
<td align="left"/>
</tr>
<tr>
<td align="left">M</td>
<td align="left" colspan="2">Iaf neuron</td>
<td align="left"><italic>N</italic><sub>nm</sub></td>
<td align="left"/>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">C: CONNECTIVITY</th>
</tr>
<tr>
<th align="left">Name</th>
<th align="left">Source</th>
<th align="left">Target</th>
<th align="left">Pattern</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">EE</td>
<td align="left">E</td>
<td align="left">E</td>
<td align="left">Random convergent <italic>C</italic><sub>E</sub>&#x02009;&#x02192;&#x02009;1, variable weight, delay <italic>d</italic></td>
</tr>
<tr>
<td align="left">IE</td>
<td align="left">E</td>
<td align="left">I</td>
<td align="left">Random convergent <italic>C</italic><sub>E</sub>&#x02009;&#x02192;&#x02009;1, weight <italic>w</italic><sub>E</sub>, delay <italic>d</italic></td>
</tr>
<tr>
<td align="left">EI</td>
<td align="left">I</td>
<td align="left">E</td>
<td align="left">Random convergent <italic>C</italic><sub>I</sub>&#x02009;&#x02192;&#x02009;1, weight&#x02009;&#x02212;&#x02009;<italic>gw</italic><sub>E</sub>, delay <italic>d</italic></td>
</tr>
<tr>
<td align="left">II</td>
<td align="left">I</td>
<td align="left">I</td>
<td align="left">Random convergent <italic>C</italic><sub>I</sub>&#x02009;&#x02192;&#x02009;1, weight&#x02009;&#x02212;&#x02009;<italic>gw</italic><sub>E</sub>, delay <italic>d</italic></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">D: NEURON AND SYNAPSE MODEL</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Name</td>
<td align="left" colspan="3">Iaf neuron</td>
</tr>
<tr>
<td align="left">Type</td>
<td align="left" colspan="3">Leaky integrate-and-fire, exponential shaped synaptic current input</td>
</tr>
<tr>
<td align="left">Subthreshold dynamics</td>
<td align="left" colspan="3"><inline-formula><mml:math id="M12"><mml:mrow><mml:mfrac><mml:mrow><mml:mi>d</mml:mi><mml:mi>V</mml:mi></mml:mrow><mml:mrow><mml:mi>d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mtext>m</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mi>V</mml:mi><mml:mo>+</mml:mo><mml:mfrac><mml:mn>1</mml:mn><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mtext>m</mml:mtext></mml:msub></mml:mrow></mml:mfrac><mml:mi>I</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula> if <italic>t</italic>&#x02009;&#x0003E;&#x02009;<italic>t</italic>&#x0002A;&#x02009;&#x0002B;&#x02009;&#x003C4;<sub>ref</sub></td>
</tr>
<tr>
<td align="left"/>
<td align="left" colspan="3"><italic>V</italic>(<italic>t</italic>)&#x02009;&#x0003D;&#x02009;<italic>V</italic><sub>reset</sub> otherwise</td>
</tr>
<tr>
<td align="left"/>
<td align="left" colspan="3"><inline-formula><mml:math id="M13"><mml:mrow><mml:msub><mml:mi>I</mml:mi><mml:mrow><mml:mtext>syn</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mi>w</mml:mi><mml:mtext>&#x02009;</mml:mtext><mml:msup><mml:mtext>e</mml:mtext><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mi>t</mml:mi><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mrow><mml:mtext>syn</mml:mtext></mml:mrow></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">Spiking</td>
<td align="left" colspan="3">If <italic>V</italic>(<italic>t</italic>&#x02212;)&#x02009;&#x0003C;&#x02009;<italic>V</italic><sub>th</sub>&#x02009;&#x02227;&#x02009;<italic>V</italic>(<italic>t</italic>&#x0002B;)&#x02009;&#x02265;&#x02009;<italic>V</italic><sub>th</sub></td>
</tr>
<tr>
<td align="left"/>
<td align="left" colspan="3">1. Set <italic>t</italic>&#x0002A;&#x02009;&#x0003D;&#x02009;<italic>t</italic></td>
</tr>
<tr>
<td align="left"/>
<td align="left" colspan="3">2. Emit spike with time stamp <italic>t</italic>&#x0002A;</td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">E: PLASTICITY</th>
</tr>
<tr>
<th align="left">Type</th>
<th align="left">Source</th>
<th align="left">Target</th>
<th align="left">Weight dynamics</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Additive STDP</td>
<td align="left">E</td>
<td align="left">E</td>
<td align="left"><inline-formula><mml:math id="M14"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>w</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x003B4;</mml:mo><mml:mo stretchy='false'>(</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>pre/post</mml:mtext></mml:mrow></mml:msub><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>=</mml:mo><mml:mrow><mml:mo>{</mml:mo> <mml:mrow><mml:mtable><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mo>+</mml:mo></mml:msub><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>|</mml:mo> <mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow> <mml:mo>|</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mo>+</mml:mo></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x02009;</mml:mtext><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x0003E;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>A</mml:mi><mml:mo>&#x02212;</mml:mo></mml:msub><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>&#x02212;</mml:mo><mml:mrow><mml:mo>|</mml:mo> <mml:mrow><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi></mml:mrow> <mml:mo>|</mml:mo></mml:mrow><mml:mo>/</mml:mo><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mo>&#x02212;</mml:mo></mml:msub></mml:mrow></mml:msup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mtext>if&#x02009;</mml:mtext><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo>&#x02264;</mml:mo><mml:mn>0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></td>
</tr>
<tr>
<td align="left">Neuromodulated additive STDP</td>
<td align="left">E</td>
<td align="left">E</td>
<td align="left"><inline-formula><mml:math id="M15"><mml:mtable columnalign='left'><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>w</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mi>c</mml:mi><mml:mo stretchy='false'>(</mml:mo><mml:mi>n</mml:mi><mml:mo>&#x02212;</mml:mo><mml:mi>b</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>c</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>c</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mtext>STDP</mml:mtext><mml:mo stretchy='false'>(</mml:mo><mml:mo>&#x00394;</mml:mo><mml:mi>t</mml:mi><mml:mo stretchy='false'>)</mml:mo><mml:mo>&#x003B4;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mrow><mml:mtext>pre/post</mml:mtext></mml:mrow></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mn>1</mml:mn></mml:msub></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mover accent='true'><mml:mi>n</mml:mi><mml:mo>&#x002D9;</mml:mo></mml:mover><mml:mo>=</mml:mo><mml:mo>&#x02212;</mml:mo><mml:mfrac><mml:mi>n</mml:mi><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mo>+</mml:mo><mml:mfrac><mml:mrow><mml:mo>&#x003B4;</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mrow><mml:mi>t</mml:mi><mml:mo>&#x02212;</mml:mo><mml:msub><mml:mi>s</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow><mml:mo>)</mml:mo></mml:mrow></mml:mrow><mml:mrow><mml:msub><mml:mo>&#x003C4;</mml:mo><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac><mml:mtext>&#x02009;</mml:mtext><mml:msub><mml:mi>C</mml:mi><mml:mn>2</mml:mn></mml:msub></mml:mtd></mml:mtr></mml:mtable></mml:math></inline-formula></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">F: INPUT</th>
</tr>
<tr>
<th align="left">Type</th>
<th align="left" colspan="3">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left">Poisson generators</td>
<td align="left" colspan="3">Independent for each neuron, rate &#x003BD;<sub>ext</sub>, weight <italic>w</italic><sub>ext</sub></td>
</tr>
</tbody>
</table>
<table>
<thead>
<tr>
<th align="left" colspan="4">G: Measurements</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="4">Time to complete simulation, not including network construction time</td>
</tr>
</tbody>
</table>
</table-wrap>
<table-wrap position="float" id="T2">
<label>Table 2</label>
<caption><p><bold>Specification of default parameters used in the 10<sup>4</sup> and 10<sup>5</sup> benchmark networks</bold>. Table labeling refers to the model description in Table <xref ref-type="table" rid="T1">1</xref>.</p></caption>
<table frame="hsides" rules="groups">
<thead>
<tr>
<th align="left">Name</th>
<th align="left">Value (104)</th>
<th align="left">Value (105)</th>
<th align="left">Description</th>
</tr>
</thead>
<tbody>
<tr>
<td align="left" colspan="4"><bold>B: POPULATION</bold></td>
</tr>
<tr>
<td align="left"><italic>N</italic><sub>E</sub></td>
<td align="left">9000</td>
<td align="left">90000</td>
<td align="left">Number of excitatory neurons</td>
</tr>
<tr>
<td align="left"><italic>N</italic><sub>I</sub></td>
<td align="left">2250</td>
<td align="left">22500</td>
<td align="left">Number of inhibitory neurons</td>
</tr>
<tr>
<td align="left"><italic>N</italic><sub>nm</sub></td>
<td align="left">50</td>
<td align="left">50</td>
<td align="left">Number of neuromodulator releasing neurons</td>
</tr>
<tr>
<td align="left" colspan="4"><bold>C: CONNECTIVITY</bold></td>
</tr>
<tr>
<td align="left"><italic>C</italic><sub>E</sub></td>
<td align="left">900</td>
<td align="left">9000</td>
<td align="left">Number of excitatory inputs per neuron</td>
</tr>
<tr>
<td align="left"><italic>C</italic><sub>I</sub></td>
<td align="left">225</td>
<td align="left">2250</td>
<td align="left">Number of inhibitory inputs per neuron</td>
</tr>
<tr>
<td align="left"><italic>w</italic><sub>E</sub></td>
<td align="left">175&#x02009;pA</td>
<td align="left">45.61&#x02009;pA</td>
<td align="left">Synaptic weights E&#x02009;&#x02192;&#x02009;I</td>
</tr>
<tr>
<td align="left"><italic>g</italic></td>
<td align="left">17</td>
<td align="left">5</td>
<td align="left">Relative inhibitory strength</td>
</tr>
<tr>
<td align="left"><italic>d</italic></td>
<td align="left">1.5&#x02009;ms</td>
<td align="left">1.5&#x02009;ms</td>
<td align="left">Synaptic delay</td>
</tr>
<tr>
<td align="left" colspan="4"><bold>D: NEURON MODEL</bold></td>
</tr>
<tr>
<td align="left">&#x003C4;<sub>m</sub></td>
<td align="left">10&#x02009;ms</td>
<td align="left">10&#x02009;ms</td>
<td align="left">Membrane time constant</td>
</tr>
<tr>
<td align="left"><italic>C</italic><sub>m</sub></td>
<td align="left">250&#x02009;pF</td>
<td align="left">250&#x02009;pF</td>
<td align="left">Membrane capacity</td>
</tr>
<tr>
<td align="left"><italic>V</italic><sub>reset</sub></td>
<td align="left">0&#x02009;mV</td>
<td align="left">0&#x02009;mV</td>
<td align="left">Reset potential</td>
</tr>
<tr>
<td align="left">&#x003C4;<sub>ref</sub></td>
<td align="left">0.5&#x02009;ms</td>
<td align="left">0.5&#x02009;ms</td>
<td align="left">Absolute refractory period</td>
</tr>
<tr>
<td align="left">&#x003C4;<sub>syn</sub></td>
<td align="left">0.33&#x02009;ms</td>
<td align="left">0.33&#x02009;ms</td>
<td align="left">Rise time of postsynaptic current</td>
</tr>
<tr>
<td align="left"><italic>V</italic><sub>th</sub></td>
<td align="left">20&#x02009;mV</td>
<td align="left">20&#x02009;mV</td>
<td align="left">Fixed firing threshold</td>
</tr>
<tr>
<td align="left" colspan="4"><bold>E: PLASTICITY</bold></td>
<td align="left"/>
<td align="left"/>
<td align="left"/>
</tr>
<tr>
<td align="left"><italic>w</italic><sub>initial</sub></td>
<td align="left">175&#x02009;pA</td>
<td align="left">45.61&#x02009;pA</td>
<td align="left">Initial synaptic weights for plastic synapses (E&#x02009;&#x02192;&#x02009;E)</td>
</tr>
<tr>
<td align="left"><italic>w</italic><sub>max</sub></td>
<td align="left">350&#x02009;pA</td>
<td align="left">91.22&#x02009;pA</td>
<td align="left">Maximal synaptic weights for plastic synapses</td>
</tr>
<tr>
<td align="left"><italic>A</italic><sub>&#x0002B;</sub></td>
<td align="left">0.005&#x02009;pA</td>
<td align="left">0.005&#x02009;pA</td>
<td align="left">Amplitude of weight change due to facilitation</td>
</tr>
<tr>
<td align="left"><italic>A</italic><sub>&#x02212;</sub></td>
<td align="left">1.05&#x000B7;<italic>A</italic><sub>&#x0002B;</sub></td>
<td align="left">1.05&#x000B7;<italic>A</italic><sub>&#x0002B;</sub></td>
<td align="left">Amplitude of the weight change due to depression</td>
</tr>
<tr>
<td align="left">&#x003C4;<sub>&#x0002B;</sub></td>
<td align="left">20&#x02009;ms</td>
<td align="left">20&#x02009;ms</td>
<td align="left">Time constant of facilitation</td>
</tr>
<tr>
<td align="left">&#x003C4;<sub>&#x02212;</sub></td>
<td align="left">20&#x02009;ms</td>
<td align="left">20&#x02009;ms</td>
<td align="left">Time constant of depression</td>
</tr>
<tr>
<td align="left"><italic>b</italic></td>
<td align="left">0.5&#x02009;&#x003BC;M</td>
<td align="left">0.5&#x02009;&#x003BC;M</td>
<td align="left">Neuromodulatory baseline concentration</td>
</tr>
<tr>
<td align="left">&#x003C4;<italic><sub>c</sub></italic></td>
<td align="left">1000&#x02009;ms</td>
<td align="left">1000&#x02009;ms</td>
<td align="left">Time constant of eligibility trace</td>
</tr>
<tr>
<td align="left"><italic>C</italic><sub>1</sub></td>
<td align="left"><inline-formula><mml:math id="M16"><mml:mrow><mml:mn>1</mml:mn><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:msup><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x003BC;</mml:mo><mml:mi>M</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td align="left"><inline-formula><mml:math id="M17"><mml:mrow><mml:mn>1</mml:mn><mml:mo stretchy='false'>(</mml:mo><mml:mn>1</mml:mn><mml:mo>/</mml:mo><mml:msup><mml:mi>s</mml:mi><mml:mn>2</mml:mn></mml:msup><mml:mo>&#x003BC;</mml:mo><mml:mi>M</mml:mi><mml:mo stretchy='false'>)</mml:mo></mml:mrow></mml:math></inline-formula></td>
<td align="left">Constant coefficient</td>
</tr>
<tr>
<td align="left">&#x003C4;<italic><sub>n</sub></italic></td>
<td align="left">200&#x02009;ms</td>
<td align="left">200&#x02009;ms</td>
<td align="left">Time constant of neuromodulator concentration</td>
</tr>
<tr>
<td align="left"><italic>C</italic><sub>2</sub></td>
<td align="left">1&#x02009;&#x003BC;M</td>
<td align="left">1&#x02009;&#x003BC;M</td>
<td align="left">Constant coefficients</td>
</tr>
<tr>
<td align="left" colspan="4"><bold>F: INPUT</bold></td>
</tr>
<tr>
<td align="left"><italic>w</italic><sub>ext</sub></td>
<td align="left">175&#x02009;pA</td>
<td align="left">45.61&#x02009;pA</td>
<td align="left">Synaptic weight of external connections</td>
</tr>
<tr>
<td align="left">&#x003BD;<sub>ext</sub></td>
<td align="left">27&#x02009;kHz</td>
<td align="left">46&#x02009;kHz</td>
<td align="left">External Poisson rate</td>
</tr>
</tbody>
</table>
</table-wrap>
</sec>
</app>
</app-group>
<ref-list>
<title>References</title>
<ref id="B1"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Agnati</surname> <given-names>L.</given-names></name> <name><surname>Zoli</surname> <given-names>M.</given-names></name> <name><surname>Str&#x000F6;mberg</surname> <given-names>I.</given-names></name> <name><surname>Fuxe</surname> <given-names>K.</given-names></name></person-group> (<year>1995</year>). <article-title>Intercellular communication in the brain: wiring versus volume transmission</article-title>. <source>Neuroscience</source> <volume>69</volume>, <fpage>711</fpage>&#x02013;<lpage>726</lpage>.<pub-id pub-id-type="doi">10.1016/0306-4522(95)00308-6</pub-id><pub-id pub-id-type="pmid">8596642</pub-id></citation></ref>
<ref id="B2"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Ananthanarayanan</surname> <given-names>R.</given-names></name> <name><surname>Modha</surname> <given-names>D. S.</given-names></name></person-group> (<year>2007</year>). <article-title>&#x0201C;Anatomy of a cortical simulator,&#x0201D;</article-title> in <conf-name>Supercomputing 2007: Proceedings of the ACM/IEEE SC2007 Conference on High Performance Networking and Computing</conf-name> (<conf-loc>New York, NY</conf-loc>: <conf-sponsor>Association for Computing Machinery</conf-sponsor>).</citation></ref>
<ref id="B3"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Antonov</surname> <given-names>I.</given-names></name> <name><surname>Antonova</surname> <given-names>I.</given-names></name> <name><surname>Kandel</surname> <given-names>E. R.</given-names></name> <name><surname>Hawkins</surname> <given-names>R. D.</given-names></name></person-group> (<year>2003</year>). <article-title>Activity-dependent presynaptic facilitation and hebbian LTP are both required and interact during classical conditioning in aplysia</article-title>. <source>Neuron</source> <volume>37</volume>, <fpage>135</fpage>&#x02013;<lpage>147</lpage>.<pub-id pub-id-type="doi">10.1016/S0896-6273(02)01129-7</pub-id><pub-id pub-id-type="pmid">12526779</pub-id></citation></ref>
<ref id="B4"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Arbuthnott</surname> <given-names>G.</given-names></name> <name><surname>Wickens</surname> <given-names>J.</given-names></name></person-group> (<year>2007</year>). <article-title>Space, time and dopamine</article-title>. <source>Trends Neuroscience</source> <volume>30</volume>, <fpage>62</fpage>&#x02013;<lpage>69</lpage>.<pub-id pub-id-type="doi">10.1016/j.tins.2006.12.003</pub-id></citation></ref>
<ref id="B5"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Baras</surname> <given-names>D.</given-names></name> <name><surname>Meir</surname> <given-names>R.</given-names></name></person-group> (<year>2007</year>). <article-title>Reinforcement learning, spike-time-dependent plasticity, and the BCM rule</article-title>. <source>Neural Comput.</source> <volume>19</volume>, <fpage>2245</fpage>&#x02013;<lpage>2279</lpage>.<pub-id pub-id-type="doi">10.1162/neco.2007.19.8.2245</pub-id><pub-id pub-id-type="pmid">17571943</pub-id></citation></ref>
<ref id="B6"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Berridge</surname> <given-names>C. W.</given-names></name> <name><surname>Waterhouse</surname> <given-names>B. D.</given-names></name></person-group> (<year>2003</year>). <article-title>The locus coeruleus-noradrenergic system: modulation of behavioral state and state-dependent cognitive processes</article-title>. <source>Brain Res. Brain Res. Rev.</source> <volume>42</volume>, <fpage>33</fpage>&#x02013;<lpage>84</lpage>.<pub-id pub-id-type="doi">10.1016/S0165-0173(03)00143-7</pub-id><pub-id pub-id-type="pmid">12668290</pub-id></citation></ref>
<ref id="B7"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bi</surname> <given-names>G.</given-names></name> <name><surname>Poo</surname> <given-names>M.</given-names></name></person-group> (<year>2001</year>). <article-title>Synaptic modification by correlated activity: Hebb&#x00027;s postulate revisited</article-title>. <source>Annu. Rev. Neurosci.</source> <volume>24</volume>, <fpage>139</fpage>&#x02013;<lpage>66</lpage>.<pub-id pub-id-type="doi">10.1146/annurev.neuro.24.1.139</pub-id><pub-id pub-id-type="pmid">11283308</pub-id></citation></ref>
<ref id="B8"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Bi</surname> <given-names>G.-Q.</given-names></name> <name><surname>Poo</surname> <given-names>M.-M.</given-names></name></person-group> (<year>1998</year>). <article-title>Synaptic modifications in cultured hippocampal neurons: dependence on spike timing, synaptic strength, and postsynaptic cell type</article-title>. <source>J. Neurosci.</source> <volume>18</volume>, <fpage>10464</fpage>&#x02013;<lpage>10472</lpage>.<pub-id pub-id-type="pmid">9852584</pub-id></citation></ref>
<ref id="B9"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Braitenberg</surname> <given-names>V.</given-names></name> <name><surname>Sch&#x000FC;z</surname> <given-names>A.</given-names></name></person-group> (<year>1998</year>). <source>Cortex: Statistics and Geometry of Neuronal Connectivity</source>, <edition>2nd Edn.</edition> <publisher-loc>Berlin</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>.</citation></ref>
<ref id="B10"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Brette</surname> <given-names>R.</given-names></name> <name><surname>Rudolph</surname> <given-names>M.</given-names></name> <name><surname>Carnevale</surname> <given-names>T.</given-names></name> <name><surname>Hines</surname> <given-names>M.</given-names></name> <name><surname>Beeman</surname> <given-names>D.</given-names></name> <name><surname>Bower</surname> <given-names>J. M.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Goodman</surname> <given-names>P. H.</given-names></name> <name><surname>Harris</surname> <given-names>F. C.</given-names> <suffix>Jr.</suffix></name> <name><surname>Zirpe</surname> <given-names>M.</given-names></name> <name><surname>Natschl&#x000E4;ger</surname> <given-names>T.</given-names></name> <name><surname>Pecevski</surname> <given-names>D.</given-names></name> <name><surname>Ermentrout</surname> <given-names>B.</given-names></name> <name><surname>Djurfeldt</surname> <given-names>M.</given-names></name> <name><surname>Lansner</surname> <given-names>A.</given-names></name> <name><surname>Rochel</surname> <given-names>O.</given-names></name> <name><surname>Vieville</surname> <given-names>T.</given-names></name> <name><surname>Muller</surname> <given-names>E.</given-names></name> <name><surname>Davison</surname> <given-names>A. P.</given-names></name> <name><surname>El Boustani</surname> <given-names>S.</given-names></name> <name><surname>Destexhe</surname> <given-names>A.</given-names></name></person-group> (<year>2007</year>). <article-title>Simulation of networks of spiking neurons: a review of tools and strategies</article-title>. <source>J. Comput. Neurosci.</source> <volume>23</volume>, <fpage>349</fpage>&#x02013;<lpage>398</lpage>.<pub-id pub-id-type="doi">10.1007/s10827-007-0038-6</pub-id><pub-id pub-id-type="pmid">17629781</pub-id></citation></ref>
<ref id="B11"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Cooper</surname> <given-names>J.</given-names></name> <name><surname>Bloom</surname> <given-names>F.</given-names></name> <name><surname>Roth</surname> <given-names>R.</given-names></name></person-group> (<year>2002</year>). <source>The Biochemical Basis of Neuropharmacology</source>. <publisher-loc>New York, Oxford</publisher-loc>: <publisher-name>Oxford University Press</publisher-name>.</citation></ref>
<ref id="B12"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Deco</surname> <given-names>G.</given-names></name> <name><surname>Thiele</surname> <given-names>A.</given-names></name></person-group> (<year>2009</year>). <article-title>Attention: oscillations and neuropharmacology</article-title>. <source>Eur. J. Neurosci.</source> <volume>30</volume>, <fpage>347</fpage>&#x02013;<lpage>354</lpage>.<pub-id pub-id-type="doi">10.1111/j.1460-9568.2009.06833.x</pub-id><pub-id pub-id-type="pmid">19614749</pub-id></citation></ref>
<ref id="B13"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Eppler</surname> <given-names>J. M.</given-names></name> <name><surname>Helias</surname> <given-names>M.</given-names></name> <name><surname>Muller</surname> <given-names>E.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name> <name><surname>Gewaltig</surname> <given-names>M.</given-names></name></person-group> (<year>2009</year>). <article-title>PyNEST: a convenient interface to the NEST simulator</article-title>. <source>Front. Neuroinformatics</source> <volume>2</volume>, <fpage>12</fpage>.</citation></ref>
<ref id="B14"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Florian</surname> <given-names>R. V.</given-names></name></person-group> (<year>2007</year>). <article-title>Reinforcement learning through modulation of spike-timing-dependent synaptic plasticity</article-title>. <source>Neural Comput.</source> <volume>19</volume>, <fpage>1468</fpage>&#x02013;<lpage>1502</lpage>.<pub-id pub-id-type="doi">10.1162/neco.2007.19.6.1468</pub-id><pub-id pub-id-type="pmid">17444757</pub-id></citation></ref>
<ref id="B15"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Garris</surname> <given-names>P. A.</given-names></name> <name><surname>Ciolkowski</surname> <given-names>E. L.</given-names></name> <name><surname>Pastore</surname> <given-names>P.</given-names></name> <name><surname>Wightman</surname> <given-names>R. M.</given-names></name></person-group> (<year>1994</year>). <article-title>Efflux of dopamine from the synaptic cleft in the nucleus accumbens of the rat brain</article-title>. <source>J. Neurosci.</source> <volume>14</volume>, <fpage>6084</fpage>&#x02013;<lpage>6093</lpage>.<pub-id pub-id-type="pmid">7931564</pub-id></citation></ref>
<ref id="B16"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gerstner</surname> <given-names>W.</given-names></name> <name><surname>Kempter</surname> <given-names>R.</given-names></name> <name><surname>van Hemmen</surname> <given-names>J. L.</given-names></name> <name><surname>Wagner</surname> <given-names>H.</given-names></name></person-group> (<year>1996</year>). <article-title>A neuronal learning rule for sub-millisecond temporal coding</article-title>. <source>Nature</source> <volume>383</volume>, <fpage>76</fpage>&#x02013;<lpage>78</lpage>.<pub-id pub-id-type="doi">10.1038/383076a0</pub-id><pub-id pub-id-type="pmid">8779718</pub-id></citation></ref>
<ref id="B17"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Gewaltig</surname> <given-names>M.-O.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2007</year>). <article-title>NEST (Neural Simulation Tool)</article-title>. <source>Scholarpedia J.</source> <volume>2</volume>, <fpage>1430</fpage>.<pub-id pub-id-type="doi">10.4249/scholarpedia.1430</pub-id></citation></ref>
<ref id="B18"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hammarlund</surname> <given-names>P.</given-names></name> <name><surname>Ekeberg</surname> <given-names>O.</given-names></name></person-group> (<year>1998</year>). <article-title>Large neural network simulations on multiple hardware platforms</article-title>. <source>J. Comput. Neurosci.</source> <volume>5</volume>, <fpage>443</fpage>&#x02013;<lpage>459</lpage>.<pub-id pub-id-type="doi">10.1023/A:1008893429695</pub-id><pub-id pub-id-type="pmid">9877024</pub-id></citation></ref>
<ref id="B19"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hanuschkin</surname> <given-names>A.</given-names></name> <name><surname>Kunkel</surname> <given-names>S.</given-names></name> <name><surname>Helias</surname> <given-names>M.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2010</year>). <article-title>A general and efficient method for incorporating precise spike times in globally time-driven simulations</article-title>. <source>Front. Neuroinform.</source> <volume>4</volume> <fpage>133</fpage>.<pub-id pub-id-type="doi">10.3389/fninf.2010.00113</pub-id></citation></ref>
<ref id="B20"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Harris</surname> <given-names>J.</given-names></name> <name><surname>Baurick</surname> <given-names>J.</given-names></name> <name><surname>Frye</surname> <given-names>J.</given-names></name> <name><surname>King</surname> <given-names>J.</given-names></name> <name><surname>Ballew</surname> <given-names>M.</given-names></name> <name><surname>Goodman</surname> <given-names>P.</given-names></name> <name><surname>Drewes</surname> <given-names>R.</given-names></name></person-group> (<year>2003</year>). <article-title>A novel parallel hardware and software solution for a large-scale biologically realistic cortical simulation</article-title>. <source>Technical Report</source>, <publisher-name>University of Nevada</publisher-name>, <publisher-loc>Reno, NV</publisher-loc>.</citation></ref>
<ref id="B21"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Hasselmo</surname> <given-names>M.</given-names></name> <name><surname>McGaughy</surname> <given-names>J.</given-names></name></person-group> (<year>2004</year>). <article-title>High acetylcholine levels set circuit dynamics for attention and encoding and low acetylcholine levels set dynamics for consolidation</article-title>. <source>Prog. Brain Res.</source> <volume>145</volume>, <fpage>207</fpage>&#x02013;<lpage>231</lpage>.<pub-id pub-id-type="doi">10.1016/S0079-6123(03)45015-2</pub-id><pub-id pub-id-type="pmid">14650918</pub-id></citation></ref>
<ref id="B22"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Hebb</surname> <given-names>D. O.</given-names></name></person-group> (<year>1949</year>). <source>The Organization of Behavior: A Neuropsychological Theory</source>. <publisher-loc>New York</publisher-loc>: <publisher-name>John Wiley and Sons</publisher-name>.</citation></ref>
<ref id="B23"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Herrero</surname> <given-names>J. L.</given-names></name> <name><surname>Roberts</surname> <given-names>M. J.</given-names></name> <name><surname>Delicato</surname> <given-names>L. S.</given-names></name> <name><surname>Gieselmann</surname> <given-names>M. A.</given-names></name> <name><surname>Dayan</surname> <given-names>P.</given-names></name> <name><surname>Thiele</surname> <given-names>A.</given-names></name></person-group> (<year>2008</year>). <article-title>Acetylcholine contributes through muscarinic receptors to attentional modulation in v1</article-title>. <source>Nature</source> <volume>454</volume>, <fpage>1110</fpage>&#x02013;<lpage>1113</lpage>.<pub-id pub-id-type="doi">10.1038/nature07141</pub-id><pub-id pub-id-type="pmid">18633352</pub-id></citation></ref>
<ref id="B24"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Izhikevich</surname> <given-names>E. M.</given-names></name></person-group> (<year>2007</year>). <article-title>Solving the distal reward problem through linkage of STDP and dopamine signaling</article-title>. <source>Cereb. Cortex</source> <volume>17</volume>, <fpage>2443</fpage>&#x02013;<lpage>2452</lpage>.<pub-id pub-id-type="doi">10.1093/cercor/bhl152</pub-id><pub-id pub-id-type="pmid">17220510</pub-id></citation></ref>
<ref id="B25"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Lamport</surname> <given-names>L.</given-names></name></person-group> (<year>1978</year>). <article-title>Time, clocks, and the ordering of events in a distributed system</article-title>. <source>Commun. ACM</source> <volume>21</volume>, <fpage>558</fpage>&#x02013;<lpage>565</lpage>.<pub-id pub-id-type="doi">10.1145/359545.359563</pub-id></citation></ref>
<ref id="B26"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Legenstein</surname> <given-names>R.</given-names></name> <name><surname>Pecevski</surname> <given-names>D.</given-names></name> <name><surname>Maass</surname> <given-names>W.</given-names></name></person-group> (<year>2008</year>). <article-title>A learning theory for reward-modulated spike-timing-dependent plasticity with application to biofeedback</article-title>. <source>PLoS Comput. Biol.</source> <volume>4</volume>, <fpage>e1000180</fpage>.<pub-id pub-id-type="doi">10.1371/journal.pcbi.1000180</pub-id><pub-id pub-id-type="pmid">18846203</pub-id></citation></ref>
<ref id="B27"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Markram</surname> <given-names>H.</given-names></name> <name><surname>L&#x000FC;bke</surname> <given-names>J.</given-names></name> <name><surname>Frotscher</surname> <given-names>M.</given-names></name> <name><surname>Sakmann</surname> <given-names>B.</given-names></name></person-group> (<year>1997</year>). <article-title>Regulation of synaptic efficacy by coincidence of postsynaptic APs and EPSPs</article-title>. <source>Science</source> <volume>275</volume>, <fpage>213</fpage>&#x02013;<lpage>215</lpage>.<pub-id pub-id-type="doi">10.1126/science.275.5297.213</pub-id><pub-id pub-id-type="pmid">8985014</pub-id></citation></ref>
<ref id="B28"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Markram</surname> <given-names>H.</given-names></name> <name><surname>Tsodyks</surname> <given-names>M.</given-names></name></person-group> (<year>1996</year>). <article-title>Redistribution of synaptic efficacy between neocortical pyramidal neurons</article-title>. <source>Nature</source> <volume>382</volume>, <fpage>807</fpage>&#x02013;<lpage>810</lpage>.<pub-id pub-id-type="doi">10.1038/382807a0</pub-id><pub-id pub-id-type="pmid">8752273</pub-id></citation></ref>
<ref id="B29"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Montague</surname> <given-names>P. R.</given-names></name> <name><surname>McClure</surname> <given-names>S. M.</given-names></name> <name><surname>Baldwin</surname> <given-names>P.</given-names></name> <name><surname>Phillips</surname> <given-names>P. E.</given-names></name> <name><surname>Budygin</surname> <given-names>E. A.</given-names></name> <name><surname>Stuber</surname> <given-names>G. D.</given-names></name> <name><surname>Kilpatrick</surname> <given-names>M. R.</given-names></name> <name><surname>Wightman</surname> <given-names>R. M.</given-names></name></person-group> (<year>2004</year>). <article-title>Dynamic gain control of dopamine delivery in freely moving animals</article-title>. <source>J. Neurosci.</source> <volume>24</volume>, <fpage>1754</fpage>&#x02013;<lpage>1759</lpage>.<pub-id pub-id-type="doi">10.1523/JNEUROSCI.4279-03.2004</pub-id><pub-id pub-id-type="pmid">14973252</pub-id></citation></ref>
<ref id="B30"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Moreau</surname> <given-names>A.</given-names></name> <name><surname>Amar</surname> <given-names>M.</given-names></name> <name><surname>Le Roux</surname> <given-names>N.</given-names></name> <name><surname>Morel</surname> <given-names>N.</given-names></name> <name><surname>Fossier</surname> <given-names>P.</given-names></name></person-group> (<year>2010</year>). <article-title>Serotoninergic fine-tuning of the excitation&#x02013;inhibition balance in rat visual cortical networks</article-title>. <source>Cereb. Cortex</source> <volume>20</volume>, <fpage>456</fpage>&#x02013;<lpage>467</lpage>.<pub-id pub-id-type="doi">10.1093/cercor/bhp114</pub-id><pub-id pub-id-type="pmid">19520765</pub-id></citation></ref>
<ref id="B31"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Aertsen</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2007</year>). <article-title>Spike-timing dependent plasticity in balanced random networks</article-title>. <source>Neural Comput.</source> <volume>19</volume>, <fpage>1437</fpage>&#x02013;<lpage>1467</lpage>.<pub-id pub-id-type="doi">10.1162/neco.2007.19.6.1437</pub-id><pub-id pub-id-type="pmid">17444756</pub-id></citation></ref>
<ref id="B32"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2006</year>). <article-title>&#x0201C;Maintaining causality in discrete time neuronal network simulations,&#x0201D;</article-title> in <conf-name>Proceedings of the Potsdam Supercomputer School 2005</conf-name>, <conf-loc>Germany</conf-loc>.</citation></ref>
<ref id="B33"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2008</year>). <article-title>&#x0201C;Maintaining causality in discrete time neuronal network simulations,&#x0201D;</article-title> in <source>Lectures in Supercomputational Neuroscience: Dynamics in Complex Brain Networks, Understanding Complex Systems</source>, eds <person-group person-group-type="editor"><name><surname>Beim Graben</surname> <given-names>P.</given-names></name> <name><surname>Zhou</surname> <given-names>C.</given-names></name> <name><surname>Thiel</surname> <given-names>M.</given-names></name> <name><surname>Kurths</surname> <given-names>J.</given-names></name></person-group> (<publisher-loc>Springer, Verlag</publisher-loc>: <publisher-name>Berlin Heidelberg</publisher-name>), <fpage>267</fpage>&#x02013;<lpage>278</lpage>.</citation></ref>
<ref id="B34"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name> <name><surname>Gerstner</surname> <given-names>W.</given-names></name></person-group> (<year>2008</year>). <article-title>Phenomenological models of synaptic plasticity based on spike-timing</article-title>. <source>Biol. Cybern.</source> <volume>98</volume>, <fpage>459</fpage>&#x02013;<lpage>478</lpage>.<pub-id pub-id-type="doi">10.1007/s00422-008-0233-1</pub-id><pub-id pub-id-type="pmid">18491160</pub-id></citation></ref>
<ref id="B35"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Mehring</surname> <given-names>C.</given-names></name> <name><surname>Geisel</surname> <given-names>T.</given-names></name> <name><surname>Aertsen</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2005</year>). <article-title>Advancing the boundaries of high connectivity network simulation with distributed computing</article-title>. <source>Neural Comput.</source> <volume>17</volume>, <fpage>1776</fpage>&#x02013;<lpage>1801</lpage>.<pub-id pub-id-type="doi">10.1162/0899766054026648</pub-id><pub-id pub-id-type="pmid">15969917</pub-id></citation></ref>
<ref id="B36"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Straube</surname> <given-names>S.</given-names></name> <name><surname>Plesser</surname> <given-names>H. E.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2007</year>). <article-title>Exact subthreshold integration with continuous spike times in discrete time neural network simulations</article-title>. <source>Neural Comput.</source> <volume>19</volume>, <fpage>47</fpage>&#x02013;<lpage>79</lpage>.<pub-id pub-id-type="doi">10.1162/neco.2007.19.1.47</pub-id><pub-id pub-id-type="pmid">17134317</pub-id></citation></ref>
<ref id="B37"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Nordlie</surname> <given-names>E.</given-names></name> <name><surname>Gewaltig</surname> <given-names>M.-O.</given-names></name> <name><surname>Plesser</surname> <given-names>H. E.</given-names></name></person-group> (<year>2009</year>). <article-title>Towards reproducible descriptions of neuronal network models</article-title>. <source>PLoS Comput. Biol.</source> <volume>5</volume>, <fpage>e1000456</fpage>.<pub-id pub-id-type="doi">10.1371/journal.pcbi.1000456</pub-id><pub-id pub-id-type="pmid">19662159</pub-id></citation></ref>
<ref id="B38"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pawlak</surname> <given-names>V.</given-names></name> <name><surname>Wickens</surname> <given-names>J. R.</given-names></name> <name><surname>Kirkwood</surname> <given-names>A.</given-names></name> <name><surname>Kerr</surname> <given-names>J. N. D.</given-names></name></person-group> (<year>2010</year>). <article-title>Timing is not everything: neuromodulation opens the STDP gate</article-title>. <source>Front. Syn. Neurosci</source>. <volume>2</volume> <fpage>146</fpage>.<pub-id pub-id-type="doi">10.3389/fnsyn.2010.00146</pub-id></citation></ref>
<ref id="B39"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Pecevski</surname> <given-names>D.</given-names></name> <name><surname>Natschl&#x000E4;ger</surname> <given-names>T.</given-names></name> <name><surname>Schuch</surname> <given-names>K.</given-names></name></person-group> (<year>2009</year>). <article-title>PCSIM: a parallel simulation environment for neural circuits fully integrated with python</article-title>. <source>Front. Neuroinformatics</source> <volume>3</volume> <fpage>11</fpage>.<pub-id pub-id-type="doi">10.3389/neuro.11.011.2009</pub-id><pub-id pub-id-type="pmid">19543450</pub-id></citation></ref>
<ref id="B40"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Plesser</surname> <given-names>H. E.</given-names></name> <name><surname>Eppler</surname> <given-names>J. M.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name> <name><surname>Gewaltig</surname> <given-names>M.-O.</given-names></name></person-group> (<year>2007</year>). <article-title>&#x0201C;Efficient parallel simulation of large-scale neuronal networks on clusters of multiprocessor computers,&#x0201D;</article-title> in <source>Euro-Par 2007: Parallel Processing, volume 4641 of Lecture Notes in Computer Science</source>, eds <person-group person-group-type="editor"><name><surname>Kermarrec</surname> <given-names>A.-M.</given-names></name> <name><surname>Boug&#x000E9;</surname> <given-names>L.</given-names></name> <name><surname>Priol</surname> <given-names>T.</given-names></name></person-group> (<publisher-loc>Berlin</publisher-loc>: <publisher-name>Springer-Verlag</publisher-name>), <fpage>672</fpage>&#x02013;<lpage>681</lpage>.</citation></ref>
<ref id="B41"><citation citation-type="confproc"><person-group person-group-type="author"><name><surname>Potjans</surname> <given-names>W.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2009a</year>). <article-title>Implementing neuromodulated plasticity in distributed simulations</article-title>. <source>Front. Neuroinformatics</source> Conference Abstract: <conf-name>2nd INCF Congress of Neuroinformatics</conf-name>.<pub-id pub-id-type="doi">10.3389/conf.neuro.11.2009.08.043</pub-id></citation></ref>
<ref id="B42"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Potjans</surname> <given-names>W.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2009b</year>). <article-title>A spiking neural network model of an actor-critic learning agent</article-title>. <source>Neural Comput.</source> <volume>21</volume>, <fpage>301</fpage>&#x02013;<lpage>339</lpage>.<pub-id pub-id-type="doi">10.1162/neco.2008.08-07-593</pub-id></citation></ref>
<ref id="B43"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Potjans</surname> <given-names>W.</given-names></name> <name><surname>Morrison</surname> <given-names>A.</given-names></name> <name><surname>Diesmann</surname> <given-names>M.</given-names></name></person-group> (<year>2009c</year>). <article-title>A spiking temporal-difference learning model based on dopamine-modulated plasticity</article-title>. <source>BMC Neurosci.</source> <volume>10</volume>(<issue>Supp 1</issue>), <fpage>140</fpage>.<pub-id pub-id-type="doi">10.1186/1471-2202-10-S1-P140</pub-id></citation></ref>
<ref id="B44"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Reynolds</surname> <given-names>J. N. J.</given-names></name> <name><surname>Hyland</surname> <given-names>B. I.</given-names></name> <name><surname>Wickens</surname> <given-names>J. R.</given-names></name></person-group> (<year>2001</year>). <article-title>A cellular mechanism of reward-related learning</article-title>. <source>Nature</source> <volume>413</volume>, <fpage>67</fpage>&#x02013;<lpage>70</lpage>.<pub-id pub-id-type="doi">10.1038/35092560</pub-id><pub-id pub-id-type="pmid">11544526</pub-id></citation></ref>
<ref id="B45"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Schultz</surname> <given-names>W.</given-names></name> <name><surname>Dayan</surname> <given-names>P.</given-names></name> <name><surname>Montague</surname> <given-names>P. R.</given-names></name></person-group> (<year>1997</year>). <article-title>A neural substrate of prediction and reward</article-title>. <source>Science</source> <volume>275</volume>, <fpage>1593</fpage>&#x02013;<lpage>1599</lpage>.<pub-id pub-id-type="doi">10.1126/science.275.5306.1593</pub-id><pub-id pub-id-type="pmid">9054347</pub-id></citation></ref>
<ref id="B46"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Seung</surname> <given-names>H. S.</given-names></name></person-group> (<year>2003</year>). <article-title>Learning spiking neural networks by reinforcement of stochastic synaptic transmission</article-title>. <source>Neuron</source> <volume>40</volume>, <fpage>1063</fpage>&#x02013;<lpage>1073</lpage>.<pub-id pub-id-type="doi">10.1016/S0896-6273(03)00761-X</pub-id><pub-id pub-id-type="pmid">14687542</pub-id></citation></ref>
<ref id="B47"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>S.</given-names></name> <name><surname>Abbott</surname> <given-names>L. F.</given-names></name></person-group> (<year>2001</year>). <article-title>Cortical development and remapping through spike timing-dependent plasticity</article-title>. <source>Neuron</source> <volume>32</volume>, <fpage>339</fpage>&#x02013;<lpage>350</lpage>.<pub-id pub-id-type="doi">10.1016/S0896-6273(01)00451-2</pub-id><pub-id pub-id-type="pmid">11684002</pub-id></citation></ref>
<ref id="B48"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Song</surname> <given-names>S.</given-names></name> <name><surname>Miller</surname> <given-names>K. D.</given-names></name> <name><surname>Abbott</surname> <given-names>L. F.</given-names></name></person-group> (<year>2000</year>). <article-title>Competitive Hebbian learning through spike-timing-dependent synaptic plasticity</article-title>. <source>Nat. Neurosci.</source> <volume>3</volume>, <fpage>919</fpage>&#x02013;<lpage>926</lpage>.<pub-id pub-id-type="doi">10.1038/78829</pub-id><pub-id pub-id-type="pmid">10966623</pub-id></citation></ref>
<ref id="B49"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Thomson</surname> <given-names>A. M.</given-names></name> <name><surname>Deuchars</surname> <given-names>J.</given-names></name></person-group> (<year>1994</year>). <article-title>Temporal and spatial properties of local circuits in neocortex</article-title>. <source>Trends Neurosci.</source> <volume>17</volume>, <fpage>119</fpage>&#x02013;<lpage>126</lpage>.<pub-id pub-id-type="doi">10.1016/0166-2236(94)90121-X</pub-id><pub-id pub-id-type="pmid">7515528</pub-id></citation></ref>
<ref id="B50"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Vasilaki</surname> <given-names>E.</given-names></name> <name><surname>Fr&#x000E9;maux</surname> <given-names>N.</given-names></name> <name><surname>Urbanczik</surname> <given-names>R.</given-names></name> <name><surname>Senn</surname> <given-names>W.</given-names></name> <name><surname>Gerstner</surname> <given-names>W.</given-names></name></person-group> (<year>2009</year>). <article-title>Spike-based reinforcement learning in continuous state and action space: When policy gradient methods fail</article-title>. <source>PLoS Comput. Biol.</source> <volume>5</volume>, <fpage>e1000586</fpage>.<pub-id pub-id-type="doi">10.1371/journal.pcbi.1000586</pub-id><pub-id pub-id-type="pmid">19997492</pub-id></citation></ref>
<ref id="B51"><citation citation-type="book"><person-group person-group-type="author"><name><surname>Wilkinson</surname> <given-names>B.</given-names></name> <name><surname>Allen</surname> <given-names>M.</given-names></name></person-group> (<year>2004</year>). <source>Parallel Programming: Techniques and Applications Using Networked Workstations and Parallel Computers</source> (<edition>2 ed.</edition>). <publisher-name>Prentice Hall</publisher-name>.</citation></ref>
<ref id="B52"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Xie</surname> <given-names>X.</given-names></name> <name><surname>Seung</surname> <given-names>H. S.</given-names></name></person-group> (<year>2004</year>). <article-title>Learning in neural networks by reinforcement of irregular spiking</article-title>. <source>Phys. Rev. E</source> <volume>69</volume>, 41909.<pub-id pub-id-type="doi">10.1103/PhysRevE.69.041909</pub-id></citation></ref>
<ref id="B53"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zoli</surname> <given-names>M.</given-names></name> <name><surname>Agnati</surname> <given-names>L. F.</given-names></name></person-group> (<year>1996</year>). <article-title>Wiring and volume transmission in the central nervous system: The concept of closed and open synapses</article-title>. <source>Prog. Neurobiol.</source> <volume>49</volume>, <fpage>363</fpage>&#x02013;<lpage>380</lpage>.<pub-id pub-id-type="pmid">8888115</pub-id></citation></ref>
<ref id="B54"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zoli</surname> <given-names>M.</given-names></name> <name><surname>Jansson</surname> <given-names>A.</given-names></name> <name><surname>Sykov&#x000E1;</surname> <given-names>E.</given-names></name> <name><surname>Agnati</surname> <given-names>L. F.</given-names></name> <name><surname>Fuxe</surname> <given-names>K.</given-names></name></person-group> (<year>1999</year>). <article-title>Volume transmission in the cns and its relevance for neuropsychopharmacology</article-title>. <source>Trends Pharmacol. Sci.</source> <volume>20</volume>, <fpage>142</fpage>&#x02013;<lpage>150</lpage>.<pub-id pub-id-type="doi">10.1016/S0165-6147(99)01343-7</pub-id><pub-id pub-id-type="pmid">10322499</pub-id></citation></ref>
<ref id="B55"><citation citation-type="journal"><person-group person-group-type="author"><name><surname>Zubler</surname> <given-names>F.</given-names></name> <name><surname>Douglas</surname> <given-names>R.</given-names></name></person-group> (<year>2009</year>). <article-title>A framework for modeling the growth and development of neurons and networks</article-title>. <source>Front. Comput. Neurosci.</source> <volume>3</volume> <fpage>25</fpage>.<pub-id pub-id-type="doi">10.3389/neuro.10.025.2009</pub-id><pub-id pub-id-type="pmid">19949465</pub-id></citation></ref>
</ref-list>
<fn-group><fn id="fn1"><p><sup>1</sup><uri xlink:href="http://www.fz-juelich.de/jsc/jugene/">http://www.fz-juelich.de/jsc/jugene/</uri></p></fn>
<fn id="fn2"><p><sup>2</sup><uri xlink:href="http://www.python.org">http://www.python.org</uri></p></fn>
<fn id="fn3"><p><sup>3</sup><uri xlink:href="http://www.open-mpi.org/">http://www.open-mpi.org/</uri></p></fn>
</fn-group>
</back>
</article>
