Skip to content

Conversation

@sassy-crick
Copy link
Collaborator

@sassy-crick sassy-crick commented Dec 11, 2024

(created using eb --new-pr)

See also here for some of the encountered problems.

Requires:

@github-actions
Copy link

github-actions bot commented Dec 11, 2024

Updated software HOOMD-blue-4.9.1-foss-2023a-llvm.eb

Diff against HOOMD-blue-4.0.1-foss-2022a.eb

easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb

diff --git a/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.9.1-foss-2023a-llvm.eb
index f576061ecc..c3c0bc3d60 100644
--- a/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a.eb
+++ b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.9.1-foss-2023a-llvm.eb
@@ -1,43 +1,56 @@
+# LLVM included, needs to be version 16.x as newer versions have a different API
+# See: https://github.com/easybuilders/easybuild-easyconfigs/issues/21960
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
 easyblock = 'CMakeMake'
 
 name = 'HOOMD-blue'
-version = "4.0.1"
+version = "4.9.1"
+versionsuffix = '-llvm'
 
 homepage = "https://bitbucket.org/glotzer/hoomd-blue"
 description = """HOOMD-blue is a general-purpose particle simulation
 toolkit, implementing molecular dynamics and hard particle Monte Carlo
-optimized for fast execution on both GPUs and CPUs."""
+optimized for fast execution on both GPUs and CPUs.
+This version contains the LLVM environment.
+"""
 
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'foss', 'version': '2023a'}
 toolchainopts = {'usempi': True}
 
 github_account = 'glotzerlab'
 source_urls = [GITHUB_LOWER_RELEASE]
 sources = ['hoomd-%(version)s.tar.gz']
-checksums = ['b63dd8debb96f9c530983bd54ecbafa8fd07e017ded3ea64604cfb1f41a644b8']
+patches = ['%(name)s-%(version)s.patch']
+checksums = [
+    {'hoomd-4.9.1.tar.gz': 'b48ff3d44fef56ddf95c64b462b5d7f670bfc7a76b47223207edd3e7438e52bd'},
+    {'HOOMD-blue-4.9.1.patch': '185584a621fb02a554fb2c383b0d7c8bbb7e1251298fc58529b22b8ce7212854'},
+]
 
 builddependencies = [
-    ('CMake', '3.24.3'),
-    ('pybind11', '2.9.2'),
+    ('CMake', '3.26.3'),
+    ('pybind11', '2.11.1'),
 ]
 
 dependencies = [
-    ('Python', '3.10.4'),
-    ('SciPy-bundle', '2022.05'),
-    ('tbb', '2021.5.0'),
+    ('Python', '3.11.3'),
+    ('SciPy-bundle', '2023.07'),
+    ('tbb', '2021.11.0'),
     ('Eigen', '3.4.0'),
     ('Cereal', '1.3.2', '', SYSTEM),
+    ('Clang', '16.0.6', '-shared'),
 ]
 
 _copts = [
     '-DENABLE_GPU=OFF',
     '-DENABLE_MPI=ON',
     '-DBUILD_MD=ON',
-    '-DBUILD_METAL=ON',
+    '-DBUILD_METAL=OFF',
     '-DENABLE_TBB=ON',
     '-DBUILD_TESTING=ON',
-    '-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python',
+    '-DENABLE_LLVM=ON',
 ]
+
 configopts = ' '.join(_copts)
 
 postinstallcmds = [
Diff against HOOMD-blue-4.0.1-foss-2022a-CUDA-11.7.0.eb

easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a-CUDA-11.7.0.eb

diff --git a/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a-CUDA-11.7.0.eb b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.9.1-foss-2023a-llvm.eb
index ab46959e6c..c3c0bc3d60 100644
--- a/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.0.1-foss-2022a-CUDA-11.7.0.eb
+++ b/easybuild/easyconfigs/h/HOOMD-blue/HOOMD-blue-4.9.1-foss-2023a-llvm.eb
@@ -1,53 +1,63 @@
+# LLVM included, needs to be version 16.x as newer versions have a different API
+# See: https://github.com/easybuilders/easybuild-easyconfigs/issues/21960
+# Author: J. Sassmannshausen (Imperial College London/UK)
+
 easyblock = 'CMakeMake'
 
 name = 'HOOMD-blue'
-version = "4.0.1"
-versionsuffix = '-CUDA-%(cudaver)s'
+version = "4.9.1"
+versionsuffix = '-llvm'
 
-homepage = "https://glotzerlab.engin.umich.edu/hoomd-blue/"
+homepage = "https://bitbucket.org/glotzer/hoomd-blue"
 description = """HOOMD-blue is a general-purpose particle simulation
 toolkit, implementing molecular dynamics and hard particle Monte Carlo
-optimized for fast execution on both GPUs and CPUs."""
+optimized for fast execution on both GPUs and CPUs.
+This version contains the LLVM environment.
+"""
 
-toolchain = {'name': 'foss', 'version': '2022a'}
+toolchain = {'name': 'foss', 'version': '2023a'}
 toolchainopts = {'usempi': True}
 
 github_account = 'glotzerlab'
 source_urls = [GITHUB_LOWER_RELEASE]
 sources = ['hoomd-%(version)s.tar.gz']
-checksums = ['b63dd8debb96f9c530983bd54ecbafa8fd07e017ded3ea64604cfb1f41a644b8']
+patches = ['%(name)s-%(version)s.patch']
+checksums = [
+    {'hoomd-4.9.1.tar.gz': 'b48ff3d44fef56ddf95c64b462b5d7f670bfc7a76b47223207edd3e7438e52bd'},
+    {'HOOMD-blue-4.9.1.patch': '185584a621fb02a554fb2c383b0d7c8bbb7e1251298fc58529b22b8ce7212854'},
+]
 
 builddependencies = [
-    ('CMake', '3.24.3'),
-    ('pybind11', '2.9.2'),
+    ('CMake', '3.26.3'),
+    ('pybind11', '2.11.1'),
 ]
 
 dependencies = [
-    ('CUDA', '11.7.0', '', SYSTEM),
-    ('UCX-CUDA', '1.12.1', versionsuffix),
-    ('Python', '3.10.4'),
-    ('SciPy-bundle', '2022.05'),
-    ('tbb', '2021.5.0'),
+    ('Python', '3.11.3'),
+    ('SciPy-bundle', '2023.07'),
+    ('tbb', '2021.11.0'),
     ('Eigen', '3.4.0'),
     ('Cereal', '1.3.2', '', SYSTEM),
+    ('Clang', '16.0.6', '-shared'),
 ]
 
 _copts = [
-    '-DENABLE_GPU=ON',
-    '-DHOOMD_GPU_PLATFORM=CUDA',
+    '-DENABLE_GPU=OFF',
     '-DENABLE_MPI=ON',
     '-DBUILD_MD=ON',
-    '-DBUILD_METAL=ON',
+    '-DBUILD_METAL=OFF',
     '-DENABLE_TBB=ON',
     '-DBUILD_TESTING=ON',
-    '-DPYTHON_EXECUTABLE=$EBROOTPYTHON/bin/python',
+    '-DENABLE_LLVM=ON',
 ]
+
 configopts = ' '.join(_copts)
 
 postinstallcmds = [
     'ln -s hoomd/include %(installdir)s/include',
 ]
 
+pretestopts = "OMPI_MCA_rmaps_base_oversubscribe=1 "
 runtest = 'test'
 
 sanity_check_paths = {

@sassy-crick
Copy link
Collaborator Author

@boegelbot: please test @ generoso

@boegelbot
Copy link
Collaborator

@sassy-crick: Request for testing this PR well received on login1

PR test command 'EB_PR=22013 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_22013 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

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

Test results coming soon (I hope)...

Details

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

Test report by @boegelbot
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/dd9e619c6b887aac5fcafd685663ac9f for a full test report.

@sassy-crick
Copy link
Collaborator Author

@boegelbot: please test @ generoso

@boegelbot
Copy link
Collaborator

@sassy-crick: Request for testing this PR well received on login1

PR test command 'EB_PR=22013 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs /opt/software/slurm/bin/sbatch --job-name test_PR_22013 --ntasks=4 ~/boegelbot/eb_from_pr_upload_generoso.sh' executed!

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

Test results coming soon (I hope)...

Details

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

Test report by @boegelbot
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
cns1 - Linux Rocky Linux 8.9, x86_64, Intel(R) Xeon(R) CPU E5-2667 v3 @ 3.20GHz (haswell), Python 3.6.8
See https://gist.github.com/boegelbot/7c6593ff07edea528e376dcfb5129c78 for a full test report.

@sassy-crick
Copy link
Collaborator Author

Something seems to be odd here: the test jobs are all working yet the python -c 'import hoomd' causes a segfault.

@sassy-crick sassy-crick changed the title {phys}[foss/2023a] HOOMD-blue v4.9.1 {phys}[foss/2023a] HOOMD-blue v4.9.1 WIP Dec 13, 2024
('Eigen', '3.4.0'),
('Cereal', '1.3.2', '', SYSTEM),
('LLVM', '16.0.6'),
('Clang', '16.0.6'),
Copy link
Member

Choose a reason for hiding this comment

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

Clang dependency will no longer be required with an LLVM built with easybuilders/easybuild-easyblocks#3373

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

That might be true for newer versions but I am stuck with the 16.0.6 version and I need Clang. So in the end, the way forward was to use the Clang included LLVM but build Clang with shared libraries. Then it was very easy.

Copy link
Collaborator Author

Choose a reason for hiding this comment

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

And just to add: I actually just have tried it, rebuild LLVM-16.0.6 with the EasyBlock you mentioned, removed Clang and that configuration fails right at the beginning.
So I guess here we are stuck with the PR as it is, unless somebody shows me a better way of doing it. :-)

Copy link
Contributor

@akesandgren akesandgren Jun 27, 2025

Choose a reason for hiding this comment

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

I've tried quite a lot of things and it simply isn't possible to build HOOMD-blue with the existing statical libarary Clang 16.0.6
Once the _jit...so python library is linked with all libraries it needs it fails with

== FAILED: Installation ended unsuccessfully: Sanity check failed: sanity check command python -c 'import hoomd' failed with exit code -6 (output: : CommandLine Error: Option 'scalarize-variable-insert-extract' registered more than once!

That comes from LLVM somewhere, and it just isn't possible to get rid of with that build. It do need a shared library Clang build.

@sassy-crick sassy-crick changed the title {phys}[foss/2023a] HOOMD-blue v4.9.1 WIP {phys}[foss/2023a] HOOMD-blue v4.9.1 Feb 18, 2025
@sassy-crick sassy-crick added the EasyBuild-5.0 EasyBuild 5.0 label Feb 18, 2025
@sassy-crick
Copy link
Collaborator Author

Test report by @sassy-crick
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
hp - Linux Debian GNU/Linux 12, x86_64, 11th Gen Intel(R) Core(TM) i7-1185G7 @ 3.00GHz, Python 3.11.2
See https://gist.github.com/sassy-crick/5c5177b55a715f18d394bccdd8ba3fc9 for a full test report.

@Crivella
Copy link
Contributor

Crivella commented Jul 1, 2025

@boegelbot please test @ jsc-zen3

@boegelbot
Copy link
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=22013 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_22013 --ntasks=8 ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

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

Crivella commented Jul 1, 2025

Test report by @Crivella
SUCCESS
Build succeeded for 2 out of 2 (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/beafd80f78c52b73d77531ba60f9fe1c for a full test report.

@Crivella
Copy link
Contributor

Crivella commented Jul 1, 2025

For the CI we might need an exception in

def check_dep_vars(self, gen, dep, dep_vars):
"""Check whether available variants of a particular dependency are acceptable or not."""
# short-circuit in case there's only one dependency variant, or none at all

@boegelbot
Copy link
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.5, x86_64, AMD EPYC-Milan Processor (zen3), Python 3.9.21
See https://gist.github.com/boegelbot/31ea89fbea3b0e661d8691b0279427fc for a full test report.

@Crivella Crivella added this to the next release (5.2.0?) milestone Oct 13, 2025
Copy link
Contributor

@Crivella Crivella left a comment

Choose a reason for hiding this comment

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

LGTM

@Crivella
Copy link
Contributor

Going in, thanks @sassy-crick!

@Crivella Crivella merged commit f22ee3a into easybuilders:develop Oct 13, 2025
5 checks passed
@sassy-crick sassy-crick deleted the 20241211204258_new_pr_HOOMD-blue491 branch December 9, 2025 11:06
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.

5 participants