Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr alehr@mun.ca wrote:
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
Dear Andrew,
Please forgive our late reply; virtually the entire NEST development team is currently attending a conference and has been very busy with preparations.
There is no such thing as a "deep copy" for networks. It is also difficult to reset a network back to its initial state in a generic manner. However, it is possible to call nest.Simulate() repeatedly. Could it be a solution to simulate your network, perform analysis on the data recorded by the instrumentation, and then manually reset the network to a suitable initial state, before calling Simulate() again? This way, you would avoid the overhead of having to re-connect the network. The manual reset could involve e.g. resetting membrane potentials on the nodes in your network.
Please let us know if this works for you.
Kind regards, Charl Linssen
On Tue, Nov 26, 2019, at 12:39, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr alehr@mun.ca wrote:
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Andrew
Hi Andrew
For pynest, you might want to look at ResetNetwork() or CopyModel(existing, new, params=None) commands (https://www.nest-simulator.org/part-2-populations-of-neurons/) to see if this is what you need. For sli, see https://www.nest-simulator.org/helpindex/cc/ResetNetwork.html and https://www.nest-simulator.org/helpindex/cc/CopyModel.html.
Regards, Julian
From: "Charl Linssen" nest-users@turingbirds.com To: "users" users@nest-simulator.org Sent: Wednesday, 27 November, 2019 14:54:45 Subject: [NEST Users] Re: NEST network object
Dear Andrew,
Please forgive our late reply; virtually the entire NEST development team is currently attending a conference and has been very busy with preparations.
There is no such thing as a "deep copy" for networks. It is also difficult to reset a network back to its initial state in a generic manner. However, it is possible to call nest.Simulate() repeatedly. Could it be a solution to simulate your network, perform analysis on the data recorded by the instrumentation, and then manually reset the network to a suitable initial state, before calling Simulate() again? This way, you would avoid the overhead of having to re-connect the network. The manual reset could involve e.g. resetting membrane potentials on the nodes in your network.
Please let us know if this works for you.
Kind regards, Charl Linssen
On Tue, Nov 26, 2019, at 12:39, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr < [ mailto:alehr@mun.ca | alehr@mun.ca ] > wrote:
BQ_BEGIN
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
_______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
BQ_END
_______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi!
tldr; ResetNetwork is deprecated in NEST 2.x and will be gone in NEST 3.
From the docs (https://nest-simulator.readthedocs.io/en/latest/guides/running_simulations.h...):
The ResetNetwork() function available in NEST 2 is incomplete in that it only resets the state of neurons and devices to default values and deletes spikes that are in the delivery pipeline. It does does not reset plastic synapses or delete spikes from the spike buffers of neurons. We will therefore remove the function in NEST 3 and already now advise against using ResetNetwork().
Best regards, Jochen!
On 27.11.19 15:00, Julian Martin Leslie Budd wrote:
Hi Andrew
Hi Andrew
For pynest, you might want to look at ResetNetwork() or CopyModel(existing, new, params=None) commands (https://www.nest-simulator.org/part-2-populations-of-neurons/) to see if this is what you need. For sli, see https://www.nest-simulator.org/helpindex/cc/ResetNetwork.html and https://www.nest-simulator.org/helpindex/cc/CopyModel.html.
Regards, Julian
*From: *"Charl Linssen" nest-users@turingbirds.com *To: *"users" users@nest-simulator.org *Sent: *Wednesday, 27 November, 2019 14:54:45 *Subject: *[NEST Users] Re: NEST network object
Dear Andrew,
Please forgive our late reply; virtually the entire NEST development team is currently attending a conference and has been very busy with preparations.
There is no such thing as a "deep copy" for networks. It is also difficult to reset a network back to its initial state in a generic manner. However, it is possible to call nest.Simulate() repeatedly. Could it be a solution to simulate your network, perform analysis on the data recorded by the instrumentation, and then manually reset the network to a suitable initial state, before calling Simulate() again? This way, you would avoid the overhead of having to re-connect the network. The manual reset could involve e.g. resetting membrane potentials on the nodes in your network.
Please let us know if this works for you.
Kind regards, Charl Linssen
On Tue, Nov 26, 2019, at 12:39, alehr wrote:
Dear NEST developer, I am wondering if my inquiry from November 11th has been looked at. Thanks, Andrew Lehr On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca <mailto:alehr@mun.ca>> wrote: Dear NEST developer, I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible? Thanks, Andrew Lehr _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653 ---------------------------------- Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------
Thanks Jochen. So do I take it there will be no alternative in NEST 3 except to restart the kernel for each run? Regards, Julian
----- Original Message ----- From: "Jochen Martin Eppler" j.eppler@fz-juelich.de To: "users" users@nest-simulator.org Sent: Wednesday, 27 November, 2019 16:04:29 Subject: [NEST Users] Re: NEST network object
Hi!
tldr; ResetNetwork is deprecated in NEST 2.x and will be gone in NEST 3.
From the docs (https://nest-simulator.readthedocs.io/en/latest/guides/running_simulations.h...):
The ResetNetwork() function available in NEST 2 is incomplete in that it only resets the state of neurons and devices to default values and deletes spikes that are in the delivery pipeline. It does does not reset plastic synapses or delete spikes from the spike buffers of neurons. We will therefore remove the function in NEST 3 and already now advise against using ResetNetwork().
Best regards, Jochen!
On 27.11.19 15:00, Julian Martin Leslie Budd wrote:
Hi Andrew
Hi Andrew
For pynest, you might want to look at ResetNetwork() or CopyModel(existing, new, params=None) commands (https://www.nest-simulator.org/part-2-populations-of-neurons/) to see if this is what you need. For sli, see https://www.nest-simulator.org/helpindex/cc/ResetNetwork.html and https://www.nest-simulator.org/helpindex/cc/CopyModel.html.
Regards, Julian
*From: *"Charl Linssen" nest-users@turingbirds.com *To: *"users" users@nest-simulator.org *Sent: *Wednesday, 27 November, 2019 14:54:45 *Subject: *[NEST Users] Re: NEST network object
Dear Andrew,
Please forgive our late reply; virtually the entire NEST development team is currently attending a conference and has been very busy with preparations.
There is no such thing as a "deep copy" for networks. It is also difficult to reset a network back to its initial state in a generic manner. However, it is possible to call nest.Simulate() repeatedly. Could it be a solution to simulate your network, perform analysis on the data recorded by the instrumentation, and then manually reset the network to a suitable initial state, before calling Simulate() again? This way, you would avoid the overhead of having to re-connect the network. The manual reset could involve e.g. resetting membrane potentials on the nodes in your network.
Please let us know if this works for you.
Kind regards, Charl Linssen
On Tue, Nov 26, 2019, at 12:39, alehr wrote:
Dear NEST developer, I am wondering if my inquiry from November 11th has been looked at. Thanks, Andrew Lehr On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca <mailto:alehr@mun.ca>> wrote: Dear NEST developer, I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible? Thanks, Andrew Lehr _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653 ---------------------------------- Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi Andrew, Is it because the network takes a long time to build?Are you working with very large networks that need to be spread on multiple machines? I am personally building networks with complex topologies, where creating the synaptic connections requires a lot of time since I do random sampling with constraint satisfaction directly in Python. I also need to compute per-synapse approximations of axonal delays, dendritic tree attenuations and much more. I do build the network once and have written some Python code that allow to pickle the necessary information (e.g. parameters of the neuron models, synaptic weights) to instantiate faster the network in NEST when I want to perform simulations. But that is just a custom solution, not general to any network. Cordially,Simon On Tue, 2019-11-26 at 12:39 +0100, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at. Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr alehr@mun.ca wrote:
Dear NEST developer, I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
_______________________________________________NEST Users mailing list -- users@nest-simulator.orgTo unsubscribe send an email to users-leave@nest-simulator.org
Hi, I was also wandering if there is such possibility.
My approach is the same as Andrew's but nevertheless it takes time to connect a complex network having multiple layers and feedback/feedforward connectivity even though I have prepared and saved all parameters in advance, esspecially if I want to have sparse connectivity. I was also wandering is it possible to have sparse connectivity matrix W to be used in the following manner: connect(pop1, pop2, "all_to_all", W). Now I am generating full matrix with numerous zero elements but if I want to have dynamic synapses, initial zero weights might result in non-zero one after some time. Best,Petia
On Wednesday, November 27, 2019, 4:42:32 PM GMT+2, Simon Brodeur simon.brodeur@usherbrooke.ca wrote:
Hi Andrew, Is it because the network takes a long time to build?Are you working with very large networks that need to be spread on multiple machines? I am personally building networks with complex topologies, where creating the synaptic connections requires a lot of time since I do random sampling with constraint satisfaction directly in Python.I also need to compute per-synapse approximations of axonal delays, dendritic tree attenuations and much more. I do build the network once and have written some Python code that allow to pickle the necessary information (e.g. parameters of the neuron models, synaptic weights) to instantiate faster the network in NEST when I want to perform simulations. But that is just a custom solution, not general to any network. Cordially,Simon On Tue, 2019-11-26 at 12:39 +0100, alehr wrote: Dear NEST developer, I am wondering if my inquiry from November 11th has been looked at. Thanks,Andrew Lehr On Mon, Nov 11, 2019 at 1:52 PM alehr alehr@mun.ca wrote:
Dear NEST developer, I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks,Andrew Lehr _______________________________________________NEST Users mailing list -- users@nest-simulator.orgTo unsubscribe send an email to users-leave@nest-simulator.org
Dear Petia!
My approach is the same as Andrew's but nevertheless it takes time to connect a complex network having multiple layers and feedback/feedforward connectivity even though I have prepared and saved all parameters in advance, esspecially if I want to have sparse connectivity.
Of course it takes time to re-instantiate a network completely to do repeated experiments on pristine networks, but so would saving and loading. In fact, all our attempts to implement this functionality showed that it actually often takes *more* time to restore a network from disk than it would to just re-running the script that created it. The main reason for this is that memory and processors are lightning fast compared to disks.
The other reason for not having any checkpointing functionality and removing ResetNetwork in NEST 3 is that is just crazy complicated to get this right. There are spike buffers in neurons and inside the NEST kernel, modified default values, random number generator states, internal flags indicating simulation phases, possibly open files, and so on and so forth. Because it is almost impossible to implement this in a way that is both complete and correct, we rather not provide it.
I was also wandering is it possible to have sparse connectivity matrix W to be used in the following manner: connect(pop1, pop2, "all_to_all", W). Now I am generating full matrix with numerous zero elements but if I want to have dynamic synapses, initial zero weights might result in non-zero one after some time.
You have to create all connections from the start if you want them to exhibit dynamic weight changes during the simulation. The only exception to this rule is structural plasticity: https://www.fz-juelich.de/ias/jsc/EN/Expertise/SimLab/slns/research/structur...
Best regards, Jochen!
On Wednesday, November 27, 2019, 4:42:32 PM GMT+2, Simon Brodeur simon.brodeur@usherbrooke.ca wrote:
Hi Andrew,
Is it because the network takes a long time to build? Are you working with very large networks that need to be spread on multiple machines?
I am personally building networks with complex topologies, where creating the synaptic connections requires a lot of time since I do random sampling with constraint satisfaction directly in Python. I also need to compute per-synapse approximations of axonal delays, dendritic tree attenuations and much more. I do build the network once and have written some Python code that allow to pickle the necessary information (e.g. parameters of the neuron models, synaptic weights) to instantiate faster the network in NEST when I want to perform simulations. But that is just a custom solution, not general to any network.
Cordially, Simon
On Tue, 2019-11-26 at 12:39 +0100, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca mailto:alehr@mun.ca> wrote:
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
NEST Users mailing list --users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email tousers-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
--
*Simon Brodeur* /Étudiant au doctorat/ Université de Sherbrooke Département génie électrique et génie informatique Laboratoire NECOTIS, C1-3036 Tél. : (819) 821-8000 poste 62187 Courriel: Simon.Brodeur@USherbrooke.ca mailto:Simon.Brodeur@USherbrooke.ca
NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653 ---------------------------------- Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------
Thank you very much Jochen for exhaustive answer! I was wandering what if I have generated sparse connectivity matrix W and use it to connect two populations of neurons at once? I am using connect all-to-all but with non-sparse matrix having zeros for missing connections now.
Best wishes,Petia
On Thursday, November 28, 2019, 3:24:54 PM GMT+2, Jochen Martin Eppler j.eppler@fz-juelich.de wrote:
Dear Petia!
My approach is the same as Andrew's but nevertheless it takes time to connect a complex network having multiple layers and feedback/feedforward connectivity even though I have prepared and saved all parameters in advance, esspecially if I want to have sparse connectivity.
Of course it takes time to re-instantiate a network completely to do repeated experiments on pristine networks, but so would saving and loading. In fact, all our attempts to implement this functionality showed that it actually often takes *more* time to restore a network from disk than it would to just re-running the script that created it. The main reason for this is that memory and processors are lightning fast compared to disks.
The other reason for not having any checkpointing functionality and removing ResetNetwork in NEST 3 is that is just crazy complicated to get this right. There are spike buffers in neurons and inside the NEST kernel, modified default values, random number generator states, internal flags indicating simulation phases, possibly open files, and so on and so forth. Because it is almost impossible to implement this in a way that is both complete and correct, we rather not provide it.
I was also wandering is it possible to have sparse connectivity matrix W to be used in the following manner: connect(pop1, pop2, "all_to_all", W). Now I am generating full matrix with numerous zero elements but if I want to have dynamic synapses, initial zero weights might result in non-zero one after some time.
You have to create all connections from the start if you want them to exhibit dynamic weight changes during the simulation. The only exception to this rule is structural plasticity: https://www.fz-juelich.de/ias/jsc/EN/Expertise/SimLab/slns/research/structur...
Best regards, Jochen!
On Wednesday, November 27, 2019, 4:42:32 PM GMT+2, Simon Brodeur simon.brodeur@usherbrooke.ca wrote:
Hi Andrew,
Is it because the network takes a long time to build? Are you working with very large networks that need to be spread on multiple machines?
I am personally building networks with complex topologies, where creating the synaptic connections requires a lot of time since I do random sampling with constraint satisfaction directly in Python. I also need to compute per-synapse approximations of axonal delays, dendritic tree attenuations and much more. I do build the network once and have written some Python code that allow to pickle the necessary information (e.g. parameters of the neuron models, synaptic weights) to instantiate faster the network in NEST when I want to perform simulations. But that is just a custom solution, not general to any network.
Cordially, Simon
On Tue, 2019-11-26 at 12:39 +0100, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca mailto:alehr@mun.ca> wrote:
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
NEST Users mailing list --users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email tousers-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
--
*Simon Brodeur* /Étudiant au doctorat/ Université de Sherbrooke Département génie électrique et génie informatique Laboratoire NECOTIS, C1-3036 Tél. : (819) 821-8000 poste 62187 Courriel: Simon.Brodeur@USherbrooke.ca mailto:Simon.Brodeur@USherbrooke.ca
NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653 ---------------------------------- Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt ------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------ _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Hi!
Right now, there is no way of excluding connections with zero weights from being connected other than resorting to one-to-one connections and looping/checking manually. Feel free to add this feature request to our issue tracker at https://github.com/nest/nest-simulator/issues
Cheers, Jochen!
On 28.11.19 15:10, Petia Koprinkova wrote:
Thank you very much Jochen for exhaustive answer!
I was wandering what if I have generated sparse connectivity matrix W and use it to connect two populations of neurons at once? I am using connect all-to-all but with non-sparse matrix having zeros for missing connections now.
Best wishes, Petia
On Thursday, November 28, 2019, 3:24:54 PM GMT+2, Jochen Martin Eppler j.eppler@fz-juelich.de wrote:
Dear Petia!
My approach is the same as Andrew's but nevertheless it takes time to connect a complex network having multiple layers and feedback/feedforward connectivity even though I have prepared and saved all parameters in advance, esspecially if I want to have sparse connectivity.
Of course it takes time to re-instantiate a network completely to do repeated experiments on pristine networks, but so would saving and loading. In fact, all our attempts to implement this functionality showed that it actually often takes *more* time to restore a network from disk than it would to just re-running the script that created it. The main reason for this is that memory and processors are lightning fast compared to disks.
The other reason for not having any checkpointing functionality and removing ResetNetwork in NEST 3 is that is just crazy complicated to get this right. There are spike buffers in neurons and inside the NEST kernel, modified default values, random number generator states, internal flags indicating simulation phases, possibly open files, and so on and so forth. Because it is almost impossible to implement this in a way that is both complete and correct, we rather not provide it.
I was also wandering is it possible to have sparse connectivity matrix W to be used in the following manner: connect(pop1, pop2, "all_to_all", W). Now I am generating full matrix with numerous zero elements but if I want to have dynamic synapses, initial zero weights might result in non-zero one after some time.
You have to create all connections from the start if you want them to exhibit dynamic weight changes during the simulation. The only exception to this rule is structural plasticity: https://www.fz-juelich.de/ias/jsc/EN/Expertise/SimLab/slns/research/structur...
Best regards, Jochen!
On Wednesday, November 27, 2019, 4:42:32 PM GMT+2, Simon Brodeur <simon.brodeur@usherbrooke.ca mailto:simon.brodeur@usherbrooke.ca>
wrote:
Hi Andrew,
Is it because the network takes a long time to build? Are you working with very large networks that need to be spread on multiple machines?
I am personally building networks with complex topologies, where creating the synaptic connections requires a lot of time since I do random sampling with constraint satisfaction directly in Python. I also need to compute per-synapse approximations of axonal delays, dendritic tree attenuations and much more. I do build the network once and have written some Python code that allow to pickle the necessary information (e.g. parameters of the neuron models, synaptic weights) to instantiate faster the network in NEST when I want to perform simulations. But that is just a custom solution, not general to any
network.
Cordially, Simon
On Tue, 2019-11-26 at 12:39 +0100, alehr wrote:
Dear NEST developer,
I am wondering if my inquiry from November 11th has been looked at.
Thanks, Andrew Lehr
On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca
<mailto:alehr@mun.ca mailto:alehr@mun.ca>> wrote:
Dear NEST developer,
I would like to initialize a network with neurons and connections and then run many simulations with it. It would be great if I could build the network one time and then deepcopy (or something similar) for each simulation. Is something like this possible?
Thanks, Andrew Lehr
NEST Users mailing list --users@nest-simulator.org
mailto:--users@nest-simulator.org <mailto:users@nest-simulator.org mailto:users@nest-simulator.org>
To unsubscribe send an email tousers-leave@nest-simulator.org
mailto:tousers-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org>
--
*Simon Brodeur* /Étudiant au doctorat/ Université de Sherbrooke Département génie électrique et génie informatique Laboratoire NECOTIS, C1-3036 Tél. : (819) 821-8000 poste 62187 Courriel: Simon.Brodeur@USherbrooke.ca
mailto:Simon.Brodeur@USherbrooke.ca <mailto:Simon.Brodeur@USherbrooke.ca mailto:Simon.Brodeur@USherbrooke.ca>
NEST Users mailing list -- users@nest-simulator.org
mailto:users@nest-simulator.org
<mailto:users@nest-simulator.org mailto:users@nest-simulator.org> To unsubscribe send an email to users-leave@nest-simulator.org
mailto:users-leave@nest-simulator.org
<mailto:users-leave@nest-simulator.org
mailto:users-leave@nest-simulator.org>
NEST Users mailing list -- users@nest-simulator.org
mailto:users@nest-simulator.org
To unsubscribe send an email to users-leave@nest-simulator.org
mailto:users-leave@nest-simulator.org
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653
Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt
NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Thank you Jochen! I willBest,Petia
On Friday, November 29, 2019, 1:08:56 PM GMT+2, Jochen Martin Eppler j.eppler@fz-juelich.de wrote:
Hi!
Right now, there is no way of excluding connections with zero weights from being connected other than resorting to one-to-one connections and looping/checking manually. Feel free to add this feature request to our issue tracker at https://github.com/nest/nest-simulator/issues
Cheers, Jochen!
On 28.11.19 15:10, Petia Koprinkova wrote:
Thank you very much Jochen for exhaustive answer!
I was wandering what if I have generated sparse connectivity matrix W and use it to connect two populations of neurons at once? I am using connect all-to-all but with non-sparse matrix having zeros for missing connections now.
Best wishes, Petia
On Thursday, November 28, 2019, 3:24:54 PM GMT+2, Jochen Martin Eppler j.eppler@fz-juelich.de wrote:
Dear Petia!
> My approach is the same as Andrew's but nevertheless it takes time to > connect a complex network having multiple layers and > feedback/feedforward connectivity even though I have prepared and saved > all parameters in advance, esspecially if I want to have sparse > connectivity.
Of course it takes time to re-instantiate a network completely to do repeated experiments on pristine networks, but so would saving and loading. In fact, all our attempts to implement this functionality showed that it actually often takes *more* time to restore a network from disk than it would to just re-running the script that created it. The main reason for this is that memory and processors are lightning fast compared to disks.
The other reason for not having any checkpointing functionality and removing ResetNetwork in NEST 3 is that is just crazy complicated to get this right. There are spike buffers in neurons and inside the NEST kernel, modified default values, random number generator states, internal flags indicating simulation phases, possibly open files, and so on and so forth. Because it is almost impossible to implement this in a way that is both complete and correct, we rather not provide it.
> I was also wandering is it possible to have sparse connectivity matrix W > to be used in the following manner: connect(pop1, pop2, "all_to_all", > W). Now I am generating full matrix with numerous zero elements but if I > want to have dynamic synapses, initial zero weights might result in > non-zero one after some time.
You have to create all connections from the start if you want them to exhibit dynamic weight changes during the simulation. The only exception to this rule is structural plasticity: https://www.fz-juelich.de/ias/jsc/EN/Expertise/SimLab/slns/research/structur...
Best regards, Jochen!
> On Wednesday, November 27, 2019, 4:42:32 PM GMT+2, Simon Brodeur > <simon.brodeur@usherbrooke.ca mailto:simon.brodeur@usherbrooke.ca> wrote: > > > Hi Andrew, > > Is it because the network takes a long time to build? > Are you working with very large networks that need to be spread on > multiple machines? > > I am personally building networks with complex topologies, where > creating the synaptic connections requires a lot of time since I do > random sampling with constraint satisfaction directly in Python. > I also need to compute per-synapse approximations of axonal delays, > dendritic tree attenuations and much more. I do build the network once > and have written some Python code that allow to pickle the necessary > information (e.g. parameters of the neuron models, synaptic weights) to > instantiate faster the network in NEST when I want to perform > simulations. But that is just a custom solution, not general to any network. > > Cordially, > Simon > > On Tue, 2019-11-26 at 12:39 +0100, alehr wrote: >> Dear NEST developer, >> >> I am wondering if my inquiry from November 11th has been looked at. >> >> Thanks, >> Andrew Lehr >> >> On Mon, Nov 11, 2019 at 1:52 PM alehr <alehr@mun.ca mailto:alehr@mun.ca >> <mailto:alehr@mun.ca mailto:alehr@mun.ca>> wrote: >>> Dear NEST developer, >>> >>> I would like to initialize a network with neurons and connections and >>> then run many simulations with it. It would be great if I could build >>> the network one time and then deepcopy (or something similar) for >>> each simulation. Is something like this possible? >>> >>> Thanks, >>> Andrew Lehr >> _______________________________________________ >> NEST Users mailing list --users@nest-simulator.org mailto:--users@nest-simulator.org <mailto:users@nest-simulator.org mailto:users@nest-simulator.org> >> To unsubscribe send an email tousers-leave@nest-simulator.org mailto:tousers-leave@nest-simulator.org <mailto:users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org> >> > -- > > ___________________________________________________ > > *Simon Brodeur* > /Étudiant au doctorat/ > Université de Sherbrooke > Département génie électrique et génie informatique > Laboratoire NECOTIS, C1-3036 > Tél. : (819) 821-8000 poste 62187 > Courriel: Simon.Brodeur@USherbrooke.ca mailto:Simon.Brodeur@USherbrooke.ca <mailto:Simon.Brodeur@USherbrooke.ca mailto:Simon.Brodeur@USherbrooke.ca> > > ___________________________________________________ > > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org > <mailto:users@nest-simulator.org mailto:users@nest-simulator.org> > To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org > <mailto:users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org> > > _______________________________________________ > NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org > To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org >
-- Dr. Jochen Martin Eppler Phone: +49(2461)61-96653
Simulation Laboratory Neuroscience Jülich Supercomputing Centre Institute for Advanced Simulation
Forschungszentrum Juelich GmbH 52425 Juelich Sitz der Gesellschaft: Juelich Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498 Vorsitzender des Aufsichtsrats: MinDir Volker Rieke Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender), Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt, Prof. Dr. Sebastian M. Schmidt
NEST Users mailing list -- users@nest-simulator.org mailto:users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org mailto:users-leave@nest-simulator.org
NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org
Dear Petia,
The possibility to create connections using a sparse matrix for the weights, where connections are made only for non-zero weights, is now implemented and merged into master. This feature will be part of the NEST 3.0 release. An example on how to efficiently create such connections from a sparse matrix is added to the documentation:
https://nest-simulator.readthedocs.io/en/latest/guides/connection_management...
Best, Håkon
Dear Håkon, Thank you very much! We also did something similar in our code :) Best wishes,Petia
On Friday, November 20, 2020, 12:56:48 PM GMT+2, hakon.mork@nmbu.no hakon.mork@nmbu.no wrote:
Dear Petia,
The possibility to create connections using a sparse matrix for the weights, where connections are made only for non-zero weights, is now implemented and merged into master. This feature will be part of the NEST 3.0 release. An example on how to efficiently create such connections from a sparse matrix is added to the documentation:
https://nest-simulator.readthedocs.io/en/latest/guides/connection_management...
Best, Håkon _______________________________________________ NEST Users mailing list -- users@nest-simulator.org To unsubscribe send an email to users-leave@nest-simulator.org