Skip to content

{chem}[foss/2023a] VeloxChem 1.0-rc4#24176

Merged
boegel merged 6 commits intoeasybuilders:developfrom
Crivella:feature-VeloxChem
Oct 21, 2025
Merged

{chem}[foss/2023a] VeloxChem 1.0-rc4#24176
boegel merged 6 commits intoeasybuilders:developfrom
Crivella:feature-VeloxChem

Conversation

@Crivella
Copy link
Copy Markdown
Contributor

@Crivella Crivella commented Oct 9, 2025

Add EC file for VeloxChem

@Crivella Crivella added the 2023a label Oct 9, 2025
@github-actions github-actions Bot added the new label Oct 9, 2025
@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 9, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@Crivella: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24176 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24176 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8247

Test results coming soon (I hope)...

Details

- notification for comment with ID 3386032242 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/b22cc7f23e255d81351bc85e4658a880 for a full test report.

@Crivella Crivella added this to the next release (5.2.0?) milestone Oct 9, 2025
@boegel boegel self-assigned this Oct 13, 2025
@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 13, 2025

@Crivella Does this depend on some other PR/fix?

When I test this, I get a failure:

  -- Setting option VLX_LA_VENDOR: FlexiBLAS
  CMake Error at cmake/custom/math.cmake:278 (message):
    Cannot find a working CBLAS library to link to!

@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 13, 2025

Test report by @boegel
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
node3512.doduo.os - Linux RHEL 9.6, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.21
See https://gist.github.com/boegel/40b141f2ac11b2dc46b9f5be03ba3238 for a full test report.

@Crivella
Copy link
Copy Markdown
Contributor Author

Not sure if it is related to

or something similar to

but i think having a recent rebuild of FlexiBLAS might help.

I would assume it is something already in develop since the bot succeeded?

@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 13, 2025

Worst case we can set it to OpenBLAS the same way they do in

https://gitlab.com/veloxchem/veloxchem/-/blob/v1.0-rc4/.github/workflows/ci.yml#L73

@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 13, 2025

NOTE this is what i get

  -- Setting (unspecified) option VLX_ALIGN: 64
  -- Setting option VLX_LA_VENDOR: FlexiBLAS
  -- Using FlexiBLAS as linear algebra backend
  -- BLAS/LAPACK include directories: /home/crivella/.local/easybuild/software/OpenBLAS/0.3.23-GCC-12.3.0/include
  -- BLAS/LAPACK libraries: /home/crivella/.local/easybuild/software/FlexiBLAS/3.3.1-GCC-12.3.0/lib/liblapacke.so;/home/crivella/.local/easybuild/software/FlexiBLAS/3.3.1-GCC-12.3.0/lib/libflexiblas.so

EDIT: which on second inspection might need some extra sauce to avoid the same problem as in

of mixing FlexiBLAS libs with the OpenBLAS headers

@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 13, 2025

@Crivella Why doesn't this happen consistently though?

@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 13, 2025

The CMake part for the lapack/blas seems to rely either on LAPACK_ROOT/BLAS_ROOT or on known paths in CMAKE_PREFIX_PATH

https://gitlab.com/veloxchem/veloxchem/-/blob/v1.0-rc4/cmake/custom/math.cmake?ref_type=tags#L226-235

I am trying to fiddle with the first to force it to pick all stuff from FlexiBLAS.

Concerning the failure in your build i am not sure why it is not finding cblas.h is it possible CMAKE_PREFIX_PATH is not being set somehow?

@Crivella
Copy link
Copy Markdown
Contributor Author

Another note, using FlexiBLAS or any string that is not recognized is defering to the find_path section.

...
elseif(VLX_LA_VENDOR STREQUAL "Generic")
  find_package(LAPACK REQUIRED QUIET)

  set(_check_cblas_and_lapacke TRUE)
else()
  find_package(LAPACK REQUIRED QUIET)

  set(_check_cblas_and_lapacke TRUE)
endif()

The only special values for VLX_LA_VENDOR from the cmake file are

  • MKL
  • Apple or NAS
  • Cray
  • FLAME

@Crivella
Copy link
Copy Markdown
Contributor Author

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
Copy Markdown
Collaborator

@Crivella: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24176 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24176 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8334

Test results coming soon (I hope)...

Details

- notification for comment with ID 3397788101 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 13, 2025

Test report by @Crivella
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), Python 3.11.13
See https://gist.github.com/Crivella/61ac75ceaffdd7e8a4a5f849b5613927 for a full test report.

NOTES

  -- Setting option VLX_LA_VENDOR: FlexiBLAS
  -- Using FlexiBLAS as linear algebra backend
  -- BLAS/LAPACK include directories: /home/crivella/.local/easybuild/software/FlexiBLAS/3.3.1-GCC-12.3.0/include/flexiblas
  -- BLAS/LAPACK libraries: /home/crivella/.local/easybuild/software/FlexiBLAS/3.3.1-GCC-12.3.0/lib/liblapacke.so;/home/crivella/.local/easybuild/software/FlexiBLAS/3.3.1-GCC-12.3.0/lib/libflexiblas.so
  -- Searching for Eigen in /home/crivella/.local/easybuild/software/Eigen/3.4.0-GCCcore-12.3.0/include/Eigen
  -- Found Eigen in /home/crivella/.local/easybuild/software/Eigen/3.4.0-GCCcore-12.3.0/include/Eigen

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
jsczen3c1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/afecd9df8de4f5d2da14831824a0ba5f for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 14, 2025

Test report by @boegel
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
node3596.doduo.os - Linux RHEL 9.6, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.21
See https://gist.github.com/boegel/50a8424dd77e2149b3bbba08999171a1 for a full test report.

@Crivella
Copy link
Copy Markdown
Contributor Author

Now it is picking up the libraries but failing somewhere else.

Another difference i noticed in the logs, is for your build, the test for using the Ninja generator is failing and falling back to Unix makefiles in scikit-build.
Would be nice to see from logs in the bot build if that is also the case or if picking up Ninja is working there.

I would assume it is easier to solve this problem than whatever is causing the Makefiles build version to fail

From my logs:

  --------------------------------------------------------------------------------
  -- Trying 'Ninja' generator
  --------------------------------
  ---------------------------
  ----------------------
  -----------------
  ------------
  -------
  --
  Not searching for unused variables given on the command line.
  -- The C compiler identification is GNU 12.3.0
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working C compiler: /tmp/eb-8k0nmnof/tmp2v_vn4yf/rpath_wrappers/gcc_wrapper/gcc - skipped
  -- Detecting C compile features
  -- Detecting C compile features - done
  -- The CXX compiler identification is GNU 12.3.0
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  -- Check for working CXX compiler: /tmp/eb-8k0nmnof/tmp2v_vn4yf/rpath_wrappers/gxx_wrapper/g++ - skipped
  -- Detecting CXX compile features
  -- Detecting CXX compile features - done
  -- Configuring done (2.1s)
  -- Generating done (0.0s)
  -- Build files have been written to: /home/crivella/.local/easybuild/build/VeloxChem/1.0-rc4/foss-2023a/VeloxChem/veloxchem-v1.0-rc4-770fddbeda827eb483a1919689e0d289e72a2c5c/_cmake_test_compile/build
  --
  -------
  ------------
  -----------------
  ----------------------
  ---------------------------
  --------------------------------
  -- Trying 'Ninja' generator - success
  --------------------------------------------------------------------------------

@Crivella
Copy link
Copy Markdown
Contributor Author

Crivella commented Oct 15, 2025

The reason this is failing is the other way around (will fail with any new build of OpenBLAS after #2753) i thought i had a newer build of OpenBLAS/FlexiBLAS but not for this TC (and i guess the bot as well).

The error in the frist failed report was due to

  check_cblas_lapacke(_la_cblas_bundled
    CBLAS
    cblas_sgemm
    ${_include_dirs}
    "cblas.h"
    ""
    "${_blas_libs}"
    ""
    "${BLAS_ROOT};${LAPACK_ROOT}"
    "lib"
    )

failing the check (i assume since cblas_sgemm64_ is what is defined in cblas.h )

With the patch now it is picking up the include and lib folders from FlexiBLAS so it is passing that check, but for some reason during the compilation it still seems to try and use the file from OpenBLAS
'cblas_dgemm' was not declared in this scope; did you mean 'cblas_dgemm64_'

I will try to recompile a newer OpenBLAS/FlexiBLAS to reproduce the error and see how it can be fixed

EDIT

VeloxChem build system passes the include dir from the detected cblas.h as a system header with -isystem .
While we have FlexiBLAS also in CPATH, before OpenBLAS, g++ must be doing some filtering so that the CLI -isystem takes precedence and apparently -isystem locations are searched after CPATH ones

@Crivella
Copy link
Copy Markdown
Contributor Author

@boegelbot please test @ jsc-zen3
CORE_CNT=16
EB_ARGS="--installpath /tmp/$USER/pr-24176 OpenBLAS-0.3.23-GCC-12.3.0.eb FlexiBLAS-3.3.1-GCC-12.3.0.eb VeloxChem-1.0-rc4-foss-2023a.eb"

@boegelbot
Copy link
Copy Markdown
Collaborator

@Crivella: Request for testing this PR well received on jsczen3l1.int.jsc-zen3.fz-juelich.de

PR test command 'if [[ develop != 'develop' ]]; then EB_BRANCH=develop ./easybuild_develop.sh 2> /dev/null 1>&2; EB_PREFIX=/home/boegelbot/easybuild/develop source init_env_easybuild_develop.sh; fi; EB_PR=24176 EB_ARGS="--installpath /tmp/$USER/pr-24176 OpenBLAS-0.3.23-GCC-12.3.0.eb FlexiBLAS-3.3.1-GCC-12.3.0.eb VeloxChem-1.0-rc4-foss-2023a.eb" EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_24176 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

  • exit code: 0
  • output:
Submitted batch job 8412

Test results coming soon (I hope)...

Details

- notification for comment with ID 3407215490 processed

Message to humans: this is just bookkeeping information for me,
it is of no use to you (unless you think I have a bug, which I don't).

@Crivella
Copy link
Copy Markdown
Contributor Author

Test report by @Crivella
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
crivella-desktop - Linux Ubuntu 22.04.5 LTS (Jammy Jellyfish), x86_64, 13th Gen Intel(R) Core(TM) i9-13900K (skylake), Python 3.11.13
See https://gist.github.com/Crivella/08797f6cd8b6408778e1582427d9a8fb for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

Test report by @boegelbot
SUCCESS
Build succeeded for 3 out of 3 (3 easyconfigs in total)
jsczen3c2.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/7b271f739c5057b658fcdc4891c18f03 for a full test report.

@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 21, 2025

Test report by @boegel
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node3541.doduo.os - Linux RHEL 9.6, x86_64, AMD EPYC 7552 48-Core Processor (zen2), Python 3.9.21
See https://gist.github.com/boegel/d7f9fbbd9c681755e16fb763f12a279e for a full test report.

Comment thread easybuild/easyconfigs/v/VeloxChem/VeloxChem-1.0-rc4-foss-2023a.eb Outdated
@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 21, 2025

Test report by @boegel
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node4206.shinx.os - Linux RHEL 9.6, x86_64, AMD EPYC 9654 96-Core Processor (zen4), Python 3.9.21
See https://gist.github.com/boegel/3c92ffa36212b1a993f324bdc3e2e718 for a full test report.

Copy link
Copy Markdown
Member

@boegel boegel left a comment

Choose a reason for hiding this comment

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

lgtm

@boegel
Copy link
Copy Markdown
Member

boegel commented Oct 21, 2025

Going in, thanks @Crivella!

@boegel boegel merged commit 107ea0e into easybuilders:develop Oct 21, 2025
8 checks passed
@Crivella Crivella deleted the feature-VeloxChem branch October 21, 2025 15:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants