Problem with synapses creation in MULTISPLIT

General issues of interest both for network and
individual cell parallelization.

Moderator: hines

Post Reply
jackfolla
Posts: 48
Joined: Wed Jul 07, 2010 7:42 am

Problem with synapses creation in MULTISPLIT

Post by jackfolla »

Dear all,
I'm trying to solve a problem with the synapses creation in a MULTISPLIT simulation.

My problem is the following:

I have 2 procedures for synapses creation, which are:

Code: Select all

proc create_syn_NMDA() { local i  localobj tobj
	for i = 0, $1-1 {
		tobj = new Exp2Syn(0.5)
		tobj.tau1=1
		tobj.tau2=10
		tobj.e=0
		syn1list.append(tobj)
	}
}

proc create_syn_GLU() { local i localobj tobj
	for i = 0, $1-1 {
		tobj = new Exp2Syn(0.5)
		tobj.tau1=0.5
		tobj.tau2=3
		tobj.e=0
		syn3list.append(tobj)
	}
}
If I call

Code: Select all

create_syn_NMDA(n_NMDA_tot)
create_syn_GLU(n_GLU_tot)
prior to

Code: Select all

{pc.multisplit()}
{pc.set_maxstep(100)}
the program returns different outputs (in terms of spikes numbers and spikes times) for 1, or 2, or 4 or 8 hosts.

But if I comment the following instructions

Code: Select all

proc create_syn_NMDA() { local i  localobj tobj
	for i = 0, $1-1 {
		tobj = new Exp2Syn(0.5)
		/*tobj.tau1=1
		tobj.tau2=10
		tobj.e=0*/
		syn1list.append(tobj)
	}
}

proc create_syn_GLU() { local i localobj tobj
	for i = 0, $1-1 {
		tobj = new Exp2Syn(0.5)
		/*tobj.tau1=0.5
		tobj.tau2=3
		tobj.e=0*/
		syn3list.append(tobj)
	}
}
the outputs are the same for 1, 2, 4 and 8 hosts...

So, I thought to move the calling of

Code: Select all

create_syn_NMDA(n_NMDA_tot)
create_syn_GLU(n_GLU_tot)
after

Code: Select all

{pc.multisplit()}
{pc.set_maxstep(100)}
in the following way:

Code: Select all

for i=0, $3-1 {
	dbl_precision(32)
	{pc.multisplit()}
	{pc.set_maxstep(100)}
	/////place synapses///////
	rs1.r.discunif(0, ndend-1)
	rs2.r.uniform(0.7,1)
	rs3.r.discunif(0, napical_dend-1)
	rs4.r.uniform(0.7,1)
	rsstim.r.uniform(0, 10)
	create_syn_NMDA(n_NMDA_tot)
	create_syn_GLU(n_GLU_tot)
	place_syn_GLU_NMDA(nsyn)
	place_syn_NMDA(n_NMDA,nsyn)
	stimul_syn(n_NMDA,nsyn,$1)
        ...
Now, both commenting or not commenting the code in proc create_syn_NMDA() and proc create_syn_GLU() the outputs are the same for 1 and 2 hosts (and these outputs coincide with the previous output using 1 host), but for 4 and 8 hosts... the program returns different results.

I know that in this way it is very difficult to understand the problem in detail, so, if someone is interested to help me, I can send an email with the program source code (with the relative instructions to run the program).

Thanks.
hines
Site Admin
Posts: 1619
Joined: Wed May 18, 2005 3:32 pm

Re: Problem with synapses creation in MULTISPLIT

Post by hines »

All your synapses are being created at the same location and that seems
unusual for a multisplit simulation. Depending on splitting, the default
currently accessed section will be different for the same cell on different
processors unless the synapses are placed prior to splitting. However,
I have a feeling I am completely missing your point and would need the
complete model that could be easily and quickly run as an mpi job.
Send the zip file to michael dot hines at yale dot edu .
jackfolla
Posts: 48
Joined: Wed Jul 07, 2010 7:42 am

Re: Problem with synapses creation in MULTISPLIT

Post by jackfolla »

Dear Hines,
thanks for your help.
I sent you an email with the ref. to the forum thread.

In attach, I added the source code.

Thanks,
Pasquale.
Post Reply