Skip to content

Conversation

@lorisercole
Copy link
Contributor

@lorisercole lorisercole commented Aug 20, 2025

A few improvements to the LAMMPS Easyblock.

Sanity checks & tests

other fixes

  • Enable Kokkos serial backend build: Kokkos serial backend can be built next to the OpenMP/CUDA backend. This avoids performance-related warnings when using Kokkos with a single thread.
  • Code cleanup and minor bug fixes

Closes #3785
Supersedes #3789

The Python interface was updated in the latest LAMMPS release. `l.finalize()` causes a crash. We can safely remove it,
assuming that `mpi4py` is used as dependency.
Add some example scripts to test running LAMMPS with accelerated styles: KOKKOS, GPU, INTEL, OPENMP
See easybuilders#3785
Kokkos serial backend can also be built next to OpenMP/CUDA backend. This avoids performance-related warnings when using Kokkos with a single thread.
Co-authored-by: laraPPr <[email protected]>

Closes easybuilders#3785
Supersedes easybuilders#3789
lorisercole added a commit to lorisercole/easybuild-easyconfigs that referenced this pull request Aug 25, 2025
@boegel boegel added the update label Aug 27, 2025
@boegel boegel added this to the release after 5.1.2 (5.2.0?) milestone Aug 27, 2025
@lorisercole lorisercole marked this pull request as ready for review August 28, 2025 09:12
lorisercole added a commit to lorisercole/easybuild-easyconfigs that referenced this pull request Aug 28, 2025
ocaisa
ocaisa previously requested changes Sep 26, 2025
If we build with `--module-only`, the `sanity_check_step` method does not have access to the `configopts` (or other variables) that were defined in `configure_step`. Hence there is no simple way to check if the INTEL package was installed.
@laraPPr
Copy link
Contributor

laraPPr commented Nov 14, 2025

@lorisercole is this pr #3789 now covered in this one because than I close mine?

@lorisercole
Copy link
Contributor Author

@lorisercole is this pr #3789 now covered in this one because than I close mine?

Yes

@laraPPr
Copy link
Contributor

laraPPr commented Nov 17, 2025

Ok I'm gonna start testing this one.

lorisercole added a commit to lorisercole/easybuild-easyconfigs that referenced this pull request Nov 17, 2025
@lorisercole
Copy link
Contributor Author

Now it should be ready to work with easybuilders/easybuild-easyconfigs#23719

@laraPPr
Copy link
Contributor

laraPPr commented Nov 19, 2025

With the mace builds some are failing LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb its probably because it is build without openmp support. but I'm not sure.

@lorisercole
Copy link
Contributor Author

With the mace builds some are failing LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb its probably because it is build without openmp support. but I'm not sure.

Not sure about the mace builds, I thought they were already broken. But I'll check if I can do something

@laraPPr
Copy link
Contributor

laraPPr commented Nov 19, 2025

It was not failing all of the tests but it was failing those new msst tests. I believe the report should be coming in the next hour.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 21, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
node4014.donphan.os - Linux RHEL 9.6 (Plow), x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz (cascadelake), 1 x NVIDIA NVIDIA A2, 580.95.05, Python 3.11.3
See https://gist.github.com/laraPPr/433687a154089f9c86bc0575581df111 for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 21, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
node4014.donphan.os - Linux RHEL 9.6 (Plow), x86_64, Intel(R) Xeon(R) Gold 6240 CPU @ 2.60GHz (cascadelake), 1 x NVIDIA NVIDIA A2, 580.95.05, Python 3.11.3
See https://gist.github.com/laraPPr/a714c6ddae8442a6a15be9280b3bb40d for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 21, 2025

For the CUDA builds the new tests that you added seem to have some problems.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 24, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
node4222.shinx.os - Linux RHEL 9.6 (Plow), x86_64, AMD EPYC 9654 96-Core Processor, Python 3.9.21
See https://gist.github.com/laraPPr/68d47d3e257572592c8d2aac89cdf7bf for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 24, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (1 easyconfigs in total)
node4222.shinx.os - Linux RHEL 9.6 (Plow), x86_64, AMD EPYC 9654 96-Core Processor, Python 3.9.21
See https://gist.github.com/laraPPr/88d986c484c9792a17bfd58c54a0da33 for a full test report.

@lorisercole
Copy link
Contributor Author

For versions >= 29Aug2024 you must include the updated easyconfigs: easybuilders/easybuild-easyconfigs#23719
Tests need PyYAML and mpi4py to work. (Perhaps you should run these builds from that PR, with the --include-easyblocks-from-pr=3894 option.

For older versions, I've just added a condition, so that we won't need to update all these old easyconfigs.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 24, 2025

Ok great. I will tests more tomorrow.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 26, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

  • SUCCESS LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb

Build succeeded for 1 out of 1 (1 easyconfigs in total)
node4244.shinx.os - Linux RHEL 9.6 (Plow), x86_64, AMD EPYC 9654 96-Core Processor, Python 3.9.21
See https://gist.github.com/laraPPr/1f245cbd7c8d32feb5b943d05a2a329e for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 26, 2025

Copy link
Contributor

@laraPPr laraPPr left a comment

Choose a reason for hiding this comment

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

lgtm

@laraPPr
Copy link
Contributor

laraPPr commented Nov 26, 2025

@boegelbot please test @ jsc-zen3-a100 EB_ARGS="LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb LAMMPS-23Jun2022-foss-2021a-kokkos-CUDA-11.3.1.eb LAMMPS-23Jun2022-foss-2021b-kokkos-CUDA-11.4.1.eb LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb"

@laraPPr
Copy link
Contributor

laraPPr commented Nov 26, 2025

@boegelbot please test @ jsc-zen3 EB_ARGS="LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb LAMMPS-23Jun2022-foss-2021a-kokkos.eb LAMMPS-23Jun2022-foss-2021b-kokkos.eb LAMMPS-23Jun2022-foss-2022a-kokkos.eb"

@boegelbot
Copy link

@laraPPr: 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=3894 EB_ARGS="LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb LAMMPS-23Jun2022-foss-2021a-kokkos.eb LAMMPS-23Jun2022-foss-2021b-kokkos.eb LAMMPS-23Jun2022-foss-2022a-kokkos.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3894 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 3582219535 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

Test report by @boegelbot

Overview of tested easyconfigs (in order)

  • SUCCESS LAMMPS-2Aug2023_update2-foss-2023a-kokkos.eb
  • SUCCESS LAMMPS-23Jun2022-foss-2021a-kokkos.eb
  • SUCCESS LAMMPS-23Jun2022-foss-2021b-kokkos.eb
  • SUCCESS LAMMPS-23Jun2022-foss-2022a-kokkos.eb

Build succeeded for 4 out of 4 (total: 1 hour 3 mins 21 secs) (4 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/2e6c02d62182eaffef020a97f40f3664 for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 26, 2025

@lorisercole Can you help me test this easyconfig, 2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb. The sanity check has been stuck on this test for over an hour and I'm testing on two different systems.

 >> running command 'cd /tmp/eb-z8aput5f/tmpiscdmvrr && mpirun -n 4 python -c 'from lammps import lammps; l=lammps();

l.file("/data/gent/vo/000/gvo00002/vsc46128/easybuild/RHEL9/cascadelake-ampere-ib/software/LAMMPS/2Aug2023_update2-fos

s-2023a-kokkos-CUDA-12.1.1/examples/colloid/in.colloid"); l.finalize() if l else None'' ...

@laraPPr
Copy link
Contributor

laraPPr commented Nov 27, 2025

@boegelbot please test @ jsc-zen3-a100 EB_ARGS="LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb LAMMPS-23Jun2022-foss-2021a-kokkos-CUDA-11.3.1.eb LAMMPS-23Jun2022-foss-2021b-kokkos-CUDA-11.4.1.eb LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb"

@boegelbot
Copy link

@laraPPr: 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=3894 EB_ARGS="LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb LAMMPS-23Jun2022-foss-2021a-kokkos-CUDA-11.3.1.eb LAMMPS-23Jun2022-foss-2021b-kokkos-CUDA-11.4.1.eb LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3894 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 3585245302 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).

@laraPPr
Copy link
Contributor

laraPPr commented Nov 27, 2025

Test report by @laraPPr

Overview of tested easyconfigs (in order)

  • SUCCESS LAMMPS-2Aug2023_update2-foss-2023a-kokkos-CUDA-12.1.1.eb
  • SUCCESS LAMMPS-2Aug2023_update2-foss-2024a-kokkos-CUDA-12.6.0.eb
  • SUCCESS LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb

Build succeeded for 3 out of 3 (3 easyconfigs in total)
node4303.litleo.os - Linux RHEL 9.6 (Plow), x86_64, AMD EPYC 9454P 48-Core Processor, 1 x NVIDIA NVIDIA H100 NVL, 580.95.05, Python 3.9.21
See https://gist.github.com/laraPPr/03033ec4fc733f69a2c2bc84c34adab2 for a full test report.

@boegelbot
Copy link

Test report by @boegelbot

Overview of tested easyconfigs (in order)

Build succeeded for 2 out of 6 (total: 3 hours 10 mins 29 secs) (5 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 580.95.05, Python 3.9.21
See https://gist.github.com/boegelbot/a71471f7faa03e4b103eac1f5d00175e for a full test report.

@laraPPr
Copy link
Contributor

laraPPr commented Nov 27, 2025

@boegelbot please test @ jsc-zen3-a100 EB_ARGS="LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb"

The mace build should not fail on the GPU sanity check so let's try again. The other two I'm gonna leave as is since is missing NCCL-2.10.3-GCCcore-11.2.0-CUDA-11.4.1.eb and 2021 will be archived soon.

@boegelbot
Copy link

@laraPPr: 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=3894 EB_ARGS="LAMMPS-28Oct2024-foss-2023a-kokkos-mace-CUDA-12.1.1.eb" EB_CONTAINER= EB_REPO=easybuild-easyblocks EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_3894 --ntasks=8 --partition=jsczen3g --gres=gpu:1 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

- notification for comment with ID 3586267849 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

Test report by @boegelbot

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (total: 1 hour 10 mins 18 secs) (1 easyconfigs in total)
jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 580.95.05, Python 3.9.21
See https://gist.github.com/boegelbot/e7f0f130de80fe9de148f36b9452aae2 for a full test report.

@lorisercole
Copy link
Contributor Author

lorisercole commented Nov 27, 2025

Test report by @boegelbot

Overview of tested easyconfigs (in order)

Build succeeded for 0 out of 1 (total: 1 hour 10 mins 18 secs) (1 easyconfigs in total) jsczen3g1.int.jsc-zen3.fz-juelich.de - Linux Rocky Linux 9.6, x86_64, AMD EPYC-Milan Processor (zen3), 1 x NVIDIA NVIDIA A100 80GB PCIe, 580.95.05, Python 3.9.21 See https://gist.github.com/boegelbot/e7f0f130de80fe9de148f36b9452aae2 for a full test report.

This error with the mace build is an RPATH sanity check error. I'm not sure why it has not been seen before, but it is due to a wrong behavior by the compiler wrapper. I have an easy fix that I'm going to push to the easyconfig repo:
easybuilders/easybuild-easyconfigs@bd05836

@laraPPr laraPPr dismissed ocaisa’s stale review November 28, 2025 10:50

Requested changes were addressed

@laraPPr
Copy link
Contributor

laraPPr commented Nov 28, 2025

OK thanks Loris than I think this one is ready to merge

@laraPPr
Copy link
Contributor

laraPPr commented Nov 28, 2025

Going in, thanks @lorisercole!

@laraPPr laraPPr merged commit 433d723 into easybuilders:develop Nov 28, 2025
22 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

LAMMPS sanity checks should test accelerator packages (Kokkos, Intel, ...)

5 participants