Skip to content

Instantly share code, notes, and snippets.

@xulman
Last active March 7, 2021 17:34
Show Gist options
  • Save xulman/07fbaa26108cc5fa90568f805005513e to your computer and use it in GitHub Desktop.
Save xulman/07fbaa26108cc5fa90568f805005513e to your computer and use it in GitHub Desktop.
How to compile EmbryoGen on IT4I's supercomputers
# plan:
# -----
# 1) get EmbryoGen source code
# 2) set up the environment
# a) with: module add git, then GCC/10.2.0, CMake, OpenMPI/4.0.5-GCC-10.2.0
# b) calling a script from EmbryoGen's repo
# 3) download, compile and install locally all necessary libs
# 4) setup & compile EmbryoGen
# ...detailed:
# ------------
# 1) get EmbryoGen source code
git clone git@github.com:xulman/EmbryoGen.git
(or: git clone https://github.com/xulman/EmbryoGen.git ...if it works better for you)
cd EmbryoGen
# 2) set up the environment
. libs/addModulesAtIT4I (or . libs/addModulesAtIT4I_salomon)
# 3) download, compile and install locally all necessary libs
cd libs
./prepareEverything.sh
# grab a coffee... and note the last printed hint
cd ..
# 4) setup & compile EmbryoGen
mkdir BUILD
cd BUILD
cmake -D FEATURE_RUNDISTRIBUTED=ON .. (or cmake -D FEATURE_USEOpenMP=ON ..)
cmake -D ZeroMQ_DIR=$PWD/../libs/DEPLOY/lib64/cmake/ZeroMQ \
-D INC_I3D=$PWD/../libs/DEPLOY/include \
-D INC_GSL=$PWD/../libs/DEPLOY/include \
-D INC_CPPZMQ=$PWD/../libs/DEPLOY/include \
-D INC_DAISwp13=$PWD/../libs/DEPLOY/include \
-D LIB_DAISwp13=$PWD/../libs/DEPLOY/lib64/libDAIS-wp13.a \
-D SEARCH_ALL_DEPLIBS=ON \
-D SEARCH_FOR_STATIC=ON \
-D CMAKE_LIBRARY_PATH=$PWD/../libs/DEPLOY/lib64 ..
# notes:
# ------
# yes, the 'cmake' indeed needs to be run twice!
- in the first run, the standard installation of openmpi is found
- in the second run, the search paths is reset to where we had prepared 3rd party libs,
in consequence, the openmpi (and openMP too) will no longer be found
- hopefully, CMake does not re-detect what's already been detected...
- and yes, it is normal that quite some error messages are displayed in the first round
# how to override to different installation of OpenMPI?
- start CMake in GUI: ccmake ..
- hit 'T' (advanced options)
- locate MPIEXEC_EXECUTABLE and adjust it to point on the 'mpiexec' you wish to run
- delete (with 'D') all other MPIEXEC_* and MPI_* options
- hopefully, CMake will re-set everything to match the installation of 'mpiexec' of your choice above
- since one sets the path to openmpi explicitly, this operation can be done anytime later
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment