Hi everyone!
I realized today that profiling PyNEST is easier than I thought. In iPython, you can just run
run -p -s cumulative -D srn.prof ../src/pynest/examples/store_restore_network.py
which will run the script, present a summary sorted by cumulative time and write binary profiling data (pstats format) to file srn.prof.
Then run (gprof2dot available from, e.g., PiPy)
gprof2dot -f pstats -o srn.dot srn.prof
and finally
dot -Tpdf srn.dot
Both tools have lot's of options. In my case (an older version of the script above, currently under review in #1919, not yet in master), the attached PDF resulted, showing that getting connection properties indeed takes a lot of time. Note that the graph only resolves time spent in Python code, time spent in C++ code is hiding behind "run()".
Below some more timing results from a network of 1000 neurons with 100,000 connections:
In [16]: %time c = nest.GetConnections()
CPU times: user 66.5 ms, sys: 8.09 ms, total: 74.6 ms
Wall time: 75.7 ms
In [17]: %time c = nest.GetConnections().weight
CPU times: user 869 ms, sys: 75.3 ms, total: 944 ms
Wall time: 955 ms
In [18]: %time c = nest.GetConnections().get("weight", output="pandas")
CPU times: user 1.69 s, sys: 186 ms, total: 1.88 s
Wall time: 1.9 s
Clearly, GetConnections() is quite fast, while reading out the weights costs. What maybe surprised me most is that turning the data as a Pandas DataFrame costs a whole second extra—I wonder if we do something suboptimal here.
Best,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser(a)nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home http://arken.nmbu.no/~plesser
Hi all,
Under some circumstances simulations can slow down up to the point where the nest.Simulate() does not advance anymore and stays stuck at a given virtual time, with a "realtime factor" of 0. I suppose this can happen for instance when a network falls into a regime of runaway excitation in which a massive number of spikes are being exchanged.
I'm looking for a way to stop the simulation in such a case, (say when the realtime factor goes below a set threshold, or when the output files are not updated for a certain duration), ideally in such a way that the program can continue running rather than crashing. If anyone has a suggestion about how to go around this issue I'd be happy to hear it.
Thanks in advance! Best, Tom
Dear NEST Users subscribers,
In the last 24 hours, you unfortunately received two spam emails via NEST Users. This happened as someone exploited our approach of managing NEST Users based on trust. So far, we allow all registered subscribers to send mails to the list without further control, and we generally accept all subscription requests without double-checking that the requests really come from a person with a genuine interest in NEST. This time, someone exploited our trust to spread spam.
We will review our policies to avoid undue spamming, but I do hope we will be able to continue in the spirit of trust that has so far been a hallmark of the NEST Community.
Let me close with a bit of advertising of my own: Do not forget to submit your abstract to the NEST Conference 2021 at https://www.nest-simulator.org/conference!
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser(a)nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home http://arken.nmbu.no/~plesser
With an abundance of alternative Delta-8 products online to choose from, a potential buyer needs only to find a credible retailer. It's important for potential customers to make sure they are not being ripped off when ordering the product online. Legitimate Delta-8 distributors will always include a free trial sample, allowing prospective buyers to try out the product without having to pay. For those who are worried about wasting time and Delta-8 cannabis in general, there is no need to worry. If a distributor does not include samples, that means the products being offered are either fakes or contain too much filler.
There are many different kinds of Delta-8 products online, with a wide range of products to suit just about any kind of preference. From Delta-8 Straight Hemp to Delta-8 CBD, users can find a product that will match their tastes and budget. If one is interested in the product but cannot decide which one, there are many other choices, including Delta-8 Straight Potency, Delta-8 Heavy Strength and Delta-8 Potency. These products can be ordered online, which is convenient and fast. There are also various forms of Delta-8 cannabis, including Delta-8 cannabis, shatter or crumble, wax crack, strain, tincture, oil, and liquid. Even concentrated Delta-8 cannabis is available in different forms such as Delta-8 Hash, Delta-8 THC, and Delta-8 Soft Wax.
Visit: https://area52.com/delta-8-products/
Delta-8 offers lots of medical benefits. It helps lessen the symptoms of arthritis and joint pain, it can help people deal with nausea and vomiting, and it can even help with the effects of chemotherapy and other kinds of cancer treatments. Delta-8 also has plenty of other health benefits to offer. Those who take the delta-8 in conjunction with a natural remedy should find that they have more energy and fewer health complications. Delta-8 for sale is highly recommended as a natural remedy for those who are suffering from chronic illnesses.
Delta-8 is sold as a pill and comes in capsule form. However, if you prefer it in tea form, you can purchase Delta-8 in capsule form from many different medical sources throughout Canada. There are several vendors online that sell Delta-8 for sale. You can browse through the selection and choose a vendor that is close to your home or office. Make sure that the Delta-8 that you purchase is made by a reputable company. Medical cannabis suppliers are regulated by Health Canada, so you can be sure that you are purchasing a product that is pure and free of contaminants.
Visit: https://area52.com/delta-8-products/
Dear NEST Users & Developers!
I would like to invite you to our next fortnightly Open NEST Developer
Video Conference, today
Monday 26 April, 11.30-12.30 CEST (UTC+2).
As usual, in the Project team round, a contact person of each team will
give a short statement summarizing ongoing work in the team and
cross-cutting points that need discussion among the teams. The remainder
of the meeting we would go into a more in-depth discussion of topics
that came up on the mailing list or that are suggested by the teams.
Today there will be an update and discussion about style guides for
documentation and code.
Agenda
Welcome
Review of NEST User Mailing List
Project team round
In-depth discussion
* NEST Documentation Style Guide (#1986
<https://github.com/nest/nest-simulator/pull/1986>)
* Single vs double quotes for Python strings? See also this discussion
<https://github.com/nest/nest-simulator/pull/1986#discussion_r610373605>
* Which well-established style guide to build on? See also this
discussion
<https://github.com/nest/nest-simulator/pull/1986#discussion_r613510749>
The agenda for this meeting is also available online, see
https://github.com/nest/nest-simulator/wiki/2021-04-26-Open-NEST-Developer-…
Looking forward to seeing you soon!
best,
Dennis Terhorst
------------------
Log-in information
------------------
We use a virtual conference room provided by DFN (Deutsches Forschungsnetz).
You can use the web client to connect. We however encourage everyone to
use a headset for better audio quality or even a proper video
conferencing system (see below) or software when available.
Web client
* Visit https://conf.dfn.de/webapp/conference/97938800
* Enter your name and allow your browser to use camera and microphone
* The conference does not need a PIN to join, just click join and you're in.
In case you see a dfnconf logo and the phrase "Auf den
Meetingveranstalter warten", just be patient, the meeting host needs to
join first (a voice will tell you).
VC system/software
How to log in with a video conferencing system, depends on you VC system
or software.
- Using the H.323 protocol (eg Polycom): vc.dfn.net##97938800 or
194.95.240.2##97938800
- Using the SIP protocol:97938800@vc.dfn.de
- By telephone: +49-30-200-97938800
For those who do not have a video conference system or suitable
software, Polycom provides a pretty good free app for iOS and Android,
so you can join from your tablet (Polycom RealPresence Mobile, available
from AppStore/PlayStore). Note that firewalls may interfere with
videoconferencing in various and sometimes confusing ways.
For more technical information on logging in from various VC systems,
please see
http://vcc.zih.tu-dresden.de/index.php?linkid=1.1.3.4
Dear NEST Users and Developers!
After a long and demanding process, we merged pull request #1549 into the NEST master branch earlier this afternoon. It replaces the old random number generator suite in NEST completely with a new one based on the C++ Standard Library and also providing generators from the Random123 library, including cryptographic generators.
The most important change for users is that you can now much more easily seed generators and change the type of random number generator used. To seed, you only need a single seed—NEST will take care of everything else:
nest.SetKernelStatus({'rng_seed': 12345})
is all it takes. To select a different RNG type, use
nest.SetKernelStatus({'rng_type': 'mt19937'})
To see all available RNG types, use
nest.GetKernelStatus('rng_types')
For more information, see https://nest-simulator.readthedocs.io/en/latest/guides/nest2_to_nest3/nest2….
I hope this change will motivate everyone to even more systematically explore their models with a wide range of seeds and with different random number generator types.
Existing simulation scripts, which otherwise are compatible with NEST master will only need to change the part of the script related to seeding and RNG selection.
Because we now use a completely different internal architecture to provide random numbers, the actual sequence of random numbers provided will be different from before. This means that it is not possible to exactly reproduce spike trains obtained with the old RNG setup. Statistically, though, results shall be identical. If you should observe any unexpected deviations in results after switching to the new RNG scheme, please contact us!
I would like to thank everyone who has contributed to this effort over a long time, especially Håkon and Jochen for their design and development work, and Johanna and Jasper for generating a lot of test data.
With the new RNGs, the last major component for NEST3 is now integrated into the NEST master branch and we are very optimistic to finally make the NEST3 release before this summer.
Best regards,
Hans Ekkehard
--
Prof. Dr. Hans Ekkehard Plesser
Head, Department of Data Science
Faculty of Science and Technology
Norwegian University of Life Sciences
PO Box 5003, 1432 Aas, Norway
Phone +47 6723 1560
Email hans.ekkehard.plesser(a)nmbu.no<mailto:hans.ekkehard.plesser@nmbu.no>
Home http://arken.nmbu.no/~plesser
Dear developers/users of nest,
I am using the iaf-psc-delta neurons in my network and I need to access the
information on the amount of excitatory and inhibitory input that each
neuron is receiving in time in order to study balance.(so not just I-e but
also the inputs that it is getting from other neurons in the randomly
connected network). Can you please help me with this?
It would also help if I knew where to find the indices of all the neurons
that are presynaptic to a given neuron (a connectivity matrix). I would
then be able to calculate the input current myself.
Looking forward to hearing from you!
Kind regards,
Parva
Dear NEST community,
I am working with the triplets STDP connection on NEST simulations, and I
am interested in how the weight dynamics change when the spike trains are
altered in some specific ways.
In order to do that, I run a network simulation using NEST and the triplets
STDP rule and save the full spike trains of two neurons which are
synaptically connected (one pre and one post). I then recreate the weight
changes on a code outside the NEST loop, so that I can manipulate the spike
trains and observe what happens to the synaptic weights.
Trying to validate this approach, though, I find that my code (outside NEST
loop) generates different weight values than the NEST simulation when using
the same spike trains generated during the simulation. I guess I have some
error in my implementation of the triplets rule. I thought it could be
something with the implementation of the delays, or the moment when the
weights are measured in the simulation, but I have had no success trying to
fix it yet.
I know this is not exactly a NEST issue, but I thought I would give it a
try and ask here at the list. In case someone has already worked with the
triplets rule and could point me out to what is/could be wrong in my
implementation, I would very much appreciate it :)
Thanks!
best,
Júlia
Hello,
I am having a basic problem creating layers with topology (pyhton 3.6 and NEST 2.20.1). It always complains about the dictionary sent to CreateLayer, telling it is a number. The code below correctly prints
<class 'dict'>
but prints this error:
Traceback (most recent call last):
File "test/binary_gdf.py", line 9, in <module>
kk=tp.CreateLayer({'extent': [1, 1],'rows': 20, 'columns': 20,'elements' : 'izhikevich','edge_wrap':True})
File "/home/neurobit/local/nest-py3/lib64/python3.6/site-packages/nest/topology/hl_api.py", line 650, in CreateLayer
return topology_func('{ CreateLayer } Map', specs)
File "/home/neurobit/local/nest-py3/lib64/python3.6/site-packages/nest/topology/ll_api.py", line 61, in topology_func
return nest.ll_api.sli_func(slifunc, *args)
File "/home/neurobit/local/nest-py3/lib64/python3.6/site-packages/nest/ll_api.py", line 182, in sli_func
sli_run(slifun) # SLI support code to execute s on args
File "/home/neurobit/local/nest-py3/lib64/python3.6/site-packages/nest/ll_api.py", line 132, in catching_sli_run
raise exceptionCls(commandname, message)
nest.lib.hl_api_exceptions.TypeMismatch: ('TypeMismatch in CreateLayer_D: Expected datatype: doubletype\nProvided datatype: integertype', 'TypeMismatch', <SLILiteral: CreateLayer_D>, ': Expected datatype: doubletype\nProvided datatype: integertype')
Any help would be nice :-)
Xavier
----
import nest
import nest.topology as tp
nest.SetKernelStatus({"overwrite_files": True})
my_dict = {'extent': [1, 1],'rows': 20, 'columns': 20,'elements' : 'izhikevich','edge_wrap':True}
print(type(my_dict))
kk=tp.CreateLayer(my_dict)