NEST (software) - NEST (software)
Původní autoři | Markus Diesmann, Marc-Oliver Gewaltig, Abigail Morrison, Hans Ekkehard Plesser |
---|---|
Vývojáři | Iniciativa NEST |
První vydání | 1. srpna 2004 |
Stabilní uvolnění | 2.20.0 / 31. ledna 2020 |
Napsáno | C ++, Krajta, Cython |
Operační systém | napříč platformami |
K dispozici v | Angličtina |
Typ | Výpočetní neurovědy |
Licence | GPLv 2+ |
webová stránka | www |
HNÍZDO je simulační software pro špičatou neuronovou síť modely, včetně rozsáhlých neuronových sítí. NEST původně vyvinuli Markus Diesmann a Marc-Oliver Gewaltig a nyní je vyvíjen a udržován iniciativou NEST.
Filozofie modelování
HNÍZDO simulace se snaží sledovat logiku elektrofyziologické experiment, který se odehrává uvnitř počítače s tím rozdílem, že nervový systém zkoumaný musí být definován experimentátorem.
Nervový systém je definován možným velkým počtem neurony a jejich připojení. V síti NEST mohou koexistovat různé modely neuronů a synapsí. Jakékoli dva neurony mohou mít více spojení s různými vlastnostmi. Konektivitu tedy nelze obecně popsat váhou nebo matice připojení ale spíše jako seznam sousedství.
Pro manipulaci nebo pozorování dynamiky sítě může experimentátor definovat takzvaná zařízení, která představují různé nástroje (pro měření a stimulaci) nalezené v experimentu. Tato zařízení zapisují svá data buď do Paměť nebo do souboru.
NEST je rozšiřitelný a lze přidávat nové modely pro neurony, synapse a zařízení.
Příklad
Následující příklad simuluje špičkovou aktivitu v řídké náhodné síti s opakovaným buzením a inhibicí[1]
Obrázek ukazuje špičková aktivita 50 neuronů jako a rastrový graf. Čas se zvyšuje podél horizontální osy, neuron id se zvyšuje podél vertikální osy. Každá tečka odpovídá a špice příslušného neuronu v daném čase. Spodní část obrázku ukazuje a histogram se střední rychlostí střelby neuronů.
import hnízdoimport nest.raster_plotJ_ex = 0.1 # excitační váhaJ_in = -0.5 # inhibiční hmotnostp_rate = 20000. # externí Poissonova rychlostneuron_params= {"Cm": 1.0, "tau_m": 20.0, „t_ref“: 2.0, „E_L“: 0.0, „V_reset“: 0.0, „V_m“: 0.0, "V_th": 20.0}# Nastavte parametry neuronů a zařízeníhnízdo.SetDefaults(„iaf_psc_delta“, neuron_params)hnízdo.SetDefaults("poisson_generator", {"hodnotit": p_rate})hnízdo.SetDefaults("spike_detector", {"s časem": Skutečný, "withgid": Skutečný})# Vytvořte neurony a zařízenínodes_ex=hnízdo.Vytvořit(„iaf_psc_delta“, 10000) uzly_v=hnízdo.Vytvořit(„iaf_psc_delta“, 2500)hluk=hnízdo.Vytvořit("poisson_generator")espikes=hnízdo.Vytvořit("spike_detector")# Konfigurace modelů synapsehnízdo.CopyModel("static_synapse", "vzrušující", {"hmotnost":J_ex, "zpoždění":1.5})hnízdo.CopyModel("static_synapse", "inhibiční", {"hmotnost":J_in, "zpoždění":1.5})# Propojte náhodnou síť a připojte ji k zařízenímhnízdo.Připojit(nodes_ex, nodes_ex+uzly_v, {"pravidlo": 'fixed_indegree', "nerozhodný": 1000}, "vzrušující")hnízdo.Připojit(uzly_v, nodes_ex+uzly_v, {"pravidlo": 'fixed_indegree', "nerozhodný": 250}, "inhibiční")hnízdo.Připojit(hluk, nodes_ex+uzly_v, syn_spec="vzrušující")hnízdo.Připojit(nodes_ex[1:51], espikes)# Simulujte po dobu 100. mshnízdo.Simulovat(100.)# Výsledky vykresleníhnízdo.raster_plot.from_device(espikes, hist=Skutečný)hnízdo.raster_plot.ukázat()
Funkce
Neuronové modely
- Integrujte a střílejte modely s různými typy synaptických proudů nebo potenciálů
- Integrujte a střílejte modely se synapsemi založenými na vodivosti
- Jedno oddělení Modely Hodgkin – Huxley
- Adaptivní exponenciální integrace a požární neuron (AdEx)
- Model neuronu MAT2
Síťové modely
- Náhodná neuronová síť
- Topologické sítě
- Síťové modely založené na datech
Modely Synapse
- Statické synapse s homogenní nebo heterogenní váhou a zpožděním.
- Plastickost závislá na časování špičky
- Krátkodobá plasticita (Tsodyks & Markram synapses)
- Neuromodulované synapse, použitím Dopamin.
Modely zařízení
- Detektor hrotu
- Multimetr pro potenciály, proudy atd.
- Generátory střídavého, stejnosměrného a krokového proudu
- Generátory šumu (Poisson, Gauss, Gamma)
- Generátory hrotů pro přehrávání hrotů
Přesnost
- NEST si klade za cíl vysokou přesnost a přesnost svých simulací[2]
- Každý model neuronu má svého příslušného řešitele a mnoho modelů má jednotkové testy.
- Pokud je to možné, přesná integrace[3] se používá.
- Ve výchozím nastavení hroty spadají do mřížky definované časovým krokem simulace. Některé modely podporují výměnu hrotů v nepřetržitém čase.[4]
Paralelní a distribuovaná simulace
- Podpora vícevláknové simulace pomocí OpenMP nebo POSIX vlákna.
- Podpora hybridní vícevláknové a distribuované simulace.
- Parallelization is semi-automatic by NEST's simulation kernel.
- Supralineární až lineární škálování až 10 000 jádra.[5]
Interoperabilita
- Rozhraní s koordinátorem více simulátorů, které vyvinula INCF.[6]
- Rozhraní k simulačnímu jazyku nezávislému na simulátoru PyNN.
Dějiny
Vývoj NEST zahájili v roce 1993 Markus Diesmann a Marc-Oliver Gewaltig na Ruhr University Bochum, Bochum, Německo a Weizmann Institute of Science v Rehovot, Izrael. V této době se simulátor nazýval SYNOD a simulace byly definovány v simulačním jazyce založeném na zásobníku nazvaném SLI.[7]
V roce 2001 software změnil svůj název ze SYNOD na NEST. Do roku 2004 byl NEST výhradně vyvíjen a používán zakládajícími členy Iniciativy NEST. První veřejné vydání se objevilo v létě 2004. Od té doby vyšlo NEST pravidelně, zhruba jednou nebo dvakrát ročně.
Od roku 2007 NEST podporuje hybridní paralelismus pomocí POSIX vlákna a MPI.[5]
V roce 2008 byl simulační jazyk SLI založený na zásobníku nahrazen moderním Krajta rozhraní se však starý interní simulační jazyk stále používá.[8]Zároveň je to simulační nezávislý specifikační jazyk PyNN byl vyvinut s podporou NEST.[9]V roce 2012 iniciativa NEST změnila licenci z proprietární licence NEST na GNU GPL V2 nebo novější.
Uživatelská rozhraní
- Primární uživatelské rozhraní NEST je PyNEST, a Krajta balíček, který řídí jádro simulace NEST. Cílem PyNEST je snadná použitelnost a bezproblémová interakce s Krajta a jeho knihovny.
- PyNN je jazyk nezávislý na simulátoru pro neurální simulace, který podporuje i NEST BRIAN, NEURON, stejně jako neuromorfní hardware.
- NEST také udržuje svůj vlastní simulační jazyk tlumočník (SLI), který rozumí jednoduchému Stohově orientovaný programovací jazyk na které má vliv PostScript.[Citace je zapotřebí ]
Viz také
Reference
- ^ Brunel, N. (2000). Dynamika řídce propojených sítí excitačních a inhibičních neuronů. Journal of computational neuroscience, 8 (3), 183–208.
- ^ Henker, S., Partzsch, J., Schemmel, J. (2011). Vyhodnocení přesnosti numerických metod používaných v nejmodernějších simulátorech pro špičkové neuronové sítě. Journal of computational neuroscience.
- ^ Rotter S., Diesmann M. (1999) Exact Digital Simulation of Time-Invariant Linear Systems with Applications to Neuronal Modeling Biological Kybernetics 81: 381-402
- ^ Morrison A., Straube S., Plesser H. E., Diesmann M. (2007) Přesná integrace podprahu s kontinuálními špičkovými časy v simulacích neuronové sítě v diskrétním čase Neural Comput 19 (1): 47-79
- ^ A b Plesser H. E., Eppler J. M., Morrison A., Diesmann M., Gewaltig Marc-Oliver (2007) Efektivní paralelní simulace rozsáhlých neuronových sítí na klastrech víceprocesorových počítačů V: Proc. Euro-Par Parallel Processing 2007, Springer LNCS 4641:672-681
- ^ Mikael Djurfeldt, Johannes Hjorth, Jochen M. Eppler, Niraj Dudani, Moritz Helias, Tobias C. Potjans, Upinder S. Bhalla, Markus Diesmann, Jeanette Hellgren Kotaleski, Örjan Ekeberg (2010) Interoperabilita za běhu mezi simulátory neuronových sítí na základě rámce MUSIC Neuroinformatics 8 (1): 43-60, DOI 10.1007 / s12021-010-9064-z
- ^ Videodokument o NEST Němcem Bernsteinova síť
- ^ Eppler, J. M., Helias, M., Diesmann, M., Muller, E., Gewaltig, Marc-Oliver (2008). PyNEST: pohodlné rozhraní k simulátoru NEST. Frontiers in Neuroinformatics, 2 (leden), 1–12. doi: 10,3389 / neuro.11.012.2008
- ^ A. Davison, D. Brüderle, J. Eppler, J. Kremkow, E. Muller, D. Pecevski, L. Perrinet a P. Yger, PyNN: společné rozhraní pro simulátory neuronových sítí, Front. Neuroinf. 2:11, 2009