-
Notifications
You must be signed in to change notification settings - Fork 41
Fixes for building portable wheel : nrnivmodl-core should be usable from wheel #634
Conversation
* do not propogate NEURON MPI flag if CoreNEURON MPI option is explicitly specified * nrnivmodl uses CORENRNHOME env variable instead of CNRNHOE variable * binwrapper.py sets CORENRNHOME same as NRNHOME * update coreneuron to branch BlueBrain/CoreNeuron#634
Logfiles from GitLab pipeline #16159 (:white_check_mark:) have been uploaded here! Status and direct links:
|
fca92bf
to
e41cb5c
Compare
Logfiles from GitLab pipeline #19667 (:white_check_mark:) have been uploaded here! Status and direct links:
|
Still WIP but on BB5 I am testing this with:
and it should create
@alkino : still draft but you can see my ongoing changes in 836267d. |
Logfiles from GitLab pipeline #19704 (:no_entry:) have been uploaded here! Status and direct links:
|
Logfiles from GitLab pipeline #19841 (:no_entry:) have been uploaded here! Status and direct links:
|
2ac1405
to
7187ac5
Compare
Logfiles from GitLab pipeline #19854 (:no_entry:) have been uploaded here! Status and direct links:
|
1e5bd1b
to
0f4ab0e
Compare
Logfiles from GitLab pipeline #19878 (:white_check_mark:) have been uploaded here! Status and direct links:
|
0f4ab0e
to
2ffcc0b
Compare
* do not propogate NEURON MPI flag if CoreNEURON MPI option is explicitly specified * nrnivmodl uses CORENRNHOME env variable instead of CNRNHOE variable * binwrapper.py sets CORENRNHOME same as NRNHOME * update coreneuron to branch BlueBrain/CoreNeuron#634
Update coreneuron to BlueBrain/CoreNeuron#634
Logfiles from GitLab pipeline #19887 (:white_check_mark:) have been uploaded here! Status and direct links:
|
Logfiles from GitLab pipeline #20108 (:no_entry:) have been uploaded here! Status and direct links:
|
011d528
to
ef48628
Compare
Logfiles from GitLab pipeline #20492 (:no_entry:) have been uploaded here! Status and direct links:
|
* Do not link to MPI libraries if MPI is not enabled * Use CXX compiler set on target machine e.g. via env variable * Perl and Python executable may not be exist in same path. Check for existence before using them. Todo: - [ ] Check is Perl and Python should be set via wrapper? Perl is safe. May be only python is worth.
…N_ENABLE_MPI_DYNAMIC
* this is only supported when build as a submodule of neuron to avoid cmake code duplication * leverage -DNRN_MPI_DYNAMIC="a;b;" option of neuron * MPI distribution specific libcorenrnmpi_<name>.so is built and installed under lib folder * TODO: still need to inrerface with NEURON side On BB5 this is tested with: ``` module load unstable cmake python hpe-mpi flex bison python-dev llvm gcc cmake .. -DCMAKE_INSTALL_PREFIX=`pwd`/install \ -DCORENRN_ENABLE_GPU=OFF -DNRN_ENABLE_INTERVIEWS=OFF -DNRN_ENABLE_RX3D=OFF \ -DNRN_ENABLE_CORENEURON=ON -DCORENRN_ENABLE_NMODL=OFF -DCORENRN_CLANG_FORMAT=ON \ -DNRN_ENABLE_MPI_DYNAMIC=ON \ -DNRN_MPI_DYNAMIC="/gpfs/bbp.cscs.ch/ssd/apps/hpc/jenkins/deploy/externals/2021-01-06/linux-rhel7-x86_64/gcc-9.3.0/intel-mpi-2019.8.254-rrc5ip/impi/2019.8.254/intel64/include/;/gpfs/bbp.cscs.ch/ssd/apps/hpc/jenkins/deploy/externals/2021-01-06/linux-rhel7-x86_64/gcc-9.3.0/hpe-mpi-2.22.hmpt-r52ypu/include;" \ -DCORENRN_CMAKE_FORMAT=ON -DPYTHON_EXECUTABLE=`which python3.8` make -j12 make install ```
* add new CLI option --corenrn-mpi-lib * load & resolve symbols only once * is_quite now passed as argument to nrnmpi_init * remove usage of [dy]ld_library_path
* change --corenrn-mpi-lib to --mpi-lib * use variable for name of the library and targets
* do not compile mpi library with -acc -gpu flags because it results into nasty segfault * to achieve this, do not add OpenACC flags to CMAKE_CXX_FLAGS instead use targe_compile_options() * Profile interface needs to be updated because some cpp files like for mpi library may not have cuda headers because they no longer use -acc flag to compile. Check existance of ACC or CUDA active.
Linker should use -acc -cuda instead of just -cuda
ef48628
to
abd397e
Compare
Logfiles from GitLab pipeline #20872 (:white_check_mark:) have been uploaded here! Status and direct links:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, just a couple of minor things.
re: the error with building too many things with -acc
, do we have an issue to follow up on that?
Logfiles from GitLab pipeline #20938 (:white_check_mark:) have been uploaded here! Status and direct links:
|
I created #674 for this. |
Retest this please |
Logfiles from GitLab pipeline #20945 (:white_check_mark:) have been uploaded here! Status and direct links:
|
Retest this please |
…n#634) * Do not link to MPI libraries if MPI is not enabled * Use CXX compiler set on target machine e.g. via env variable * Perl and Python executable may not be exist in same path. - Check for existence before using them. - Respect CORENRN_PERLEXE and CORENRN_PYTHONEXE env vars set by neuron's wheel wrapper * neuron cmake option consistency: CORENRN_ENABLE_DYNAMIC_MPI -> CORENRN_ENABLE_MPI_DYNAMIC * Build multiple MPI libraries for dynamic MPI support - this is only supported when build as a submodule of neuron to avoid cmake code duplication - leverage -DNRN_MPI_DYNAMIC="a;b;" option of neuron - MPI distribution specific libcorenrnmpi_<name>.so is built and installed under lib folder * Add CLI option --mpi-lib which can accept name of coreneuron MPI library to load * Load & resolve symbols only once * Cleanup and Update tests * Fixes for segfault at finalise with dynamic MPI - do not compile mpi library with -acc -gpu flags because it results into nasty segfault - to achieve this, do not add OpenACC flags to CMAKE_CXX_FLAGS instead use targe_compile_options() - profile interface needs to be updated because some cpp files like for mpi library may not have cuda headers because they no longer use -acc flag to compile. Check existance of ACC or CUDA active. CoreNEURON Repo SHA: BlueBrain/CoreNeuron@ec0a4d4
Check for existence before using them.
Todos:
Perl is safe. May be only python is worth setting.
CI_BRANCHES:NEURON_BRANCH=epic/gpu_wheel,