Skip to content

{vis}[foss/2023a] IMOD v5.1.3 w/ CUDA 12.1.1#21753

Open
ThomasHoffmann77 wants to merge 14 commits intoeasybuilders:developfrom
ThomasHoffmann77:20241028121333_new_pr_IMOD501
Open

{vis}[foss/2023a] IMOD v5.1.3 w/ CUDA 12.1.1#21753
ThomasHoffmann77 wants to merge 14 commits intoeasybuilders:developfrom
ThomasHoffmann77:20241028121333_new_pr_IMOD501

Conversation

@ThomasHoffmann77
Copy link
Copy Markdown
Contributor

(created using eb --new-pr)

@sassy-crick
Copy link
Copy Markdown
Collaborator

@ThomasHoffmann77 You might want to sync your PR with development, something like this:

eb --sync-pr-with-develop NUMBER_OF_PR

@github-actions github-actions bot added new and removed update labels Jun 17, 2025
@ThomasHoffmann77 ThomasHoffmann77 changed the title {vis}[foss/2023a] IMOD v5.0.1 w/ CUDA 12.1.1 {vis}[foss/2023a] IMOD v5.1.0 w/ CUDA 12.1.1 Jun 17, 2025
@github-actions github-actions bot added update and removed new labels Jun 17, 2025
@github-actions
Copy link
Copy Markdown

Updated software IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb

Diff against IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/i/IMOD/IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/i/IMOD/IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/i/IMOD/IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb
index e7947f8353..fca8c8b39b 100644
--- a/easybuild/easyconfigs/i/IMOD/IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/i/IMOD/IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb
@@ -1,7 +1,7 @@
 easyblock = 'ConfigureMake'
 
 name = 'IMOD'
-version = '5.1.0'
+version = '5.0.1'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://bio3d.colorado.edu/imod/'
@@ -16,18 +16,15 @@ Kremer, Quanren Xiong, and John Heumann at the University of Colorado."""
 toolchain = {'name': 'foss', 'version': '2023a'}
 toolchainopts = {'pic': True}  # openmp leads to segfault with xftoxg tool
 
-download_instructions = f"""
-To generate the source tarball for %(name)s:
-  hg clone --debug http://bio3d.colorado.edu/%(namelower)s/nightlyBuilds/%(name)s
-  get lunch
-  cd %(name)s
-  hg update -r %(name)s_{version.replace('.', '-')}
-  cd ..
-  tar czf %(name)s-%(version)s.tar.gz IMOD
-"""
-
+# download manually from mercurial repository and create source tarball:
+# hg clone --debug http://bio3d.colorado.edu/imod/nightlyBuilds/IMOD
+# get lunch 
+# cd IMOD
+# hg update -r IMOD_4-12-62
+# rm .hg* -rf
+# cd ..
+# find IMOD -print|sort| tar -czf IMOD-`cat IMOD/.version`.tar.gz -T -
 sources = [SOURCE_TAR_GZ]
-
 patches = [
     'IMOD-4.11.12_hdf1.12.patch',
     'IMOD-4.12.17_tiltalign_include.patch',
@@ -35,7 +32,7 @@ patches = [
     'IMOD-4.12.58_cudacc.patch',
 ]
 checksums = [
-    # IMOD-5.1.0.tar.gz: 
+    # IMOD-4.12.62.tar.gz: 
     None,  # can't include a valid checksum for source tarball, since it has to be created manually
     # IMOD-4.11.12_hdf1.12.patch:
     '19e5bff97b997c600f157dd56eddae96a7f34fef528e7f40e76ea8e19144810e',
@@ -59,24 +56,17 @@ dependencies = [
 ]
 
 # parallel build sometimes fails
-maxparallel = 1
+parallel = 1
 
 # modify all qmake pro files in order to pass CFLAGS
 _qmake_pass_cflags = "find -name *.pro -exec sed -i -e '$aQMAKE_CXXFLAGS += $$(CFLAGS)' {} \\; && "
 
 # exports required for configure and build
-_exports = ' && '.join([
-    'export QTDIR=$EBROOTQT5',
-    'export CUDACC="%(cuda_cc_cmake)s"',
-    'export HDF5_DIR="$EBROOTHDF5"',
-    'export QMAKESPEC="$EBROOTQT5/mkspecs/`qmake -query QMAKE_SPEC`"',
-    'export CUDA_DIR="$CUDA_HOME"',
-    #  readw_or_imod.f and others with gfortran10: 
-    #     Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/INTEGER(2))
-    #     => set -fallow-argument-mismatch. Runs through without this option with GCC 8.3.0.
-    'export CFLAGS="$CFLAGS -fallow-argument-mismatch"',  # required for gfortran10 and newer
-])
-
+_exports = 'export QTDIR=$EBROOTQT5 && '
+_exports += "export CUDACC='%(cuda_cc_cmake)s' && "
+_exports += 'export HDF5_DIR=$EBROOTHDF5 && '
+_exports += 'export QMAKESPEC=$EBROOTQT5/mkspecs/`qmake -query QMAKE_SPEC` && '
+_exports += 'export CUDA_DIR=$CUDA_HOME && '
 #  readw_or_imod.f and others with gfortran10: 
 #     Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/INTEGER(2))
 #     => set -fallow-argument-mismatch. Runs through without this option with GCC 8.3.0.
@@ -97,9 +87,11 @@ preconfigopts += _useTcsh
 
 # IMOD's configure script is named setup and does not know the parameter --prefix, but -i. 
 # CFLAGs are passed with -flags.
-configure_cmd = './setup'
-configopts = '-c gnu -flags "$CFLAGS"'
-prefix_opt = '-i '
+configure_cmd = './setup '
+configure_cmd += '-c gnu '  # htf it finds icc?
+configure_cmd += '-flags "$CFLAGS" '    # inject CFLAGS
+configure_cmd += '-i %(installdir)s '  # set installdir
+configure_without_installdir = True
 
 prebuildopts = _exports
 
@@ -120,14 +112,10 @@ modextravars = {
     'IMOD_JAVADIR': '$JAVA_HOME',
     'FOR_DISABLE_STACK_TRACE': '1',
 }
-
+modloadmsg = 'Please set the environment variable $IMOD_CALIB_DIR if appropriate.'
 sanity_check_paths = {
     'files': ['VERSION', 'bin/subm'],
-    'dirs': ['lib', 'com', 'autodoc', 'pylib', 'Plugins', 'man', 'SystemTemplate'],
+    'dirs': ['bin', 'lib', 'com', 'autodoc', 'pylib', 'Plugins', 'man', 'SystemTemplate'],
 }
-
 sanity_check_commands = [('xftoxg', '-h')]
-
-modloadmsg = 'Please set the environment variable $IMOD_CALIB_DIR if appropriate.'
-
 moduleclass = 'vis'

Updated software IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb

Diff against IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb

easybuild/easyconfigs/i/IMOD/IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb

diff --git a/easybuild/easyconfigs/i/IMOD/IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb b/easybuild/easyconfigs/i/IMOD/IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb
index fca8c8b39b..e7947f8353 100644
--- a/easybuild/easyconfigs/i/IMOD/IMOD-5.0.1-foss-2023a-CUDA-12.1.1.eb
+++ b/easybuild/easyconfigs/i/IMOD/IMOD-5.1.0-foss-2023a-CUDA-12.1.1.eb
@@ -1,7 +1,7 @@
 easyblock = 'ConfigureMake'
 
 name = 'IMOD'
-version = '5.0.1'
+version = '5.1.0'
 versionsuffix = '-CUDA-%(cudaver)s'
 
 homepage = 'https://bio3d.colorado.edu/imod/'
@@ -16,15 +16,18 @@ Kremer, Quanren Xiong, and John Heumann at the University of Colorado."""
 toolchain = {'name': 'foss', 'version': '2023a'}
 toolchainopts = {'pic': True}  # openmp leads to segfault with xftoxg tool
 
-# download manually from mercurial repository and create source tarball:
-# hg clone --debug http://bio3d.colorado.edu/imod/nightlyBuilds/IMOD
-# get lunch 
-# cd IMOD
-# hg update -r IMOD_4-12-62
-# rm .hg* -rf
-# cd ..
-# find IMOD -print|sort| tar -czf IMOD-`cat IMOD/.version`.tar.gz -T -
+download_instructions = f"""
+To generate the source tarball for %(name)s:
+  hg clone --debug http://bio3d.colorado.edu/%(namelower)s/nightlyBuilds/%(name)s
+  get lunch
+  cd %(name)s
+  hg update -r %(name)s_{version.replace('.', '-')}
+  cd ..
+  tar czf %(name)s-%(version)s.tar.gz IMOD
+"""
+
 sources = [SOURCE_TAR_GZ]
+
 patches = [
     'IMOD-4.11.12_hdf1.12.patch',
     'IMOD-4.12.17_tiltalign_include.patch',
@@ -32,7 +35,7 @@ patches = [
     'IMOD-4.12.58_cudacc.patch',
 ]
 checksums = [
-    # IMOD-4.12.62.tar.gz: 
+    # IMOD-5.1.0.tar.gz: 
     None,  # can't include a valid checksum for source tarball, since it has to be created manually
     # IMOD-4.11.12_hdf1.12.patch:
     '19e5bff97b997c600f157dd56eddae96a7f34fef528e7f40e76ea8e19144810e',
@@ -56,17 +59,24 @@ dependencies = [
 ]
 
 # parallel build sometimes fails
-parallel = 1
+maxparallel = 1
 
 # modify all qmake pro files in order to pass CFLAGS
 _qmake_pass_cflags = "find -name *.pro -exec sed -i -e '$aQMAKE_CXXFLAGS += $$(CFLAGS)' {} \\; && "
 
 # exports required for configure and build
-_exports = 'export QTDIR=$EBROOTQT5 && '
-_exports += "export CUDACC='%(cuda_cc_cmake)s' && "
-_exports += 'export HDF5_DIR=$EBROOTHDF5 && '
-_exports += 'export QMAKESPEC=$EBROOTQT5/mkspecs/`qmake -query QMAKE_SPEC` && '
-_exports += 'export CUDA_DIR=$CUDA_HOME && '
+_exports = ' && '.join([
+    'export QTDIR=$EBROOTQT5',
+    'export CUDACC="%(cuda_cc_cmake)s"',
+    'export HDF5_DIR="$EBROOTHDF5"',
+    'export QMAKESPEC="$EBROOTQT5/mkspecs/`qmake -query QMAKE_SPEC`"',
+    'export CUDA_DIR="$CUDA_HOME"',
+    #  readw_or_imod.f and others with gfortran10: 
+    #     Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/INTEGER(2))
+    #     => set -fallow-argument-mismatch. Runs through without this option with GCC 8.3.0.
+    'export CFLAGS="$CFLAGS -fallow-argument-mismatch"',  # required for gfortran10 and newer
+])
+
 #  readw_or_imod.f and others with gfortran10: 
 #     Error: Type mismatch between actual argument at (1) and actual argument at (2) (INTEGER(4)/INTEGER(2))
 #     => set -fallow-argument-mismatch. Runs through without this option with GCC 8.3.0.
@@ -87,11 +97,9 @@ preconfigopts += _useTcsh
 
 # IMOD's configure script is named setup and does not know the parameter --prefix, but -i. 
 # CFLAGs are passed with -flags.
-configure_cmd = './setup '
-configure_cmd += '-c gnu '  # htf it finds icc?
-configure_cmd += '-flags "$CFLAGS" '    # inject CFLAGS
-configure_cmd += '-i %(installdir)s '  # set installdir
-configure_without_installdir = True
+configure_cmd = './setup'
+configopts = '-c gnu -flags "$CFLAGS"'
+prefix_opt = '-i '
 
 prebuildopts = _exports
 
@@ -112,10 +120,14 @@ modextravars = {
     'IMOD_JAVADIR': '$JAVA_HOME',
     'FOR_DISABLE_STACK_TRACE': '1',
 }
-modloadmsg = 'Please set the environment variable $IMOD_CALIB_DIR if appropriate.'
+
 sanity_check_paths = {
     'files': ['VERSION', 'bin/subm'],
-    'dirs': ['bin', 'lib', 'com', 'autodoc', 'pylib', 'Plugins', 'man', 'SystemTemplate'],
+    'dirs': ['lib', 'com', 'autodoc', 'pylib', 'Plugins', 'man', 'SystemTemplate'],
 }
+
 sanity_check_commands = [('xftoxg', '-h')]
+
+modloadmsg = 'Please set the environment variable $IMOD_CALIB_DIR if appropriate.'
+
 moduleclass = 'vis'

@jfgrimm
Copy link
Copy Markdown
Member

jfgrimm commented Jun 17, 2025

Doing a bit of work on this locally, will add some more suggestions soon

@jfgrimm jfgrimm modified the milestone: 5.x Jun 17, 2025
@jfgrimm jfgrimm self-assigned this Jun 17, 2025
download_instructions = f"""
To generate the source tarball for %(name)s:
hg clone --debug http://bio3d.colorado.edu/%(namelower)s/nightlyBuilds/%(name)s
get lunch
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

is this command needed? doesn't work for me, and seems to be fine without it

Suggested change
get lunch

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

that's rather a comment than a command. I could also be deleted or be replaced by "drink coffee or tee" or by "wait"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

ahhh makes more sense

Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
@github-actions github-actions bot added new and removed update labels Jun 17, 2025
ThomasHoffmann77 and others added 5 commits June 17, 2025 17:06
Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
Co-authored-by: Jasper Grimm <65227842+jfgrimm@users.noreply.github.com>
@ThomasHoffmann77 ThomasHoffmann77 changed the title {vis}[foss/2023a] IMOD v5.1.0 w/ CUDA 12.1.1 {vis}[foss/2023a] IMOD v5.1.3 w/ CUDA 12.1.1 Jun 17, 2025
@jfgrimm
Copy link
Copy Markdown
Member

jfgrimm commented Jun 17, 2025

@boegelbot: please test @ jsc-zen3
CORE_CNT=16

@jfgrimm
Copy link
Copy Markdown
Member

jfgrimm commented Jun 17, 2025

Test report by @jfgrimm
FAILED
Build succeeded for 0 out of 1 (1 easyconfigs in total)
node056.viking2.yor.alces.network - Linux Rocky Linux 8.9, x86_64, AMD EPYC 7643 48-Core Processor, Python 3.6.8
See https://gist.github.com/jfgrimm/be9f3611e43e297089844fc6eef4c69a for a full test report.

@boegelbot
Copy link
Copy Markdown
Collaborator

@jfgrimm: 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=21753 EB_ARGS= EB_CONTAINER= EB_REPO=easybuild-easyconfigs EB_BRANCH=develop /opt/software/slurm/bin/sbatch --job-name test_PR_21753 --ntasks="16" ~/boegelbot/eb_from_pr_upload_jsc-zen3.sh' executed!

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

Test results coming soon (I hope)...

Details

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

boegelbot commented Jun 17, 2025

Test report by @boegelbot
FAILED
Build succeeded for 0 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/4f6f29b139d7b3d2bf609a844fc960f2 for a full test report.

edit: forgot that the source needs manual downloading

@jfgrimm
Copy link
Copy Markdown
Member

jfgrimm commented Jun 17, 2025

Test report by @jfgrimm
SUCCESS
Build succeeded for 1 out of 1 (1 easyconfigs in total)
node056.viking2.yor.alces.network - Linux Rocky Linux 8.9, x86_64, AMD EPYC 7643 48-Core Processor, Python 3.6.8
See https://gist.github.com/jfgrimm/0cf3e2859887f07e627e3135102b0a1a for a full test report.

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.

4 participants