Document

The executable file has been generated, but it cannot be run.

"error while loading shared libraries: libmkl_intel_lp64.so.1: cannot open shared object file"

  • Optimization Solution:
    • Before calling the qbics-linux-cpu executable, source the intel_oneapi's setvars.sh file again.
    • Directly add source <path>/setvars.sh to the environment variables (recommended, but some servers may encounter issues with file transfers after adding to the environment variables, so use with caution).

Locate and replace the path of intel_oneapi.

In different servers, the location of the Intel compiler varies. Users need to find the absolute path where the Intel compiler is installed.

  • Optimization Solution:
    1. Confirm whether the Intel compiler is installed by using the which icc command. If installed, skip directly to Step 3.
    2. Enter the command module avail to search for the Intel module, and execute module load <intel module> to load it, then save it to the environment variables.
    3. Save the path of the Intel compiler to /lustre/software/intel_oneapi (note that the path obtained after which icc is not the direct path we use; we need to find the path containing the setvars.sh file based on this path).
    4. Replace the path of the Intel compiler in the build.sh file AND the ~/qbics-src/Makefile-linux-cpu file.

setvars.sh has already been executed and does not need to be run again.

WARNING: setvars.sh has already been run. Skipping re-execution.

  • Optimization Solution:
  • If you wish to re-execute the source ~/setvars.sh script, you can add the --force keyword after the source <path>/setvars.sh in the build.sh file to override this behavior.

An error message appears when compiling Qbics.

No rule to make target '/opt/intel/oneapi/mkl/2021.4.0/include/mkl.h', needed by 'build/linux-cpu/obj/basis/BasisSetData.o'

  • Optimization Solution:
  • Execute the command make -f Makefile-linux-cpu directly in the qbics-src folder instead of compiling Qbics through the build.sh script.