Skip to content
This repository was archived by the owner on Mar 20, 2023. It is now read-only.
This repository was archived by the owner on Mar 20, 2023. It is now read-only.

Different results with and without OpenMP threads #154

Open
@iomaganaris

Description

@iomaganaris

Tests from testcorenrn repository that simulate more than 1 cell produce different outputs from Neuron when run with CoreNeuron with SoA configuration and more than 1 OpenMP thread.
CoreNeuron was built using the following CMake options:

cmake \
   -G 'Unix Makefiles' \
   -DCMAKE_INSTALL_PREFIX=./install \
   -DCMAKE_BUILD_TYPE=Debug \
   -DCMAKE_C_FLAGS:STRING="-O0" \
   -DCMAKE_CXX_FLAGS:STRING="-O0" \
   -DENABLE_SOA=ON \
   -DCORENEURON_OPENMP=ON \
   -DTEST_MPI_EXEC_BIN="mpirun" \
   -DTEST_EXEC_PREFIX="mpirun;-n;2" \
   -DAUTO_TEST_WITH_SLURM=OFF \
   -DAUTO_TEST_WITH_MPIEXEC=OFF \
   .. /

To run a test (for example "watch" which produces different output):

git clone [email protected]:pramodk/testcorenrn.git
cd testcorenrn
nrnivmodl mod
nrnivmodl-core mod
mkdir testwatchdat
mpirun -n 6 ./x86_64/special -mpi -c sim_time=100 testwatch.hoc
cat out.dat | sort -k 1n,1n -k 2n,2n > out_nrn_watch.spk
export OMP_NUM_THREADS=1
mpirun -n 6 ./x86_64/special-core -mpi -d test${NAME}dat -e 100
diff -w -q out.dat out_nrn_watch.spk // Same results
export OMP_NUM_THREADS=2
mpirun -n 3 ./x86_64/special-core -mpi -d test${NAME}dat -e 100
diff -w -q out.dat out_nrn_watch.spk // Different results

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions