Different spikes with online and offline CoreNEURON execution (NetPyNE M1)
When CoreNEURON is executed in online mode (from inside NEURON with pc.psolve()) and offline mod (using special-core) with the M1 NetPyNE model it generates different spikes.
To reproduce the issue I have created scripts for installing the proper versions, building the needed packages and running the sims in:
/gpfs/bbp.cscs.ch/home/magkanar/proj16/netpyne_cns_benchmark/clone_repos.sh # clones all the needed repos (CoreNEURON: master, NMODL: master, netpyne: my fork of coreneuron branch)
/gpfs/bbp.cscs.ch/home/magkanar/proj16/netpyne_cns_benchmark/build_for_ispc.sh # builds CoreNEURON with NMODL with ISPC support
/gpfs/bbp.cscs.ch/home/magkanar/proj16/netpyne_cns_benchmark/build_default.sh # needs NMODL installed by build_for_ispc.sh. Installs CoreNEURON with mod2c and NMODL for CPU without any code optimization
/gpfs/bbp.cscs.ch/home/magkanar/proj16/netpyne_cns_benchmark/run_sim_mod2c_separate.sh # compares spieks of CoreNEURON w/ mod2c with online and offline modes and also NEURON
/gpfs/bbp.cscs.ch/home/magkanar/proj16/netpyne_cns_benchmark/run_sim_nmodl_separate.sh # same as above but with NMODL and ISPC backend
cc: @pramodk
The source of this issue was that CoreNEURON in online mode was using cell_permute 1, which generates different results than NEURON.
https://github.com/neuronsimulator/nrn/commit/674dbac2390529e24071488563b3201f004279a3
I update my branch in netpyne to use cell_permute 0 to have the same results as NEURON and CoreNEURON in offline mode.
https://github.com/iomaganaris/netpyne/commit/b80b3f5ab8ec34104274acc9f5517353afde94c7