by

Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Jan 30 2019 17:07
    mstimberg commented #1047
  • Jan 30 2019 16:53
    thesamovar commented #1047
  • Jan 30 2019 15:40
    mstimberg commented #1047
  • Jan 30 2019 12:16
    daphn3cor closed #1048
  • Jan 30 2019 12:15
    daphn3cor commented #1048
  • Jan 30 2019 10:33
    mstimberg synchronize #1047
  • Jan 30 2019 10:33

    mstimberg on function_compiler_kwds

    Add .c and .pxd to the list of … Make Cython compilation quiet a… (compare)

  • Jan 30 2019 09:57
    mstimberg edited #1047
  • Jan 30 2019 09:56
    mstimberg synchronize #1047
  • Jan 30 2019 09:56

    mstimberg on function_compiler_kwds

    Document the new features for u… (compare)

  • Jan 30 2019 09:56
    mstimberg commented #1048
  • Jan 30 2019 07:59
    daphn3cor commented #1048
  • Jan 29 2019 16:30
    mstimberg commented #1048
  • Jan 29 2019 15:42
    daphn3cor opened #1048
  • Jan 29 2019 14:44
    mstimberg synchronize #1047
  • Jan 29 2019 14:44

    mstimberg on function_compiler_kwds

    Include external source files a… (compare)

  • Jan 29 2019 13:48
    mstimberg synchronize #1047
  • Jan 29 2019 13:48

    mstimberg on function_compiler_kwds

    Minor bug-fixes for new additio… Support external source files f… Add tests for functions with ex… (compare)

  • Jan 25 2019 17:34
    thesamovar commented #1047
  • Jan 25 2019 17:26
    mstimberg opened #1047
LNaumann
@LNaumann
I only used the default_float_type way because I thought this would sett all dtypes but apparently it's not. That definitely gives another factor 2.
Probably the network you just simulated is a lot simpler than my full one. The memory load without any monitors is already at about 4 GB so if the PopulationRateMonitor adds another 4-5 GB this gets much closer to my 10GB cluster limit. Although it still doesn't explain the failure on my desktop.
I have 180 GB free on the desktop and even more on the cluster so that can't be it.
Marcel Stimberg
@mstimberg
Sure, my network only had the monitor and a small `NeuronGroup, but I was thinking about your desktop with 32GB
LNaumann
@LNaumann
Yes, using default timestep. But rk4 integration method mostly if that adds anything
Marcel Stimberg
@mstimberg
No, that shouldn't make a difference here.
LNaumann
@LNaumann
Is there something like a built-in limit of disk space Brian is allowed to use? I still don't understand why there's no information about memory error in the error message although that seems to be the underlying problem..
Marcel Stimberg
@mstimberg
No, Brian itself does not have any limit like that.
Under Linux, you get the simple message "Killed" if the kernel kills your process, e.g. because it uses too much memory.
But I think you should get the reason why it killed the process in /var/log/kern.log? Not sure
LNaumann
@LNaumann
I can check that
Marcel Stimberg
@mstimberg
Just speculating wildly: do you maybe use set_device('cpp_standalone', directory=None), i.e. have standalone mode write to a directory in /tmp/?
LNaumann
@LNaumann
Yes, or at least similar. I use set_device('cpp_standalone, build_on_run_False) and then device.build(directory=None, compile=True, run=True, clean=True, debug=False)
Probably is the same as setting directory=None in set_device?
As far as I remember I chose to do it this way because on the cluster I'm running simulations in parallel so I would have to specify different output files manually such that they don't overwrite each other. Correct me if I'm wrong.
Marcel Stimberg
@mstimberg
This is perfectly fine in general, but it might actually be the reason for your problems: /tmp is often on a different partition with less disk space, or it might even be a virtual disk in RAM (which is great for speed but less great if you fill it up with a lot of data which is also held in RAM).
LNaumann
@LNaumann
Oh ok that would make a lot of sense. I actually do have another tmp dir for every run which I could just use instead of /tmp.
I will rerun the simulations with that directory and see if it finishes - although this usually takes 1-2 days. I still think that 4GB for the PopulationRateMonitor alone is quite a lot though.
Marcel Stimberg
@mstimberg
There's certainly a lot of room for improvement here. There are some easy things to fix (use the default_float_dtype for storing the time and using it as a default for the rate) that would help a bit, and then of course it would be very useful to have support for binning during the simulation.
One thing that could be improved for all simulators would be to be smarter about storing (or rather not storing) the time points
*simulators --> monitors
wesleypclawson
@wesleypclawson
Is there a typical culprit when the error is KeyError: 'The identifier "zoo" could not be resolved.'
Marcel Stimberg
@mstimberg
Well, it means that you refer to "zoo" somewhere, but there is no variable/parameter called "zoo" in your equations, and there is neither a global constant (i.e. a scalar variable defined somewhere in the Python script) of that name
wesleypclawson
@wesleypclawson
That's what I thought too - but "zoo" doesn't exist in my code. A ctrl+F places it only in the error message. Is 'zoo' a placeholder for something internally?
Marcel Stimberg
@mstimberg
Oh, that changes things!
wesleypclawson
@wesleypclawson
I'd be happy to send you my code if you want
I know it's late though =)
Marcel Stimberg
@mstimberg
This can sometimes happen if sympy transforms your equations in a way that generates new symbols...
Just checked, zoo indeed means something in sympy, apparently it is "complex infinity"
wesleypclawson
@wesleypclawson
oh great!
Marcel Stimberg
@mstimberg
Do you chose an integration algorithm (i.e. the method argument) or do you let Brian chose it?
wesleypclawson
@wesleypclawson
I normally use 'euler'
Marcel Stimberg
@mstimberg
Hmm, for euler sympy shouldn't do much to the equations...
wesleypclawson
@wesleypclawson
Although, the paper I'm working off is using rk2
Marcel Stimberg
@mstimberg
That should be fine as well, I would have expected this kind of problem only when trying to solve some complex equations analytically. If sympy thinks it managed to do it, but the solution includes "complex infinity"
The error message should include a pointer to the object that triggered the error
wesleypclawson
@wesleypclawson
I'll dig in
Marcel Stimberg
@mstimberg
(i.e. most likely the NeuronGroup)
wesleypclawson
@wesleypclawson
Thanks =)
I might be multiplying into some weird infinite space on accident. Originally, I used the ODE for the biexponential synapse proposed on readthedocs, but couldn't get it to act the way I thought it should. So I switched to having 'two' exponential currents that subtracted from one another. However, I ran into the input problem I posted on the email list. So I'm trying to switch back to the ODE again, but struggling haha
Marcel Stimberg
@mstimberg
good luck :)
wesleypclawson
@wesleypclawson
Appreciate it. Thanks for the hard work!
KHALID LODHI
@khalid17160
Hey, I want to plot instantaneous spiking rate plot using brian, please any suggestion
Marcel Stimberg
@mstimberg
Hi @khalid17160 . You can record the spike rate with a PopulationRateMonitor and then plot it with the usual matplotlib tools. To make things simpler, you can install the brian2tools package which comes with helpful plotting tools.
KHALID LODHI
@khalid17160
Hi @mstimberg , ok I will try through that method, thanks.
Also, I am trying to plot neucotical models, and I have to do synapse in it .

The simpli"ed cortical neuron model de-
veloped above was designed to be used in
network simulations. To accomplish this it is
necessary to introduce synaptic interconnections
among multiple model neurons. A simple way to
do this is through a di!erential equation formula-
tion of Rall's (1967, 1989) alpha function. This
requires adding the following two equations to
the four in eqn (5):
df
dt
" 1
q
syn
(!f#Hvs(<pre!))),
dS
dt
" 1
q
syn
(!S#f ), (8)
where
Hvs(<pre!))"
G
1 if <pre!)'0,
0 if <pre!))0.

<pre is the membrane potential of the pre-synaptic
neuron, ) is the threshold for a synaptic conduc-
atance change, and Hvs is the Heaviside step
function. With )"!0.1 (i.e. !10 mV), the
equations for f and S are only activated during
the peak of the pre-synaptic spike. The e!ect of
S on the membrane potential < of the post-
synaptic neuron is given through addition of the
term
!g
synS(<!Esyn)
to the d</dt equation in eqn (5).

This has a heavy side function, If anyone could help me out, how can i do that.
@mstimberg
@mstimberg