https://github.com/nrnhines/ringtest
I could do all the steps before 'Building CoreNEURON with GPU support'.
When I tried GPU part, I have some problems...
There was an error while doing cmake as shown below.
Code: Select all
module purge
module load pgi/18.4 openmpi/2.1.2/2018
module load cuda/9.0
export CC=mpicc
export CXX=mpicxx
cd $SOURCE_DIR/ringtest
mkdir -p coreneuron_x86_gpu && cd coreneuron_x86_gpu
cmake $BASE_DIR/sources/CoreNeuron -DADDITIONAL_MECHPATH=$SOURCE_DIR/ringtest/mod -DCMAKE_C_FLAGS:STRING="-O2" -DCMAKE_CXX_FLAGS:STRING="-O2" -DCOMPILE_LIBRARY_TYPE=STATIC -DCUDA_HOST_COMPILER=`which gcc` -DCUDA_PROPAGATE_HOST_FLAGS=OFF -DENABLE_SELECTIVE_GPU_PROFILING=ON -DENABLE_OPENACC=ON
Code: Select all
-- Found MPI_C: /usr/pgi/linux86-64/2018/mpi/openmpi-2.1.2/bin/mpicc (found version "3.1")
-- Could NOT find MPI_CXX (missing: MPI_CXX_WORKS)
CMake Error at /usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find MPI (missing: MPI_CXX_FOUND) (found version "3.1")
Call Stack (most recent call first):
/usr/share/cmake-3.11/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)
/usr/share/cmake-3.11/Modules/FindMPI.cmake:1663 (find_package_handle_standard_args)
CMakeLists.txt:97 (find_package)
I could solve the above problem, but, make generated below errors.
Code: Select all
module purge
module load pgi/18.4
module load cuda/9.0
export CC=mpicc
export CXX=mpicxx
cd $SOURCE_DIR/ringtest
mkdir -p coreneuron_x86_gpu && cd coreneuron_x86_gpu
cmake $BASE_DIR/sources/CoreNeuron -DADDITIONAL_MECHPATH=$SOURCE_DIR/ringtest/mod -DCMAKE_C_FLAGS:STRING="-O2" -DCMAKE_CXX_FLAGS:STRING="-O2" -DCOMPILE_LIBRARY_TYPE=STATIC -DCUDA_HOST_COMPILER=`which gcc` -DCUDA_PROPAGATE_HOST_FLAGS=OFF -DENABLE_SELECTIVE_GPU_PROFILING=ON -DENABLE_OPENACC=ON
make VERBOSE=1 -j
Code: Select all
Install the project...
/usr/bin/cmake -P cmake_install.cmake
-- Install configuration: "Release"
-- Installing: /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/external/mod2c/share/nrnunits.lib
-- Installing: /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/external/mod2c/bin/mod2c_core
make[3]: Leaving directory '/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/mod2c-prefix/src/mod2c-build'
cd /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/mod2c-prefix/src/mod2c-build && /usr/bin/cmake -E touch /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/mod2c-prefix/src/mod2c-stamp/mod2c-install
[ 10%] Completed 'mod2c'
/usr/bin/cmake -E make_directory /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/CMakeFiles
/usr/bin/cmake -E touch /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/CMakeFiles/mod2c-complete
/usr/bin/cmake -E touch /home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/mod2c-prefix/src/mod2c-stamp/mod2c-done
make[2]: Leaving directory '/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu'
[ 10%] Built target mod2c
make[1]: Leaving directory '/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu'
make: *** [Makefile:141: all] Error 2
Code: Select all
nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
CMake Error at cudacoreneuron_generated_cuda_profile.cu.o.RelWithDebInfo.cmake:215 (message):
Error generating
/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/coreneuron/CMakeFiles/cudacoreneuron.dir/nrniv/./cudacoreneuron_generated_cuda_profile.cu.o
nvcc fatal : Value 'sm_20' is not defined for option 'gpu-architecture'
CMake Error at cudacoreneuron_generated_nrnran123.cu.o.RelWithDebInfo.cmake:215 (message):
Error generating
/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu/coreneuron/CMakeFiles/cudacoreneuron.dir/utils/randoms/./cudacoreneuron_generated_nrnran123.cu.o
make[2]: *** [coreneuron/CMakeFiles/cudacoreneuron.dir/build.make:65: coreneuron/CMakeFiles/cudacoreneuron.dir/nrniv/cudacoreneuron_generated_cuda_profile.cu.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [coreneuron/CMakeFiles/cudacoreneuron.dir/build.make:72: coreneuron/CMakeFiles/cudacoreneuron.dir/utils/randoms/cudacoreneuron_generated_nrnran123.cu.o] Error 1
make[2]: Leaving directory '/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu'
make[1]: *** [CMakeFiles/Makefile2:1020: coreneuron/CMakeFiles/cudacoreneuron.dir/all] Error 2
make[1]: Leaving directory '/home/john.gwak/coreneuron_tutorial/sources/ringtest/coreneuron_x86_gpu'
make: *** [Makefile:141: all] Error 2
Code: Select all
Linux hodgkin 4.9.0-6-amd64 #1 SMP Debian 4.9.88-1+deb9u1 (2018-05-07) x86_64 GNU/Linux
And... I have some questions about parallel simulations.
According to this tutorial, there are many ways to run parallel simulations.
NEURON with MPI, CoreNEURON on CPU (maybe with MPI?) and CoreNEURON on GPU (without MPI?).
Then, what is the difference between NEURON with MPI and CoreNEURON on CPU (with MPI)? what makes CoreNEURON faster??
In case of CoreNEURON with CPU and GPU, what will be running on GPU?
Thanks in advance :)