Skip to content

Known problems of toolchain now #2928

Description

@QuantumMisaka

Details

0. CANNOT download cereal or libnpy due to HTTP error

while other software can be downloaded from cp2k_static.org, the two head-file libraries is set to be download from github.com, which will lead to HTTP error.
The best way is to use offline installation, you can manually download packages from cereal and libnpy, and do

mkdir build
# for cereal
cp v1.3.2.tar.gz toolchain/build/cereal-1.3.2.tar.gz
# for libnpy
cp v0.1.0.tar.gz toolchain/build/libnpy-0.1.0.tar.gz

Other offline installation can be done by similar way.

Also, in 2023.4 version of toolchain, we offer a Bohrium dataset for download them , please refer to README

1. CANNOT find MKL Compiler or MPI (especially mpiicc) by module environment using intel-toolchain

The newest intel-oneAPI have problem in modulefile-setup.sh , which is in discussion on Intel
https://community.intel.com/t5/Intel-Fortran-Compiler/Missing-compiler-Environment-Modules-Utility-files-in-Intel-R/m-p/1506773
If user encounter this problem in HPC-server when trying to use toolchain installation ,try to source path/to/oneapi/setvars.sh, it always works.
Another way is to change MPI-2021.10.0 to MPI-2021.8.0, please contact your HPC server manager

2. CANNOT install elpa by icx in AMD-CPU server

When trying to use icx, namely --with-intel-classic=no in toolchain installation (default is yes, which will be icc) in AMD-CPU device, there will be error:

==================== Installing ELPA ====================
elpa-2021.11.002.tar.gz is found
Installing from scratch into /home/james/libs/elpa/2021.11.002-icx/cpu
configure: WARNING: unrecognized options: --disable-cpp-tests
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports nested variables... (cached) yes
checking for build time... 1694330426
checking for GNU make... make
checking whether in C interface the error argument should be optional... no
checking for GNU make... make
checking whether --enable-openmp is specified... yes
checking whether the C++ compiler works... yes
checking for C++ compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... configure: error: in `/home/james/apps/abacus/icx-mkl/toolchain-icx/build/elpa-2021.11.002/build_cpu':
configure: error: cannot run C++ compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
make: *** No targets specified and no makefile found.  Stop.
make: *** No rule to make target 'install'.  Stop.
ERROR: (./scripts/stage3/install_elpa.sh, line 132) Non-zero exit code detected.

users can manually add --host=x86 in configure part of toolchain/scripts/stage3/install_elpa.sh. However, elpa cannot be installed

==================== Installing ELPA ====================
elpa-2021.11.002.tar.gz is found
Installing from scratch into /home/james/libs/elpa/2021.11.002-icx/cpu
^
manually_preprocessed_.._src_elpa2_elpa2.F90-src_elpa2_libelpa_openmp_private_la-elpa2.o.F90: warning #5462: Global name too long, shortened from: elpa2_impl_mp_elpa_solve_evp_real_2stage_all_host_arrays_double_impl_$blk.mpi_constants_mp_mpi_in_place_ to: pl_mp_elpa_solve_evp_real_2stage_all_host_arrays_double_impl_$blk.mpi_constants_mp_mpi_in_place_
# 1 "manually_preprocessed_.._src_elpa2_elpa2.F90-src_elpa2_libelpa_openmp_private_la-elpa2.o.F90"
^
^
  PPFC     src/libelpa_openmp_private_la-elpa_impl.lo
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
  PPFC     src/libelpa_openmp_public_la-elpa.lo
  CXXLD    libelpa_openmp_private.la
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
  FCLD     libelpa_openmp_public.la
  PPFC     test/shared/libelpatest_openmp_la-test_util.lo
ar: `u' modifier ignored since `D' is the default (see `U')
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
ar: `u' modifier ignored since `D' is the default (see `U')
  GEN      libelpa_openmp.la
  PPFC     test/shared/libelpatest_openmp_la-test_blacs_infrastructure.lo
  PPFC     test/shared/libelpatest_openmp_la-test_analytic.lo
  PPFC     test/shared/libelpatest_openmp_la-test_setup_mpi.lo
  PPFC     test/shared/libelpatest_openmp_la-test_check_correctness.lo
  PPFC     test/shared/libelpatest_openmp_la-test_read_input_parameters.lo
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
ar: `u' modifier ignored since `D' is the default (see `U')
  PPFC     src/elpa2/elpa2_print_kernels_openmp-elpa2_print_kernels.o
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
  FCLD     elpa2_print_kernels_openmp
ifort: command line warning #10006: ignoring unknown option '-ffree-line-length-none'
ifort: command line warning #10148: option '-fno-lto' not supported
ifort: command line warning #10006: ignoring unknown option '-fallow-multiple-definition'
ifort: command line warning #10006: ignoring unknown option '-fenable-new-dtags'
ifort: command line warning #10006: ignoring unknown option '-rpath'
ifort: command line warning #10006: ignoring unknown option '-fstart-group'
ifort: command line warning #10006: ignoring unknown option '-fend-group'
ld: cannot find /home/james/apps/intel/oneapi/mkl/2023.2.0/lib/intel64: file format not recognized
make[1]: *** [Makefile:30817: elpa2_print_kernels_openmp] Error 1
make[1]: Leaving directory '/home/james/apps/abacus/icx-mkl/toolchain-icx/build/elpa-2021.11.002/build_cpu'
make: *** [Makefile:41630: install] Error 2
ERROR: (./scripts/stage3/install_elpa.sh, line 133) Non-zero exit code detected.

I don't know whether elpa can be installed by icx or not in AMD device, but in toolchain, it is not.
The problem will NOT occur in Intel-CPU server
Also. icpx compiled ABACUS will have other problems, example in #2889, waiting for fixed

3. CANNOT find -lmkl when adding deepks support in gcc-toolchain

Problem is

/usr/bin/ld: cannot find -lmkl_intel_ilp64
/usr/bin/ld: cannot find -lmkl_intel_thread
/usr/bin/ld: cannot find -lmkl_core
collect2: error: ld returned 1 exit status

in HPC, an easy way to solve the problem is module load mkl or load other MKL environment after configure and before build abacus.
But in abacus-gnu docker image, MKL is no need to exist, this problem should have be solved by certain way.

Tips: This error cannot be repeated now in some intel server, maybe relevant to the server environment

4. Warning in adding deepmd support

When adding deepmd support in configure and build process:

CMake Warning at CMakeLists.txt:104 (add_executable):
  Cannot generate a safe runtime search path for target abacus because files
  in some directories may conflict with libraries in implicit directories:

    runtime library [libiomp5.so] in /home/james/apps/intel/oneapi/compiler/2023.2.1/linux/compiler/lib/intel64_lin may be hidden by files in:
      /home/james/apps/anaconda3/envs/deepmd-2.2.4/lib

  Some of these libraries may not be found correctly.

The problem seems to be a deepmd problem

It is welcomed for other problem report in here or other issue

Task list for Issue attackers

  • Reproduce the performance issue on a similar system or environment.
  • Identify the specific section of the code causing the performance issue.
  • Investigate the issue and determine the root cause.
  • Research best practices and potential solutions for the identified performance issue.
  • Implement the chosen solution to address the performance issue.
  • Test the implemented solution to ensure it improves performance without introducing new issues.
  • Optimize the solution if necessary, considering trade-offs between performance and other factors (e.g., code complexity, readability, maintainability).
  • Review and incorporate any relevant feedback from users or developers.
  • Merge the improved solution into the main codebase and notify the issue reporter.

Metadata

Metadata

Assignees

Labels

PerformanceIssues related to fail running ABACUS

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions