git clone [email protected]:berkeleylab/miqs.git MIQS
cd MIQS
export MIQS_HOME=`pwd`
git submodule init
git submodule update
To compile MIQS software, you need the following dependencies:
GCC
HDF5 libraries 1.10+
Cmake 3.14+
On Linux or MacOS, check out the manual of your software package management tools for installing the above dependencies.
On Cori, run the following command to ensure the compilation environment:
module unload PrgEnv-intel
module load PrgEnv-gnu/6.0.5
module load cray-hdf5-parallel/1.10.5.2
module load cmake/3.14.4
module load gcc
module load openmpi/3.1.3
module load llvm/10.0.0
On nocona cluster at HPCC@TTU, please load the following modules
module load git
module load gcc
module load cmake
module load openmpi
module load hdf5
On Cori supercomputer, you can run the following to make sure dynamic linking is enabled:
export CRAYPE_LINK_TYPE=dynamic
For other platforms, you can enable dynamic linking using platform-specific methods.
cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -H${MIQS_HOME} -B${MIQS_HOME}/build -G "Unix Makefiles"
cmake --build ${MIQS_HOME}/build --config Debug --target install -- -j 14
You can change your CMake build type from Debug
to one of the following
- Release
- MinSizeRel
- RelWithDebInfo
- BetaTest
- RelWithDebug
If your build type is Debug, the library will be installed into ${MIQS_HOME}/target/debug/
, otherwise, the library will be installed into ${MIQS_HOME}/target/release/
Compile the rust_mongo_bench library first
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup update
cd ${MIQS_HOME}/extern/rust_mongo_bench
cargo build
if you choose the build type to be Release, just add --release
after cargo build
command.
cd ${MIQS_HOME}/extern/json-c
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX=./json_c_lib ../
make -j 14 && make install
cd ${MIQS_HOME}/apps/
mkdir build
cd build
cmake --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -DCMAKE_BUILD_TYPE:STRING=Debug -H${MIQS_HOME}/apps -B${MIQS_HOME}/apps/build -G "Unix Makefiles"
cmake --build ${MIQS_HOME}/apps/build --config Debug --target install -- -j 14
Put the following code in your job script, before executing the actual executable.
cd <path/to/miqs_home>
MIQS_HOME=`pwd`
LD_LIBRARY_PATH=${MIQS_HOME}/target/debug/lib/:${LD_LIBRARY_PATH}
Change debug
here to release
according to your release type.