Skip to content

Conversation

@ohearnk
Copy link
Collaborator

@ohearnk ohearnk commented Feb 26, 2025

NOTE: do not merge this until the 3 gradient tests failures described below are fixed.
NOTE: the branch in the PR is based off of the work in #402, so merge that PR first before merging this work.

This PR adds support for building QUICK with the Intel oneAPI compilers (CMake via the -DCOMPILER=INTELLLVM keyword). Also Github CI tests for Intel oneAPI builds are added for the following runners:

CMake builds:

  • Ubuntu 24.04 (x86_64): Intel oneAPI (v2024.2.1, v2025.0.1)

Notes / Limitations:

  • Builds using the bundled BLAS/LAPACK code lead to a large number of test failures (~50%) but builds with Intel MKL (oneMKL) resolve these issues. If we want to use and test the bundled BLAS/LAPACK Fortran codes, this will need to be investigated and fixed (possibly by updating this code -- see, e.g., Update bundled BLAS/LAPACK code #393).
  • This work backports the compilation flags used by AmberTools for Intel oneAPI builds (speficially, not using the -ipo Fortran flag due to related issues with interprocedural optimization for libraries).

Closes #327.

@ohearnk
Copy link
Collaborator Author

ohearnk commented Feb 26, 2025

Notes on the 3 gradient tests failing (both serial & MPI versions):

  • Last entry of point charge gradients is incorrect for each of tests ('XYZ' column)
  • STO-3G basis set in common for tests
  • Failures consistent across Intel oneAPI versions: 2024.0.2 (SDSC Chinotto), 2024.2.1 (Github), 2025.0.1 (Github)
  • Valgrind reports no memory issues (SDSC Chinotto)
  • No suspicious compilation warnings
    • One warning regarding variable name length exceeded in cshell gradient module (global namespace) but resolving this warning via shortening module names did not correct below test failures
  • Example diffs from failing tests (serial version):
    • test/runs/serial/grad_naip_meoh_libxc_pbeh_sto3g.grad.dif:
704c704
<   193X     0.     0.
>   193X    27.9500174444     0.
705c705
<   193Y     0.     0.
>   193Y    27.9500174444     0.
706c706
<   193Z     0.     0.
>   193Z    27.9500174444     0.
  • test/runs/serial/grad_rpsb_meoh_rhf_sto3g.grad.dif:
911c911
<   247X     0.     0.
>   247X    24.2576170724     0.
912c912
<   247Y     0.     0.
>   247Y    24.2576170724     0.
913c913
<   247Z     0.     0.
>   247Z    24.2576170724     0.
  • test/runs/serial/grad_ncnaip_b3lyp_sto3g.grad.dif:
671c671
<   181X     0.     0.
>   181X    26.0000019855     0.
672c672
<   181Y     0.     0.
>   181Y    26.0000019855     0.
673c673
<   181Z     0.     0.
>   181Z    26.0000019855     0.

@ohearnk ohearnk requested a review from agoetz February 26, 2025 20:52
@ohearnk ohearnk self-assigned this Feb 26, 2025
@ohearnk ohearnk added the enhancement New feature or request label Feb 26, 2025
…iminate global namespace exceeded warnings for oneAPI builds. Rename modules for consistency (open/closed shell).
@ohearnk ohearnk changed the title GitHub workflow optimizations 5 GitHub CI Workflow Enhancements Part 5 Feb 27, 2025
@ohearnk ohearnk marked this pull request as ready for review March 5, 2025 22:29
@ohearnk
Copy link
Collaborator Author

ohearnk commented Mar 5, 2025

Failing test issues have been resolved, so this is now ready for review.

Copy link
Collaborator

@agoetz agoetz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. All serial and mpi tests of the full CPU test suite including f functions pass using oneAPI 2025.0.4.

We will have to address the limitations wrt bundled BLAS/LAPACK. At the very least document that cmake flags -DMKL_HOME=$MKLROOT -DMKL_MULTI_THREADED=FALSE are required.

@ohearnk ohearnk merged commit c8d87b4 into merzlab:master Mar 6, 2025
42 checks passed
@ohearnk ohearnk deleted the github-workflow-optimizations-5 branch March 6, 2025 22:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

CI tests fail when compiled with OneAPI compilers

2 participants