multisplit checkbox preconditions
Posted: Sun Mar 29, 2009 12:34 am
I'm running Neuron 7.0 (281:80827e3cd201) and have been experimenting with multisplit. What preconditions are necessary before checking the "multisplit" box in the parallel computing toolbox so that the simple act of checking the box does not result in an error?
For example, I experimented with the ca3a.geo file from http://senselab.med.yale.edu/ModelDB/Sh ... odel=20007
If inside neuron I typed «load_file("ca3a.geo")» and then «forall nseg=5», I could open the parallel computing toolbox and click multisplit without incident. If, instead, I used «forall nseg=6», checking the multisplit box gives the error:
No children of soma(0.416667)
/usr/local/nrn/x86_64/bin/nrniv: LoadBalance failure:
near line 4
{multisplit(multisplit_)}
^
LoadBalance[3].execerror("LoadBalance failure:")
LoadBalance[3].ms_split(Vector[54], 0, 0.416667, 7, 443.4)
LoadBalance[3].multisplit(0, 443.4, Vector[54])
ParallelComputeTool[0].use_thread()
and others
What does this error mean? Does multisplit assume that there are an odd number of segments? (There are obvious reasons to use an odd number of segments, but I'm trying to understand what multisplit needs.)
When I use the model I'm interested in (which runs fine in a non-parallel setting) with an odd number of segments and hit the multisplit checkbox, I get the error:
/usr/local/nrn/x86_64/bin/nrniv: Segmentation violation
near line 1
{multisplit(multisplit_)}
^
ParallelContext[0].multisplit()
ParallelComputeTool[0].use_thread()
ParallelComputeTool[0].multisplit(1)
I haven't found a short example that causes a similar problem, but my basic question is the same: what is assumed by the code that runs when the multisplit box is checked?
Thanks.
For example, I experimented with the ca3a.geo file from http://senselab.med.yale.edu/ModelDB/Sh ... odel=20007
If inside neuron I typed «load_file("ca3a.geo")» and then «forall nseg=5», I could open the parallel computing toolbox and click multisplit without incident. If, instead, I used «forall nseg=6», checking the multisplit box gives the error:
No children of soma(0.416667)
/usr/local/nrn/x86_64/bin/nrniv: LoadBalance failure:
near line 4
{multisplit(multisplit_)}
^
LoadBalance[3].execerror("LoadBalance failure:")
LoadBalance[3].ms_split(Vector[54], 0, 0.416667, 7, 443.4)
LoadBalance[3].multisplit(0, 443.4, Vector[54])
ParallelComputeTool[0].use_thread()
and others
What does this error mean? Does multisplit assume that there are an odd number of segments? (There are obvious reasons to use an odd number of segments, but I'm trying to understand what multisplit needs.)
When I use the model I'm interested in (which runs fine in a non-parallel setting) with an odd number of segments and hit the multisplit checkbox, I get the error:
/usr/local/nrn/x86_64/bin/nrniv: Segmentation violation
near line 1
{multisplit(multisplit_)}
^
ParallelContext[0].multisplit()
ParallelComputeTool[0].use_thread()
ParallelComputeTool[0].multisplit(1)
I haven't found a short example that causes a similar problem, but my basic question is the same: what is assumed by the code that runs when the multisplit box is checked?
Thanks.