Parallel network simulations with NEURON (Migliore et al 2006)

 Download zip file   Auto-launch 
Help downloading and running models
Accession:64229
The NEURON simulation environment has been extended to support parallel network simulations. The performance of three published network models with very different spike patterns exhibits superlinear speedup on Beowulf clusters.
Reference:
1 . Migliore M, Cannia C, Lytton WW, Markram H, Hines ML (2006) Parallel network simulations with NEURON. J Comput Neurosci 21:119-29 [PubMed]
Citations  Citation Browser
Model Information (Click on a link to find other models with that property)
Model Type: Realistic Network;
Brain Region(s)/Organism:
Cell Type(s):
Channel(s):
Gap Junctions:
Receptor(s):
Gene(s):
Transmitter(s):
Simulation Environment: NEURON;
Model Concept(s): Methods;
Implementer(s): Hines, Michael [Michael.Hines at Yale.edu];
/
netmod
parbulbNet
README *
cadecay.mod *
flushf.mod *
kA.mod *
kca.mod *
kfasttab.mod *
kM.mod *
kslowtab.mod *
lcafixed.mod *
nafast.mod *
nagran.mod *
nmdanet.mod *
bulb.hoc
calcisilag.hoc *
ddi_baseline.gnu *
ddi_baseline.ses *
experiment_ddi_baseline.hoc *
experiment_odour_baseline.hoc *
granule.tem *
init.hoc *
input.hoc *
input1 *
mathslib.hoc *
mitral.tem *
modstat
mosinit.hoc *
odour_baseline.gnu *
odour_baseline.ses *
par_batch1.hoc
par_bulb.hoc
par_calcisilag.hoc
par_experiment_ddi_baseline.hoc
par_granule.tem
par_init.hoc
par_input.hoc
par_mitral.tem
par_netpar.hoc
par_notes
parameters_ddi_baseline.hoc *
parameters_odour_baseline.hoc *
screenshot.png *
tabchannels.dat *
tabchannels.hoc *
test1.sh
                            
// mathslib.hoc
// Collection of miscellaneous maths functions
// Andrew Davison, The Babraham Institute, 2000.

// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// mod(x,y)
// Returns a number between 0 and y-
// e.g. mod(7,4) returns 3

func mod() { local x	// 2 args - $1 mod $2
  x = $1
  while (x < 0) {
    x = x+$2
  }
  while (x >= $2) {
    x = x-$2
  }
  return x
}


// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// arraymax(M) and arraymin(M)
// Return maximum and minimum elements of a matrix object

objref mymaths_work
mymaths_work = new Vector()

func arraymax() { local i, max // arg - matrix object
  max = -1e10
  for i = 0,$o1.nrow-1 {
    mymaths_work = $o1.getrow(i)
    if (mymaths_work.max() > max) { max = mymaths_work.max() }
  }
  return max
}

func arraymin() { local i, min // arg - matrix object
  min = 1e10
  for i = 0,$o1.nrow-1 {
    mymaths_work = $o1.getrow(i)
    if (mymaths_work.min() < min) { min = mymaths_work.min() }
  }
  return min
}


// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// nint(x)
// Returns nearest integer
// e.g. nint(3.6) returns 4

func nint() {
  if ( abs($1 - int($1)) <= 0.5) {
    return int($1)
  } else {
    if ($1 < 0) { return int($1)-1 }
    if ($1 >= 0) { return int($1)+1 }
  }
}


// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
// invabs(x)
// Returns absolute value of the inverse of the argument
// e.g. invabs(-2) returns 0.5

func invabs() {
  if ($1 == 0) {
    print "Error in invabs(): divide by zero"
    return 1e3
  } else {
    return abs(1.0/$1)
  }
}


// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=