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.

All errors related to third-party libraries.

Generally, issues concerning third-party libraries can be resolved through the following two methods.

  • Optimization Solution:
    • Method One:
      1. Navigate to the qbics-1230 directory.
      2. Run the command ./build.sh clean to remove files generated by third-party libraries and QBiCS compilation.
      3. Execute ./build.sh again to rebuild the project.
    • Method Two (Verify File Names):
      1. Confirm whether the mkl library, after compilation, results in a lib or lib64 folder.
      2. Adjust the library section in the Makefile-linux-cpu accordingly to match the actual folder name.