Merge branch 'master' into arpack-ng

This commit is contained in:
2025-05-26 14:26:37 +02:00
269 changed files with 6094 additions and 1150 deletions

View File

@@ -1,14 +1,9 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "https://download.schedmd.com/${P}/${P}-${V}.tar.bz2"
pbuild::add_to_group 'Batchsystem'
pbuild::install_docfiles 'AUTHORS' 'INSTALL' 'NEWS' 'README.rst' 'RELEASE_NOTES'
pbuild::pre_configure() {
pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}"
# pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}"
pbuild::add_configure_args "--with-nvml=${CUDA_PREFIX}"
pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}"
pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}"
# pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}"
# pbuild::add_configure_args "--with-netloc=${HWLOC_PREFIX}"
}

View File

@@ -0,0 +1,27 @@
---
# yamllint disable rule:line-length
format: 1
slurm:
defaults:
group: Batchsystem
overlay: Alps
relstage: stable
docfiles: [AUTHORS, INSTALL, NEWS, README.rst RELEASE_NOTES]
urls:
- url: https://download.schedmd.com/${P}/${P}-${V}.tar.bz2
shasums:
slurm-24.05.3.tar.bz2: b0b40513e9b6ae867ddb95d60b950bcb980c15b735b5d0dea37a9a00cc64ae24
versions:
24.05.3:
variants:
- systems: [.*.merlin7.psi.ch]
relstage: unstable
overlay: Alps
use_overlays: [PSI]
group_deps:
compiler: {gcc: [12.3.0]}
build_requires: [cuda/12.2.0, hwloc/2.11.1, patchelf/0.14.5]
configure_args+:
- '--with-pmix=/opt/psi/overlays/Alps/Libraries/pmix/2.2.5:/opt/psi/overlays/Alps/Libraries/pmix/3.2.5:/opt/psi/overlays/Alps/Libraries/pmix/4.2.9:/opt/psi/overlays/Alps/Libraries/pmix/5.0.3'
- '--with-cray_shasta'

View File

@@ -1,13 +1,2 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "http://github.com/xianyi/$P/archive/v${V_PKG}.tar.gz"
pbuild::add_to_group 'Compiler'
pbuild::install_docfiles 'LICENSE' 'README.md'
#pbuild::set_supported_compilers 'gcc' 'intel' 'clang-macos'
pbuild::pre_configure() {
pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=Release"
pbuild::add_configure_args "-DDYNAMIC_ARCH=ON"
}

View File

@@ -0,0 +1,119 @@
---
# yamllint disable rule:line-length
format: 1
OpenBLAS:
defaults:
group: Compiler
overlay: base
relstage: stable
systems: [rhel6, rhel7, rhel8]
urls:
- url: http://github.com/xianyi/$P/archive/v${V_PKG}.tar.gz
name: OpenBLAS-${V_PKG}.tar.gz
configure_args:
- -DCMAKE_BUILD_TYPE=Release
- -DDYNAMIC_ARCH=ON
docfiles:
- LICENSE
- README.md
shasums:
OpenBLAS-0.2.9.tar.gz: e899c70b8771896655765f5c64c00c990f8dd0fe569e96788d8c971a23ecb22a
OpenBLAS-0.2.19.tar.gz: 9c40b5e4970f27c5f6911cb0a28aa26b6c83f17418b69f8e5a116bb983ca8557
OpenBLAS-0.2.20.tar.gz: 5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394
OpenBLAS-0.3.7.tar.gz: bde136122cef3dd6efe2de1c6f65c10955bbb0cc01a520c2342f5287c28f9379
OpenBLAS-0.3.9.tar.gz: 17d4677264dfbc4433e97076220adc79b050e4f8a083ea3f853a53af253bc380
OpenBLAS-0.3.10.tar.gz: 0484d275f87e9b8641ff2eecaa9df2830cbe276ac79ad80494822721de6e1693
OpenBLAS-0.3.13.tar.gz: 79197543b17cc314b7e43f7a33148c308b0807cd6381ee77f77e15acf3e6459e
OpenBLAS-0.3.15.tar.gz: 30a99dec977594b387a17f49904523e6bc8dd88bd247266e83485803759e4bbe
OpenBLAS-0.3.20.tar.gz: 8495c9affc536253648e942908e88e097f2ec7753ede55aca52e5dead3029e3c
OpenBLAS-0.3.21.tar.gz: f36ba3d7a60e7c8bcc54cd9aaa9b1223dd42eaf02c811791c37e8ca707c241ca
OpenBLAS-0.3.23.tar.gz: 5d9491d07168a5d00116cdc068a40022c3455bf9293c7cb86a65b1054d7e5114
OpenBLAS-0.3.24.tar.gz: ceadc5065da97bd92404cac7254da66cc6eb192679cf1002098688978d4d5132
versions:
0.3.28:
config:
group_deps:
compiler:
gcc: [12.3.0, 12.4.0, 13.3.0, 14.2.0]
build_requires: [cmake/3.23.2]
relstage: unstable
variants:
- systems: [rhel.*]
overlay: devel
- systems: [login.*.merlin7.psi.ch]
overlay: Alps
use_overlays: [PSI, Alps]
0.3.24:
config:
group_deps:
compiler:
gcc: [12.3.0, 13.1.0, 13.2.0]
build_requires: [cmake/3.23.2]
relstage: unstable
overlay: devel
0.3.23:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]
build_requires: [cmake/3.23.2]
0.3.21:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.3.0, 12.1.0]
build_requires: [cmake/3.23.2]
0.3.20:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0]
0.3.15:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.4.0, 9.3.0, 10.3.0]
0.3.13:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0, 10.3.0]
0.3.10;0.3.9:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.4.0, 9.3.0, 10.1.0]
0.3.9:
variants:
- group_deps:
compiler:
gcc: [7.5.0, 8.4.0, 9.3.0, 10.1.0]
0.3.7:
variants:
- group_deps:
compiler:
gcc: [7.4.0, 8.3.0, 9.2.0]
0.2.20:
variants:
- group_deps:
compiler:
gcc: [5.5.0, 6.4.0, 7.3.0]
- group_deps:
compiler:
intel: [17.4]
relstage: deprecated
0.2.19:
variants:
- group_deps:
gcc: [4.8.5, 4.9.4, 5.3.0, 5.4.0, 6.2.0, 6.3.0]
0.2.9:
variants:
- group_deps:
compiler:
gcc: [4.7.4, 4.8.2, 4.8.3, 4.8.4, 4.8.5, 4.9.2, 6.1.0, 6.2.0]
- group_deps:
compiler:
intel: [15.3]
relstage: deprecated

View File

@@ -20,4 +20,6 @@ OpenBLAS/0.3.15 stable gcc/{7.5.0,8.4.0,9.3.0,10.3.0}
OpenBLAS/0.3.20 stable gcc/{7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0}
OpenBLAS/0.3.21 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.3.0,12.1.0} b:cmake/3.23.2
OpenBLAS/0.3.21 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.3.0,12.1.0} b:cmake/3.23.2
OpenBLAS/0.3.23 stable gcc/{7.5.0,8.5.0,9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cmake/3.23.2

9
Compiler/flair-geoviewer/build Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env modbuild
pbuild::compile() {
make
}
pbuild::install() {
make DESTDIR="${FLAIR_PREFIX}" install
}

View File

@@ -0,0 +1,24 @@
---
# yamllint disable rule:line-length
format: 1
flair-geoviewer:
defaults:
group: Compiler
overlay: base
relstage: unstable
compile_in_sourcetree: true
systems: [rhel7, rhel8, rhel9]
docfiles: [AUTHORS, LICENSE, NEWS, README]
urls:
- url: https://flair.web.cern.ch/flair/download/flair-geoviewer-3.3-1.tgz
shasums:
flair-geoviewer-3.3-1.tgz: 3c18747abac21907e90c3ed1759b73ca53c987f12216ba8ee9919a199c0dca26
versions:
3.3.1:
variants:
- systems: [merlin-*, ra-*]
group_deps:
compiler: {gcc: [13.1.0]}
relstage: unstable
build_requires: ['flair/3.3.1', 'TclTk/8.6.9']

View File

@@ -0,0 +1,18 @@
#%Module1.0
module-whatis "Flair by CERN: Advanced graphical user interface for particle simulation programs"
module-url "http://flair.web.cern.ch/flair/index.html"
module-license "[http://flair.web.cern.ch/flair/license.html](http://flair.web.cern.ch/flair/license.html)"
module-maintainer "Elsa Germann <elsa.germann@psi.ch>"
module-help "
/fleə(r)/ n [U,C] natural or instinctive ability to do something well, to select or recognize what is best, more useful, etc.
flair is an advanced user friendly interface for several Monte Carlo codes. Originally it was developed for FLUKA, where its unique features strongly contributed to the success of both codes FLUKA and flair. From version 3 the interface was separated from the functionality permitting an easy integration of other simulation packages.
The current line of development is to make flair a unique tool for performing calculations with the same input using FLUKA, Geant4, PENELOPE, and other simulations engines.
Presently is fully supporting the CERN FLUKA version and there is ongoing work to support:
Moira a Geant4 based application, permitting the user to run with Geant4 FLUKA equivalent inputs with the same geometry, materials, scoring,...
Other codes like MCNP, PHITS, PENELOPE could be added in the future.
"

9
Compiler/flair/build Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env modbuild
pbuild::compile() {
make
}
pbuild::install() {
make DESTDIR="${PREFIX}" install
}

View File

@@ -0,0 +1,23 @@
---
# yamllint disable rule:line-length
format: 1
flair:
defaults:
group: Compiler
overlay: base
relstage: unstable
compile_in_sourcetree: true
systems: [rhel7, rhel8, rhel9]
docfiles: [AUTHORS, LICENSE, NEWS, README]
urls:
- url: http://flair.web.cern.ch/flair/download/flair-3.3-1.tgz
shasums:
flair-3.3-1.tgz: 2bc9b02fd2d9ddb7eed96938314b9c73f0b6a844aa1af15728650eaf81e777bd
versions:
3.3.1:
variants:
- systems: [merlin-*, ra-*]
group_deps:
compiler: {gcc: [13.1.0]}
relstage: unstable

18
Compiler/flair/modulefile Normal file
View File

@@ -0,0 +1,18 @@
#%Module1.0
module-whatis "Flair by CERN: Advanced graphical user interface for particle simulation programs"
module-url "http://flair.web.cern.ch/flair/index.html"
module-license "[http://flair.web.cern.ch/flair/license.html](http://flair.web.cern.ch/flair/license.html)"
module-maintainer "Elsa Germann <elsa.germann@psi.ch>"
module-help "
/fleə(r)/ n [U,C] natural or instinctive ability to do something well, to select or recognize what is best, more useful, etc.
flair is an advanced user friendly interface for several Monte Carlo codes. Originally it was developed for FLUKA, where its unique features strongly contributed to the success of both codes FLUKA and flair. From version 3 the interface was separated from the functionality permitting an easy integration of other simulation packages.
The current line of development is to make flair a unique tool for performing calculations with the same input using FLUKA, Geant4, PENELOPE, and other simulations engines.
Presently is fully supporting the CERN FLUKA version and there is ongoing work to support:
Moira a Geant4 based application, permitting the user to run with Geant4 FLUKA equivalent inputs with the same geometry, materials, scoring,...
Other codes like MCNP, PHITS, PENELOPE could be added in the future.
"

View File

@@ -21,7 +21,9 @@ GEOVIEWER_VERSION=3.2
GCC_VERSION=9.5.0
PYTHON_VERSION=3.9.10
TCLTK_VERSION=8.6.9
````
```
PREFIX="${PMODULES_ROOT}/Compiler/fluka4/${FLUKA4_VERSION}/gcc/${GCC_VERSION}"
DISTFILES_DIR='/afs/psi.ch/software/Pmodules/distfiles'
FLUKA_TAR="${DISTFILES_DIR}/fluka-4-${FLUKA4_VERSION}.x86-Linux-gfor${GCC_VERSION/.*}.tgz"

16
Compiler/fluka4/build Executable file
View File

@@ -0,0 +1,16 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
cd src
make -j "${JOBS}"
}
pbuild::install() {
:
}

14
Compiler/fluka4/build-brond Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
:
}
pbuild::install() {
:
}

14
Compiler/fluka4/build-cendl Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
:
}
pbuild::install() {
:
}

14
Compiler/fluka4/build-endf Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
:
}
pbuild::install() {
:
}

15
Compiler/fluka4/build-flair Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}/flair"
BUILD_DIR="${PREFIX}/flair"
}
pbuild::compile(){
make -j "${JOBS}"
}
pbuild::install() {
:
}

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}/geoviewer"
BUILD_DIR="${PREFIX}/geoviewer"
}
pbuild::compile(){
make -j "${JOBS}"
}
pbuild::install() {
make DESTDIR="${PREFIX}/flair" install
}

14
Compiler/fluka4/build-jeff Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
:
}
pbuild::install() {
:
}

14
Compiler/fluka4/build-jendl Executable file
View File

@@ -0,0 +1,14 @@
#!/usr/bin/env modbuild
pbuild::pre_prep(){
SRC_DIR="${PREFIX}"
BUILD_DIR="${PREFIX}"
}
pbuild::compile(){
:
}
pbuild::install() {
:
}

View File

@@ -0,0 +1,242 @@
---
# yamllint disable rule:line-length
format: 1
fluka4:
defaults:
group: Compiler
overlay: base
relstage: unstable
compile_in_sourcetree: true
systems: [.*]
download_dir: /afs/psi.ch/software/Pmodules/protected/fluka
urls:
- url: none
name: fluka-4-${V_PKG}.x86-Linux-gfor9.tgz
shasums:
fluka-4-4.0.x86-Linux-gfor9.tgz: bcc303b96026b91f6d88d7a5ec274e31619562833330be93a992cd3c7e511eba
versions:
4.0:
config:
group_deps:
compiler: {gcc: [9.5.0]}
relstage: unstable
build_requires: []
runtime_deps: ['TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10']
sub_packages:
- name: flair
version: 3.3-1
build_args:
- --disable-cleanup
- -f
- name: flair-geoviewer
version: 3.3-1
build_args:
- --disable-cleanup
- -f
- name: jeff
version: 3.3-1-1
build_args:
- --disable-cleanup
- -f
- name: endf
version: viii0-1.0
build_args:
- --disable-cleanup
- -f
- name: jendl
version: 4.0u-1.0
build_args:
- --disable-cleanup
- -f
- name: cendl
version: 31-1.0
build_args:
- --disable-cleanup
- -f
- name: brond
version: 3.1-1.0
build_args:
- --disable-cleanup
- -f
4.0_beta:
config:
group_deps:
compiler: {gcc: [9.5.0]}
relstage: unstable
build_requires: []
runtime_deps: ['TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10']
sub_packages:
- name: flair
version: 3.x-3.5
build_args:
- --disable-cleanup
- -f
- name: flair-geoviewer
version: 3.x-3.5
build_args:
- --disable-cleanup
- -f
- name: jeff
version: 3.3-1-1
build_args:
- --disable-cleanup
- -f
- name: endf
version: viii0-1.0
build_args:
- --disable-cleanup
- -f
- name: jendl
version: 4.0u-1.0
build_args:
- --disable-cleanup
- -f
- name: cendl
version: 31-1.0
build_args:
- --disable-cleanup
- -f
- name: brond
version: 3.1-1.0
build_args:
- --disable-cleanup
- -f
4.1_beta1:
config:
group: Tools
build_requires: []
runtime_deps: ['gcc/9.5.0', 'TclTk/8.6.9', 'Python/3.9.10', 'gnuplot/5.4.10']
sub_packages:
- name: flair
version: 3.x-5
build_args:
- --disable-cleanup
- -f
- name: flair-geoviewer
version: 3.x-5
build_args:
- --disable-cleanup
- -f
- name: jeff
version: 3.3-1-1
build_args:
- --disable-cleanup
- -f
- name: endf
version: viii0-1.0
build_args:
- --disable-cleanup
- -f
- name: jendl
version: 4.0u-1.0
build_args:
- --disable-cleanup
- -f
- name: cendl
version: 31-1.0
build_args:
- --disable-cleanup
- -f
- name: brond
version: 3.1-1.0
build_args:
- --disable-cleanup
- -f
jeff:
type: sub_package
defaults:
urls:
- url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tar.gz
strip_dirs: 0
shasums:
fluka_pw_jeff-3.3-1-1.tar.gz: 48810cab92bc79b241b306390f88b5fc1333363e85fdd0d9317263ba8e29ed8b
versions:
3.3-1-1:
endf:
defaults:
urls:
- url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz
strip_dirs: 0
shasums:
fluka_pw_endf-viii0-1.0.tgz: e26433c9f548c4477b5c47a1929d33ce4a823fa326703d3a52dfa9161f9ae1b9
versions:
viii0-1.0:
jendl:
defaults:
urls:
- url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz
strip_dirs: 0
shasums:
fluka_pw_jendl-4.0u-1.0.tgz: 21d5e2676ae26946df98869bd1d95f4f34edb53488fb40e5c1a8ef0c743f5f6e
versions:
4.0u-1.0:
cendl:
defaults:
urls:
- url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz
strip_dirs: 0
shasums:
fluka_pw_cendl-31-1.0.tgz: d64916e35bfa6337463d01b3596ccd57b8f8b5c2e8879138ef7be14aff2b49d3
versions:
31-1.0:
brond:
defaults:
urls:
- url: https://flukafiles.web.cern.ch/flukafiles/neutron/fluka_pw_$P-$V.tgz
strip_dirs: 0
shasums:
fluka_pw_brond-3.1-1.0.tgz: c88ba7cde8ccf1c59b49e1138cc06cfd0b2b84f50a67d1dd9a29f104633b8a72
versions:
3.1-1.0:
flair:
defaults:
urls:
- url: http://flair.web.cern.ch/flair/download/flair-$V.tgz
shasums:
flair-3.3-1.tgz: 2bc9b02fd2d9ddb7eed96938314b9c73f0b6a844aa1af15728650eaf81e777bd
versions:
3.3-1:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10']
3.x-3.5:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10']
urls:
- url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-3.x-3.5.tgz
3.x-5:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10']
urls:
- url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-3.x-5.tgz
flair-geoviewer:
defaults:
urls:
- url: https://flair.web.cern.ch/flair/download/flair-geoviewer-$V.tgz
shasums:
flair-geoviewer-3.3-1.tgz: 3c18747abac21907e90c3ed1759b73ca53c987f12216ba8ee9919a199c0dca26
versions:
3.3-1:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9']
3.x-3.5:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9']
urls:
- url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-geoviewer-3.x-3.5.tgz
3.x-5:
config:
build_requires: ['gcc/9.5.0', 'Python/3.9.10', 'TclTk/8.6.9']
urls:
- url: https://cernbox.cern.ch/remote.php/dav/public-files/m87gnQjIkI4dEls/flair-geoviewer-3.x-5.tgz

View File

@@ -16,4 +16,4 @@ gsl/2.5 deprecated intel/19.4
gsl/2.6 stable gcc/{7.4.0,7.5.0,8.3.0,8.4.0,8.5.0,9.1.0,9.2.0,9.3.0,9.5.0,10.1.0,10.2.0,10.3.0,11.2.0,12.1.0}
gsl/2.7 stable gcc/{7.5.0,8.4.0,8.5.0,9.3.0,9.5.0,10.3.0,10.4.0,11.3.0,12.1.0}
gsl/2.7 stable gcc/{7.5.0,8.4.0,8.5.0,9.3.0,9.5.0,10.3.0,10.4.0,11.3.0,11.4.0,12.1.0,12.3.0,13.1.0}

52
Compiler/hdf5_serial/build-yaml Executable file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env modbuild
pbuild::install_docfiles ACKNOWLEDGMENTS
pbuild::install_docfiles COPYING
#pbuild::install_docfiles MANIFEST
pbuild::install_docfiles README.md
pbuild::pre_configure() {
pbuild::add_configure_args "--enable-shared"
pbuild::add_configure_args "--enable-cxx"
pbuild::add_configure_args "--enable-unsupported"
pbuild::add_configure_args "--enable-threadsafe"
pbuild::add_configure_args "--with-pic"
case "${COMPILER}" in
clang-macos )
# we do not have Fortran in Xcode
pbuild::add_configure_args "--disable-fortran"
if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then
pbuild::add_configure_args "--disable-fortran2003"
fi
;;
pgi )
# PGI uses GCC's include files, some object files and
# the STL implementation!
# The PGI C pre-processor is broken and doesn't work
# for HDF5. We use the pre-processor of the underlying
# GCC...
# This is a bit hackish!
#
# The following eval sets GCCDIR! Which is something
# like:
# /opt/psi/Programming/gcc/7.3.0/bin/../lib/gcc/x86_64-pc-linux-gnu/7.3.0
#
eval $(pgcc -show 2>/dev/null | \
awk '/^GCCDIR[[:space:]]*=/{gsub(/[[:space:]]/,""); print $0}')
pbuild::add_configure_args "CPP=${GCCDIR%%/..*}/cpp"
pbuild::add_configure_args "CFLAGS=-fPIC"
pbuild::add_configure_args "CXXFLAGS=-fPIC"
pbuild::add_configure_args "FCFLAGS=-fPIC"
pbuild::add_configure_args "--enable-fortran"
if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then
pbuild::add_configure_args "--enable-fortran2003"
fi
;;
* )
pbuild::add_configure_args "--enable-fortran"
if [[ "${V_MAJOR}.${V_MINOR}" == "1.8" ]]; then
pbuild::add_configure_args "--enable-fortran2003"
fi
;;
esac
}

View File

@@ -0,0 +1,214 @@
---
# yamllint disable rule:line-length
format: 1
hdf5_serial:
defaults:
group: Compiler
overlay: base
relstage: stable
systems: [rhel7, rhel8, rhel9]
urls:
- url: https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${V_MAJOR}.${V_MINOR}/hdf5-$V/src/hdf5-$V.tar.bz2
shasums:
hdf5-1.8.10-patch1.tar.bz2: 292afb3615ad9e68f4d5d18ebb11e4a73f2aece39f2da3875a457ff1e109fc41
hdf5-1.8.12.tar.bz2: 10a369a4fc207bb09245f57c758e587420e06dfc0e445e337a58b0848b75a949
hdf5-1.8.13.tar.bz2: c2f5a412107aba6f99fd7a4a9db6ce5f5fc8171ec931472784e5839d26aa17ef
hdf5-1.8.14.tar.bz2: 53722cb9f5977af2908f92fc1a3f8c597800a5cb448cfe5c75060d6335bb9bab
hdf5-1.8.15-patch1.tar.bz2: a5afc630c4443547fff15e9637b5b10404adbed4c00206d89517d32d6668fb32
hdf5-1.8.15.1.tar.bz2: 289307fd70cef6715e0a28371635c8038153a4f25069319e34b0bc675a23e8ed
hdf5-1.8.16.tar.bz2: 13aaae5ba10b70749ee1718816a4b4bfead897c2fcb72c24176e759aec4598c6
hdf5-1.8.17.tar.bz2: fc35dd8fd8d398de6b525b27cc111c21fc79795ad6db1b1f12cb15ed1ee8486a
hdf5-1.8.18.tar.bz2: 01c6deadf4211f86922400da82c7a8b5b50dc8fc1ce0b5912de3066af316a48c
hdf5-1.8.19.tar.bz2: 59c03816105d57990329537ad1049ba22c2b8afe1890085f0c022b75f1727238
hdf5-1.8.20.tar.bz2: a4f2db7e0a078aa324f64e0216a80731731f73025367fa94d158c9b1d3fbdf6f
hdf5-1.8.21.tar.bz2: e5b1b1dee44a64b795a91c3321ab7196d9e0871fe50d42969761794e3899f40d
hdf5-1.10.0.tar.bz2: 31ff70dc7c7317066ab3bda3eec4498a8b099c69c1271b008ed3df388e743d28
hdf5-1.10.1.tar.bz2: 9c5ce1e33d2463fb1a42dd04daacbc22104e57676e2204e3d66b1ef54b88ebf2
hdf5-1.10.2.tar.bz2: 1cad5b7bfdf128dfc53cd16fba48f6e7ae4e93c75c371d9ec8dfc4df0c1fcb71
hdf5-1.10.3.tar.bz2: c65cdcce4724a57fd3f8da9f0d109b497be30092acb9fac634d1291190d905a9
hdf5-1.10.4.tar.bz2: 1267ff06aaedc04ca25f7c6026687ea2884b837043431195f153401d942b28df
hdf5-1.10.5.tar.bz2: 68d6ea8843d2a106ec6a7828564c1689c7a85714a35d8efafa2fee20ca366f44
hdf5-1.10.6.tar.bz2: 09d6301901685201bb272a73e21c98f2bf7e044765107200b01089104a47c3bd
hdf5-1.10.6_slurm.tar.bz2: d5a89e26beae0bc03ad18a0b0d1d3d75f87c32047879d25da11970cb5c4662a3
hdf5-1.10.7.tar.bz2: 02018fac7e5efc496d9539a303cfb41924a5dadffab05df9812096e273efa55e
hdf5-1.10.8.tar.bz2: 66ec544b195a4cb9f6ffed034fd82e52429d6112747c2996ab69853f606e546b
hdf5-1.10.11.tar.bz2: 0afc77da5c46217709475bbefbca91c0cb6f1ea628ccd8c36196cf6c5a4de304
hdf5-1.12.0.tar.bz2: 97906268640a6e9ce0cde703d5a71c9ac3092eded729591279bf2e3ca9765f61
hdf5-1.12.2.tar.bz2: 3016ea56a175d2ca7f2568c8016420f7a2aad8f95e214fe7fa5485f4b80fbe51
hdf5-1.13.1.tar.bz2: e16973ec893e2d5aa9c8dc73e196db9b99a605578e7317b421c713936f8bf57d
versions:
1.8.12:
config:
group_deps:
compiler:
gcc: [4.7.4, 4.8.3, 4.8.4, 4.9.2]
intel: [15.2]
relstage: deprecated
1.8.13:
config:
group_deps:
compiler:
gcc: [4.7.4]
relstage: deprecated
1.8.14:
config:
group_deps:
compiler:
gcc: [4.7.4, 4.8.5, 4.9.3]
intel: [15.2]
relstage: deprecated
1.8.15-patch1:
config:
group_deps:
compiler:
gcc: [5.2.0]
relstage: deprecated
1.8.16:
config:
group_deps:
compiler:
gcc: [4.7.4, 5.3.0, 6.1.0]
intel: [15.3, 16.2]
relstage: deprecated
1.8.17:
config:
group_deps:
compiler:
gcc: [4.7.4, 4.9.4, 5.4.0, 6.2.0]
intel: [16.3]
relstage: deprecated
1.8.18:
config:
group_deps:
compiler:
gcc: [4.8.5, 5.5.0, 6.3.0, 6.4.0, 7.2.0, 7.3.0]
relstage: deprecated
1.8.19:
config:
group_deps:
compiler:
gcc: [4.8.5]
relstage: deprecated
1.8.20:
config:
group_deps:
compiler:
gcc: [4.8.5, 8.2.0]
intel: [18.4]
relstage: deprecated
1.8.21:
config:
group_deps:
compiler:
gcc: [5.5.0, 6.5.0, 7.4.0, 8.3.0]
pgi: [18.5]
relstage: deprecated
1.10.0:
config:
group_deps:
compiler:
gcc: [6.1.0]
intel: [16.3]
relstage: deprecated
1.10.1:
config:
group_deps:
compiler:
gcc: [4.8.5, 4.9.4, 5.4.0, 5.5.0, 6.3.0, 6.4.0, 7.1.0, 7.2.0, 7.3.0]
intel: [17.1, 17.4]
pgi: [17.3, 17.7]
relstage: deprecated
1.10.2:
config:
group_deps:
compiler:
gcc: [5.5.0]
intel: [18.2, 18.3]
relstage: deprecated
1.10.3:
config:
group_deps:
compiler:
gcc: [4.8.5]
relstage: deprecated
1.10.4:
config:
group_deps:
compiler:
gcc: [7.3.0]
relstage: deprecated
1.10.5:
config:
group_deps:
compiler:
gcc: [5.5.0]
intel: [19.3]
relstage: deprecated
1.10.6:
config:
group_deps:
compiler:
gcc: [7.5.0, 8.4.0, 9.3.0, 10.2.0]
relstage: stable
1.10.7:
config:
group_deps:
compiler:
gcc: [10.2.0, 10.3.0, 11.2.0]
relstage: stable
1.10.8:
config:
group_deps:
compiler:
gcc: [6.5.0, 7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0]
relstage: stable
1.10.11:
config:
group_deps:
compiler:
gcc: [10.4.0]
relstage: unstable
1.12.0:
config:
group_deps:
compiler:
gcc: [10.2.0]
relstage: stable
1.12.2:
config:
group_deps:
compiler:
gcc: [6.5.0, 7.5.0, 8.5.0, 9.5.0, 10.3.0, 11.3.0, 12.1.0]
relstage: stable
1.12.3:
config:
group_deps:
compiler:
gcc: [7.5.0, 8.5.0, 9.5.0, 10.4.0, 11.3.0, 12.1.0]
relstage: unstable
urls:
- url: https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${V_MAJOR}.${V_MINOR}/hdf5-$V/src/hdf5-$V.tar.bz2
strip_dirs: 2

View File

@@ -1,109 +0,0 @@
overlay: base
relstage: stable
hdf5_serial/1.8.12:
- with: gcc/{4.7.4,4.8.3,4.8.4,4.9.2}
relstage: deprecated
- with: intel/15.2
relstage: deprecated
hdf5_serial/1.8.13:
- with: gcc/4.7.4
relstage: deprecated
hdf5_serial/1.8.14:
- with: gcc/{4.7.4,4.8.5,4.9.3}
relstage: deprecated
- with: intel/15.2
relstage: deprecated
hdf5_serial/1.8.15-patch1:
- with: gcc/5.2.0
relstage: deprecated
hdf5_serial/1.8.16:
- with: gcc/{4.7.4,5.3.0,6.1.0}
relstage: deprecated
- with: intel/{15.3,16.2}
relstage: deprecated
hdf5_serial/1.8.17:
- with: gcc/{4.7.4,4.9.4,5.4.0,6.2.0}
relstage: deprecated
- with: intel/16.3
relstage: deprecated
hdf5_serial/1.8.18:
- with: gcc/{4.8.5,5.5.0,6.3.0,6.4.0,7.2.0,7.3.0}
relstage: deprecated
hdf5_serial/1.8.19:
- with: gcc/4.8.5
relstage: deprecated
hdf5_serial/1.8.20:
- with: gcc/{4.8.5,8.2.0}
relstage: deprecated
- with: intel/18.4
relstage: deprecated
hdf5_serial/1.8.21:
- with: gcc/{5.5.0,6.5.0,7.4.0,8.3.0}
relstage: deprecated
- with: pgi/18.5
relstage: deprecated
hdf5_serial/1.10.0:
- with: gcc/6.1.0
relstage: deprecated
- with: intel/16.3
relstage: deprecated
hdf5_serial/1.10.1:
- with: gcc/{4.8.5,4.9.4,5.4.0,5.5.0,6.3.0,6.4.0,7.1.0,7.2.0,7.3.0}
relstage: deprecated
- with: intel/{17.1,17.4}
relstage: deprecated
- with: pgi/{17.3,17.7}
relstage: deprecated
hdf5_serial/1.10.2:
- with: gcc/5.5.0
relstage: deprecated
- with: intel/{18.2,18.3}
relstage: deprecated
hdf5_serial/1.10.3:
- with: gcc/4.8.5
relstage: deprecated
hdf5_serial/1.10.4:
- with: gcc/7.3.0
relstage: deprecated
hdf5_serial/1.10.5:
- with: gcc/5.5.0
relstage: deprecated
- with: intel/19.3
relstage: deprecated
hdf5_serial/1.10.6:
- with: gcc/{7.5.0,8.4.0,9.3.0,10.2.0}
relstage: stable
hdf5_serial/1.10.7:
- with: gcc/{10.2.0,10.3.0,11.2.0}
relstage: stable
hdf5_serial/1.10.8:
- with: gcc/{6.5.0,7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0}
relstage: stable
hdf5_serial/1.12.0:
- with: gcc/10.2.0
relstage: stable
hdf5_serial/1.12.2:
- with: gcc/{6.5.0,7.5.0,8.5.0,9.5.0,10.3.0,11.3.0,12.1.0}
relstage: stable

View File

@@ -1,28 +1,70 @@
#!/usr/bin/env modbuild
pbuild::set_download_url "http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz"
pbuild::add_to_group 'Compiler'
pbuild::install_docfiles 'COPYRIGHT' 'README'
module use System
pbuild::pre_configure() {
unset F90
pbuild::add_configure_args "--enable-cxx"
pbuild::add_configure_args "--enable-fortran"
if pbuild::use_flag merlin; then
MXM_DIR='/opt/mellanox/mxm/'
pbuild::add_configure_args "--with-device=ch3:nemesis:mxm"
pbuild::add_configure_args "--with-mxm=${MXM_DIR}"
pbuild::add_configure_args "--without-x"
#pbuild::add_configure_args "--with-slurm-include=/usr/include/slurm"
#pbuild::add_configure_args "--with-slurm-lib=/usr/lib64"
#pbuild::add_configure_args "--with-pmi=slurm"
#pbuild::add_configure_args "--with-pm=no"
pbuild::add_configure_args "--enable-gl=no"
unset F90
pbuild::add_configure_args "--enable-shared"
pbuild::add_configure_args "--enable-static"
if [[ -v CUDA_VERSION ]]; then
std::info "Enabling CUDA ${CUDA_VERSION}."
pbuild::add_configure_args "--with-cuda=${CUDA_HOME}"
fi
if [[ -v HWLOC_VERSION ]]; then
unset HWLOC_VERSION
std::info "Enabling external hwloc ${HWLOC_PREFIX}."
pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}"
else
pbuild::add_configure_args "--with-hwloc=embedded"
fi
if [[ -v PMIX_VERSION ]]; then
std::info "Enabling PMIX ${PMIX_VERSION}."
unset PMIX_VERSION
pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}"
pbuild::add_configure_args "--with-pmi=pmix"
fi
if pbuild::use_flag merlin7 && [[ ! -v LIBFABRIC_VERSION ]]; then
if pkg-config --exists libfabric; then
std::info "Get LIBFABRIC_VERSION via pkg-config"
LIBFABRIC_PREFIX=$(pkg-config --variable=prefix libfabric)
LIBFABRIC_VERSION="$(LIBFABRIC_PREFIX##*/)"
fi
fi
if [[ "${COMPILER}" == 'gcc' ]] && (( ${COMPILER_VERSION%.*.*} == 10 )); then
pbuild::add_configure_args "FFLAGS=-fallow-argument-mismatch"
if [[ -v LIBFABRIC_VERSION ]]; then
std::info "Enabling libfabric ${LIBFABRIC_VERSION}."
if (( V_MAJOR < 4 )); then
pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}"
fi
pbuild::add_configure_args "--with-libfabric=${LIBFABRIC_PREFIX}"
fi
if [[ -v UCX_VERSION ]]; then
std::info "Enabling UCX ${UCX_VERSION}."
pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}"
fi
if [[ -v INTEL_VERSION ]]; then
pbuild::add_configure_args "CC=icc"
pbuild::add_configure_args "CXX=icpc"
pbuild::add_configure_args "FC=ifort"
pbuild::add_configure_args "F90=ifort"
pbuild::add_configure_args "F77=ifort"
pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0"
fi
if pbuild::use_flag slurm || \
pbuild::use_flag merlin6 || \
pbuild::use_flag merlin7; then
std::info "Enabling SLURM."
pbuild::add_configure_args "--with-slurm"
fi
}
# Local Variables:
# mode: sh
# sh-basic-offset: 8
# tab-width: 8
# End:

View File

@@ -0,0 +1,46 @@
---
# yamllint disable rule:line-length
format: 1
mpich:
defaults:
group: Compiler
overlay: base
relstage: stable
configure_args:
- --enable-cxx
- --enable-fortran
docfiles: [COPYRIGHT, README]
urls:
- url: http://www.mpich.org/static/downloads/$V/$P-${V_PKG}.tar.gz
shasums:
mpich-3.3.2.tar.gz: 4bfaf8837a54771d3e4922c84071ef80ffebddbb6971a006038d91ee7ef959b9
mpich-4.2.3.tar.gz: 7a019180c51d1738ad9c5d8d452314de65e828ee240bcb2d1f80de9a65be88a8
versions:
4.2.3:
variants:
- systems: [.*.merlin7.psi.ch]
relstage: unstable
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7, slurm]
group_deps:
compiler: {gcc: [12.3.0]}
build_requires: [hwloc/2.11.1, libfabric/1.15.2.0, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0]
configure_args+:
- --with-pm=hydra,gforker
3.3.2:
variants:
- systems: [.*.merlin7.psi.ch]
relstage: unstable
overlay: Alps
use_overlays: [PSI]
use_flags: [merlin7, slurm]
group_deps:
compiler: {gcc: [8.4.0]}
build_requires: [libfabric/1.15.2.0, patchelf/0.14.5]
patch_files:
- patch/mpich-v3.3.2.patch
configure_args+:
- --with-device=ch3:nemesis:ofi

View File

@@ -0,0 +1,13 @@
diff --git a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
index 9b35471f3..7b5dd782f 100644
--- a/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
+++ b/src/pm/hydra/tools/bootstrap/external/slurm_query_node_list.c
@@ -26,7 +26,7 @@ static struct HYD_node *global_node_list = NULL;
#if defined(HAVE_LIBSLURM)
static HYD_status list_to_nodes(char *str)
{
- hostlist_t hostlist;
+ hostlist_t *hostlist;
char *host;
int k = 0;
HYD_status status = HYD_SUCCESS;

View File

@@ -1,110 +1,156 @@
#!/usr/bin/env modbuild
# pbuild::set_download_url \
# "http://www.open-mpi.org/software/ompi/v${V_MAJOR}.${V_MINOR}/downloads/openmpi-${V_PKG}.tar.bz2"
pbuild::set_download_url \
"https://download.open-mpi.org/release/open-mpi/v${V_MAJOR}.${V_MINOR}/openmpi-${V_PKG}.tar.bz2"
pbuild::set_sha256sum "openmpi-3.1.2.tar.bz2:c654ed847f34a278c52a15c98add40402b4a90f0c540779f1ae6c489af8a76c5"
pbuild::add_to_group 'Compiler'
pbuild::install_docfiles 'AUTHORS' 'LICENSE' 'NEWS' 'README'
pbuild::pre_configure() {
pbuild::add_configure_args "--prefix=${PREFIX}"
pbuild::add_configure_args "--enable-mpi-cxx"
pbuild::add_configure_args "--enable-mpi-cxx-seek"
pbuild::add_configure_args "--enable-orterun-prefix-by-default"
pbuild::add_configure_args "--enable-shared"
pbuild::add_configure_args "--enable-static"
pbuild::add_configure_args "--with-slurm=yes"
if [[ -n "${CUDA_VERSION}" ]]; then
pbuild::add_configure_args "--with-cuda=${CUDA_HOME}"
if (( V_MAJOR < 5 )); then
pbuild::add_configure_args "--enable-mpi-cxx"
pbuild::add_configure_args "--enable-mpi-cxx-seek"
pbuild::add_configure_args "--enable-orterun-prefix-by-default"
fi
if (( V_MAJOR < 5 )) && pbuild::use_flag 'slurm'; then
pbuild::add_configure_args "--with-pmi=/usr"
pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/slurmpmi"
fi
if (( V_MAJOR < 5 )) && pbuild::use_flag 'ra'; then
pbuild::add_configure_args "--with-pmi=/usr"
pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/slurm"
fi
if (( V_MAJOR >= 5 )); then
pbuild::add_configure_args "--enable-prte-prefix-by-default"
fi
if (( V_MAJOR < 4 )); then
pbuild::add_configure_args "--enable-mpi-f90"
pbuild::add_configure_args "--enable-mpi-profile"
pbuild::add_configure_args "--enable-smp-locks"
fi
if (( V_MAJOR >= 4 )); then
pbuild::add_configure_args "--enable-mpi-fortran"
fi
if (( V_MAJOR == 4 )); then
pbuild::add_configure_args "--without-verbs"
fi
if [[ -n "${HWLOC_VERSION}" ]]; then
if [[ -v CUDA_VERSION ]]; then
std::info "Enabling CUDA ${CUDA_VERSION}."
pbuild::add_configure_args "--with-cuda=${CUDA_HOME}"
if (( V_MAJOR >= 5 )); then
pbuild::add_configure_args "--with-cuda-libdir=${CUDA_HOME}/lib64/stubs"
fi
fi
if [[ -v HWLOC_VERSION ]]; then
unset HWLOC_VERSION
std::info "Enabling external hwloc ${HWLOC_PREFIX}."
pbuild::add_configure_args "--with-hwloc=${HWLOC_PREFIX}"
else
pbuild::add_configure_args "--with-hwloc=internal"
fi
if [[ -n "${LIBEVENT_VERSION}" ]]; then
if [[ -v LIBEVENT_VERSION ]]; then
std::info "Enabling libevent ${LIBEVENT_VERSION}."
pbuild::add_configure_args "--with-libevent=${LIBEVENT_PREFIX}"
fi
if [[ -n "${PMIX_VERSION}" ]]; then
if [[ -v PMIX_VERSION ]]; then
std::info "Enabling PMIX ${PMIX_VERSION}."
unset PMIX_VERSION
pbuild::add_configure_args "--with-pmix=${PMIX_PREFIX}"
fi
if [[ -n "${LIBFABRIC_VERSION}" ]]; then
if pbuild::use_flag merlin7 && [[ ! -v LIBFABRIC_VERSION ]]; then
if pkg-config --exists libfabric; then
std::info "Get LIBFABRIC_VERSION via pkg-config"
LIBFABRIC_PREFIX=$(pkg-config --variable=prefix libfabric)
LIBFABRIC_VERSION="$(LIBFABRIC_PREFIX##*/)"
fi
fi
if [[ -v LIBFABRIC_VERSION ]]; then
std::info "Enabling libfabric ${LIBFABRIC_VERSION}."
pbuild::add_configure_args "--with-ofi=${LIBFABRIC_PREFIX}"
fi
if [[ -n "${UCX_VERSION}" ]]; then
if [[ -v UCX_VERSION ]]; then
std::info "Enabling UCX ${UCX_VERSION}."
pbuild::add_configure_args "--with-ucx=${UCX_PREFIX}"
fi
if [[ -n "${INTEL_VERSION}" ]]; then
if [[ -v INTEL_VERSION ]]; then
pbuild::add_configure_args "CC=icc"
pbuild::add_configure_args "CXX=icpc"
pbuild::add_configure_args "FC=ifort"
pbuild::add_configure_args "F90=ifort"
pbuild::add_configure_args "F77=ifort"
pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0"
# -O0 was probably added for enabling debugging:
# pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel,-O0"
pbuild::add_configure_args "LDFLAGS=-Wc,-static-intel"
fi
if pbuild::use_flag slurm || pbuild::use_flag dgx || pbuild::use_flag merlin6; then
pbuild::add_configure_args "--with-gpfs=/usr/lpp/mmfs"
pbuild::add_configure_args "--with-pmi"
# pbuild::add_configure_args "--with-pmi-libdir=/usr/lib64/"
if pbuild::use_flag "libpmix"; then
pbuild::add_configure_args "--enable-install-libpmix"
fi
fi
local version
(( version = (${V_MAJOR} * 100 + ${V_MINOR}) * 100 + V_PATCHLVL ))
if (( V_MAJOR < 4 )); then
pbuild::add_configure_args "--enable-mpi-f90"
pbuild::add_configure_args "--enable-mpi-profile"
pbuild::add_configure_args "--enable-smp-locks"
elif (( V_MAJOR >= 4 )); then
pbuild::add_configure_args "--enable-mpi-fortran"
pbuild::add_configure_args "--without-verbs"
if pbuild::use_flag slurm || \
pbuild::use_flag dgx || \
pbuild::use_flag merlin6 || \
pbuild::use_flag merlin7; then
std::info "Enabling SLURM."
pbuild::add_configure_args "--with-slurm=yes"
fi
if pbuild::use_flag dgx || pbuild::use_flag merlin6 || pbuild::use_flag "gpfs"; then
std::info "Enabling GPFS."
pbuild::add_configure_args "--with-gpfs=/usr/lpp/mmfs"
fi
if pbuild::use_flag "libpmix"; then
std::info "Enabling install of libpmix."
pbuild::add_configure_args "--enable-install-libpmix"
fi
}
pbuild::post_install_no_slurm() {
if ! pbuild::use_flag slurm && \
! pbuild::use_flag dgx && \
! pbuild::use_flag merlin6 && \
! pbuild::use_flag merlin7; then
mkdir -p "${PREFIX}/lib/fallback"
local -r binary=$(ls "${PREFIX}"/lib/libmpi.so.*.*.*)
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuc[mpst].so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuct_ib.so.0'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libnuma.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libibverbs.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/librdmacm.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so'
fi
}
pbuild::post_install() {
if ! pbuild::use_flag slurm && ! pbuild::use_flag dgx && ! pbuild::use_flag merlin6; then
mkdir -p "${PREFIX}/lib/fallback"
local -r binary=$(ls "${PREFIX}"/lib/libmpi.so.*.*.*)
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuc[mpst].so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libuct_ib.so.0'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libnuma.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libibverbs.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/librdmacm.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so'
pbuild::install_shared_libs "${binary}" "${PREFIX}/lib/fallback" '/libpmi2.so'
if [[ -v CUDA_VERSION ]]; then
grep -qxF "opal_warn_on_missing_libcuda = 0" ${PREFIX}/etc/openmpi-mca-params.conf || \
echo "opal_warn_on_missing_libcuda = 0" >> ${PREFIX}/etc/openmpi-mca-params.conf
if (( V_MAJOR == 5 )); then
grep -qxF "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" ${PREFIX}/etc/openmpi-mca-params.conf || \
echo "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" >> ${PREFIX}/etc/openmpi-mca-params.conf
grep -qxF "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" ${PREFIX}/etc/prte-mca-params.conf || \
echo "mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'" >> ${PREFIX}/etc/prte-mca-params.conf
fi
fi
if [[ -n "${CUDA_VERSION}" ]]; then
echo "opal_warn_on_missing_libcuda = 0" >> ${PREFIX}/etc/openmpi-mca-params.conf
fi
for FILE in $(find $PREFIX -type f \( ! -name "*.a" -and ! -name "*.mod" \) -exec grep -IL . "{}" \;)
do
OLD_RPATH=$(objdump -a -x $FILE | grep RPATH | awk '{print $2}')
NEW_RPATH=$(echo $OLD_RPATH | sed 's/:\/usr\/lib64:/:/g')
if [[ "${OLD_RPATH}" != "${NEW_RPATH}" ]]; then
patchelf --force-rpath --set-rpath "${NEW_RPATH}" "${FILE}"
fi
done
local fname=''
local old_rpath=''
local new_rpath=''
# remove '/usr/lib64' from RPATH/RUNPATH
while read fname; do
old_rpath=$(objdump -x "${fname}" | awk '/RPATH|RUNPATH/ {print $2}')
new_rpath=$(echo "${old_rpath}" | sed 's/:\/usr\/lib64:/:/g')
if [[ "${old_rpath}" != "${new_rpath}" ]]; then
patchelf \
--force-rpath \
--set-rpath "${new_rpath}" \
"${fname}"
fi
done < <(find "${PREFIX}" -type f \( ! -name "*.a" -and ! -name "*.mod" \) \
-exec grep -IL . "{}" \;)
}
# Local Variables:
# mode: sh
# sh-basic-offset: 8
# tab-width: 8
# End:

View File

@@ -0,0 +1,321 @@
---
# yamllint disable rule:line-length
format: 1
openmpi:
defaults:
group: Compiler
overlay: base
relstage: stable
configure_args:
- --enable-shared
docfiles: [AUTHORS, LICENSE, NEWS, README]
urls:
- url: https://download.open-mpi.org/release/open-mpi/v${V_MAJOR}.${V_MINOR}/openmpi-${V_PKG}.tar.bz2
shasums:
openmpi-1.10.0.tar.bz2: 26b432ce8dcbad250a9787402f2c999ecb6c25695b00c9c6ee05a306c78b6490
openmpi-1.10.4.tar.bz2: fb3c0c4c77896185013b6091b306d29ba592eb40d8395533da5c8bc300d922db
openmpi-1.10.7.tar.bz2: a089ece151fec974905caa35b0a59039b227bdea4e7933069e94bee4ed0e5a90
openmpi-1.4.3.tar.bz2: 220b72b1c7ee35469ff74b4cfdbec457158ac6894635143a33e9178aa3981015
openmpi-1.4.5.tar.bz2: a3857bc69b7d5258cf7fc1ed1581d9ac69110f5c17976b949cb7ec789aae462d
openmpi-1.6.5.tar.bz2: fe37bab89b5ef234e0ac82dc798282c2ab08900bf564a1ec27239d3f1ad1fc85
openmpi-1.8.0.tar.bz2: 8ce8a0fb60d39469adba0adc4d0b94b3055ef6f800d536dbcb788f334b55db0d
openmpi-1.8.1.tar.bz2: 171427ebc007943265f33265ec32e15e786763952e2bfa2eac95e3e192c1e18f
openmpi-1.8.2.tar.bz2: ab70770faf1bac15ef44301fe2186b02f857646545492dd7331404e364a7d131
openmpi-1.8.4.tar.bz2: 23158d916e92c80e2924016b746a93913ba7fae9fff51bf68d5c2a0ae39a2f8a
openmpi-1.8.8.tar.bz2: a28382d1e6a36f4073412dc00836ff2524e42b674da9caf6ca7377baad790b94
openmpi-2.0.0.tar.bz2: 08b64cf8e3e5f50a50b4e5655f2b83b54653787bd549b72607d9312be44c18e0
openmpi-2.0.1.tar.bz2: fed74f4ae619b7ebcc18150bb5bdb65e273e14a8c094e78a3fea0df59b9ff8ff
openmpi-2.1.0.tar.bz2: b169e15f5af81bf3572db764417670f508c0df37ce86ff50deb56bd3acb43957
openmpi-2.1.1.tar.bz2: bd7badd4ff3afa448c0d7f3ca0ee6ce003b957e9954aa87d8e4435759b5e4d16
openmpi-2.1.2.tar.bz2: 3cc5804984c5329bdf88effc44f2971ed244a29b256e0011b8deda02178dd635
openmpi-2.1.5.tar.bz2: b807ccab801f27c3159a5edf29051cd3331d3792648919f9c4cee48e987e7794
openmpi-2.1.6.tar.bz2: 98b8e1b8597bbec586a0da79fcd54a405388190247aa04d48e8c40944d4ca86e
openmpi-3.0.0.tar.bz2: f699bff21db0125d8cccfe79518b77641cd83628725a1e1ed3e45633496a82d7
openmpi-3.0.1.tar.bz2: 663450d1ee7838b03644507e8a76edfb1fba23e601e9e0b5b2a738e54acd785d
openmpi-3.0.5.tar.bz2: f8976b95f305efc435aa70f906b82d50e335e34cffdbf5d78118a507b1c6efe8
openmpi-3.1.1.tar.bz2: 3f11b648dd18a8b878d057e9777f2c43bf78297751ad77ae2cef6db0fe80c77c
openmpi-3.1.2.tar.bz2: c654ed847f34a278c52a15c98add40402b4a90f0c540779f1ae6c489af8a76c5
openmpi-3.1.3.tar.bz2: 8be04307c00f51401d3fb9d837321781ea7c79f2a5a4a2e5d4eaedc874087ab6
openmpi-3.1.4.tar.bz2: 17a69e0054db530c7dc119f75bd07d079efa147cf94bf27e590905864fe379d6
openmpi-3.1.5.tar.bz2: fbf0075b4579685eec8d56d34d4d9c963e6667825548554f5bf308610af72133
openmpi-3.1.6.tar.bz2: 50131d982ec2a516564d74d5616383178361c2f08fdd7d1202b80bdf66a0d279
openmpi-4.0.0.tar.bz2: 2f0b8a36cfeb7354b45dda3c5425ef8393c9b04115570b615213faaa3f97366b
openmpi-4.0.1.tar.bz2: cce7b6d20522849301727f81282201d609553103ac0b09162cf28d102efb9709
openmpi-4.0.2.tar.bz2: 900bf751be72eccf06de9d186f7b1c4b5c2fa9fa66458e53b77778dffdfe4057
openmpi-4.0.3.tar.bz2: 1402feced8c3847b3ab8252165b90f7d1fa28c23b6b2ca4632b6e4971267fd03
openmpi-4.0.4.tar.bz2: 47e24eb2223fe5d24438658958a313b6b7a55bb281563542e1afc9dec4a31ac4
openmpi-4.0.5.tar.bz2: c58f3863b61d944231077f344fe6b4b8fbb83f3d1bc93ab74640bf3e5acac009
openmpi-4.0.6.tar.bz2: 94b7b59ae9860f3bd7b5f378a698713e7b957070fdff2c43453b6cbf8edb410c
openmpi-4.0.7.tar.bz2: 7d3ecc8389161eb721982c855f89c25dca289001577a01a439ae97ce872be997
openmpi-4.1.0.tar.bz2: 73866fb77090819b6a8c85cb8539638d37d6877455825b74e289d647a39fd5b5
openmpi-4.1.1rc2.tar.bz2: f7d572621c93934b329281ee159c89124905ef05900d1a817efb7d262442d0f3
openmpi-4.1.1.tar.bz2: e24f7a778bd11a71ad0c14587a7f5b00e68a71aa5623e2157bafee3d44c07cda
openmpi-4.1.3.tar.bz2: 3d81d04c54efb55d3871a465ffb098d8d72c1f48ff1cbaf2580eb058567c0a3b
openmpi-4.1.4.tar.bz2: 92912e175fd1234368c8730c03f4996fe5942e7479bb1d10059405e7f2b3930d
openmpi-4.1.5.tar.bz2: a640986bc257389dd379886fdae6264c8cfa56bc98b71ce3ae3dfbd8ce61dbe3
openmpi-4.1.6.tar.bz2: f740994485516deb63b5311af122c265179f5328a0d857a567b85db00b11e415
openmpi-5.0.5.tar.bz2: 6588d57c0a4bd299a24103f4e196051b29e8b55fbda49e11d5b3d32030a32776
versions:
# 5.0.6:
# config:
# configure_args+:
# - --enable-mpi1-compatibility
# - --enable-static=no
# variants:
# - systems: [.*.merlin7.psi.ch]
# relstage: unstable
# overlay: Alps
# use_overlays: [PSI, Alps]
# group_deps:
# compiler: {gcc: [14.2.0,12.3.0,8.5.0], intelcc: [22.2]}
# build_requires: [hwloc/2.11.1, patchelf/0.14.5]
# runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.4]
# configure_args+:
# - --with-cxi
# - --with-lustre
# - --with-slingshot
# use_flags: [merlin7, slurm]
5.0.5:
config:
configure_args+:
- --enable-mpi1-compatibility
- --enable-static=no
variants:
- systems: [.*.merlin7.psi.ch]
relstage: stable
overlay: Alps
use_overlays: [PSI, Alps]
group_deps:
compiler: {gcc: [14.2.0, 12.3.0, 8.5.0],
intelcc: [22.2]}
build_requires: [hwloc/2.11.1, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/5.0.3]
configure_args+:
- --with-cxi
- --with-lustre
- --with-slingshot
use_flags: [merlin7, slurm]
4.1.6:
config:
build_variants: first_match
variants:
- systems: [merlin-.*]
suffix: _slurm
use_flags: [merlin6, gpfs]
relstage: stable
overlay: base
group_deps:
compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 12.4.0, 13.1.0, 13.2.0, 14.2.0]}
build_requires:
- pmix/4.2.4
- ucx/1.14.1_slurm
- libfabric/1.18.0
- hwloc/2.9.1
- patchelf/0.14.5
runtime_deps: [cuda/12.1.1]
configure_args+:
- CFLAGS=-g -O0
- LDFLAGS=-g
- --with-gpfs=/usr/lpp/mmfs
- --with-pmi=/usr
- --enable-static
- systems: [ra-.*]
suffix: _ra
use_flags: [ra, gpfs]
group_deps:
compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]}
build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, hwloc/2.9.1, patchelf/0.14.5]
runtime_deps: [cuda/12.1.1]
configure_args+:
- --with-gpfs=/usr/lpp/mmfs
- --with-pmi=/usr
- --enable-static
- systems: [.*.merlin7.psi.ch]
relstage: stable
overlay: Alps
group_deps:
compiler: {gcc: [12.3.0, 13.3.0, 14.2.0], intelcc: [22.2]}
build_requires: [hwloc/2.11.1, patchelf/0.14.5]
runtime_deps: [cuda/12.2.0, libfabric/1.15.2.0, pmix/4.2.9]
configure_args+:
- --enable-mpi1-compatibility
- --enable-static=no
- --with-lustre
use_overlays: [PSI, Alps]
use_flags: [merlin7, slurm]
4.1.4:
variants:
- systems: [merlin-*, ra-*]
relstage: unstable
suffix: _slurm
group_deps:
compiler: {nvhpc: [24.3_cuda_12.3, 23.5_cuda_12.1]}
build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5]
4.1.5:
variants:
- systems: [merlin-*, ra-*]
suffix: _slurm
group_deps:
compiler: {gcc: [9.5.0, 10.4.0, 11.4.0, 12.3.0, 13.1.0]}
build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5]
runtime_deps: [cuda/12.1.1]
- systems: [merlin-*, ra-*]
suffix: _slurm
relstage: unstable
group_deps:
compiler: {intelcc: [22.2]}
build_requires: [pmix/4.2.4, ucx/1.14.1_slurm, libfabric/1.18.0, hwloc/2.9.1, patchelf/0.14.5]
runtime_deps: [cuda/12.1.1]
4.1.4_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [10.4.0]}
runtime_deps: [cuda/11.5.1]
build_requires: [ucx/1.12.1_slurm]
4.1.3_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [9.3.0, 10.3.0, 11.2.0]}
runtime_deps: [cuda/11.5.1]
build_requires: [ucx/1.12.1_slurm]
4.1.1-1_slurm:
config:
relstage: unstable
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.3.0]
build_requires: [ucx/1.10.0_slurm]
4.1.1_slurm:
config:
relstage: unstable
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.3.0]
build_requires: [ucx/1.11.2_slurm]
4.1.0-1_dgx:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.2.2]
build_requires: [ucx/1.10.0-1_dgx]
4.0.7-1_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.4.3]
build_requires: [ucx/1.11.2-1_slurm]
4.0.7_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.5.1]
build_requires: [ucx/1.11.2-2_slurm]
4.0.5-2_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [10.2.0]}
runtime_deps: [cuda/11.3.0]
build_requires: [ucx/1.11.0_slurm]
4.0.5-1_slurm:
config:
relstage: stable
group_deps:
compiler: {gcc: [8.4.0, 9.3.0, 10.2.0, 10.3.0]}
runtime_deps: [cuda/11.2.2]
build_requires: [ucx/1.10.0-1_slurm]
4.0.5-1_dgx:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [8.4.0, 9.3.0, 10.2.0]}
runtime_deps: [cuda/11.2.2]
build_requires: [ucx/1.10.0-1_dgx]
4.0.5_slurm:
config:
relstage: stable
variants:
- group_deps:
compiler: {gcc: [gcc/9.2.0]}
runtime_deps: [cuda/11.0.3]
- group_deps:
compiler: {gcc: [8.4.0, 9.3.0], intel: [20.4]}
runtime_deps: [cuda/11.1.0]
4.0.4_slurm_libpmix:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [9.3.0]}
4.0.4_slurm:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.5.0, 8.4.0, 9.3.0], intel: [15.2, 17.4, 18.4, 20.1]}
4.0.3_slurm:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.5.0, 8.4.0, 9.3.0], intel: [15.2, 17.4, 18.4, 20.1]}
3.1.6_slurm:
config:
relstage: deprecated
variants:
- group_deps:
compiler: {gcc: [4.9.4, 5.5.0, 6.5.0], intel: [15.2, 17.4, 18.4, 20.1]}
- group_deps:
compiler: {gcc: [7.5.0, 8.4.0, 9.3.0]}
relstage: stable
- group_deps:
compiler: {intel: [20.4]}
runtime_deps: [cuda/11.1.0]
3.1.4_merlin6:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [7.4.0, 8.3.0]}
3.1.5_merlin6;3.1.5-1_merlin6:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [7.3.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]}
3.0.5_slurm:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]}
2.1.6_slurm:
config:
relstage: deprecated
group_deps:
compiler: {gcc: [4.9.4, 5.5.0, 6.5.0, 7.4.0, 8.3.0, 9.2.0], intel: [15.2, 17.4, 18.4]}

View File

@@ -40,7 +40,7 @@ openmpi/4.1.1-1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.10.0_slurm
openmpi/4.1.3_slurm stable gcc/{9.3.0,10.3.0,11.2.0} cuda/11.5.1 b:ucx/1.12.1_slurm
openmpi/4.1.4_slurm stable gcc/10.4.0 cuda/11.5.1 b:ucx/1.12.1_slurm
openmpi/4.1.5_slurm unstable gcc/{10.4.0,11.4.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5
openmpi/4.1.5_slurm stable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5
openmpi/4.1.5_slurm unstable intelcc/22.2 b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5
openmpi/4.0.5-1_dgx deprecated gcc/{8.4.0,9.3.0,10.2.0} cuda/11.2.2 b:ucx/1.10.0-1_dgx

View File

@@ -0,0 +1,50 @@
openmpi/3.1.4_merlin6 deprecated gcc/{7.4.0,8.3.0}
openmpi/3.1.5_merlin6 deprecated gcc/{7.3.0,7.4.0,8.3.0,9.2.0}
openmpi/3.1.5_merlin6 deprecated intel/{15.2,17.4,18.4}
openmpi/3.1.5-1_merlin6 deprecated gcc/{7.3.0,7.4.0,8.3.0,9.2.0}
openmpi/3.1.5-1_merlin6 deprecated intel/{15.2,17.4,18.4}
openmpi/2.1.6_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.4.0,8.3.0,9.2.0}
openmpi/2.1.6_slurm deprecated intel/{15.2,17.4,18.4}
openmpi/3.0.5_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.4.0,8.3.0,9.2.0}
openmpi/3.0.5_slurm deprecated intel/{15.2,17.4,18.4}
openmpi/3.1.6_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0}
openmpi/3.1.6_slurm stable gcc/{7.5.0,8.4.0,9.3.0}
openmpi/3.1.6_slurm deprecated intel/{15.2,17.4,18.4,20.1}
openmpi/3.1.6_slurm deprecated intel/20.4 cuda/11.1.0
openmpi/4.0.3_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.5.0,8.4.0,9.3.0}
openmpi/4.0.3_slurm deprecated intel/{15.2,17.4,18.4,20.1}
openmpi/4.0.4_slurm deprecated gcc/{4.9.4,5.5.0,6.5.0,7.5.0,8.4.0,9.3.0}
openmpi/4.0.4_slurm deprecated intel/{15.2,17.4}
openmpi/4.0.4_slurm deprecated intel/{18.4,20.1}
openmpi/4.0.5_slurm stable gcc/9.2.0 cuda/11.0.3
openmpi/4.0.5_slurm stable gcc/{8.4.0,9.3.0} cuda/11.1.0
openmpi/4.0.5_slurm stable intel/20.4 cuda/11.1.0
openmpi/4.0.5-1_slurm stable gcc/{8.4.0,9.3.0,10.2.0,10.3.0} cuda/11.2.2 b:ucx/1.10.0-1_slurm
openmpi/4.0.5-2_slurm stable gcc/10.2.0 cuda/11.3.0 b:ucx/1.11.0_slurm
openmpi/4.0.7_slurm stable gcc/10.2.0 cuda/11.5.1 b:ucx/1.11.2-2_slurm
openmpi/4.0.7-1_slurm stable gcc/10.2.0 cuda/11.4.3 b:ucx/1.11.2-1_slurm
openmpi/4.1.1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.11.2_slurm
openmpi/4.1.1-1_slurm unstable gcc/10.2.0 cuda/11.3.0 b:ucx/1.10.0_slurm
openmpi/4.1.3_slurm stable gcc/{9.3.0,10.3.0,11.2.0} cuda/11.5.1 b:ucx/1.12.1_slurm
openmpi/4.1.4_slurm stable gcc/10.4.0 cuda/11.5.1 b:ucx/1.12.1_slurm
openmpi/4.1.5_slurm stable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5
openmpi/4.1.5_slurm unstable intelcc/22.2 b:cuda/12.1.1 b:pmix/4.2.4 b:ucx/1.14.1_slurm b:libfabric/1.18.0 b:hwloc/2.9.1 b:patchelf/0.14.5
openmpi/4.0.5-1_dgx deprecated gcc/{8.4.0,9.3.0,10.2.0} cuda/11.2.2 b:ucx/1.10.0-1_dgx
openmpi/4.1.0-1_dgx deprecated gcc/10.2.0 cuda/11.2.2 b:ucx/1.10.0-1_dgx
openmpi/4.0.4_slurm_libpmix deprecated gcc/9.3.0

View File

@@ -52,3 +52,5 @@ openmpi/4.0.5 stable gcc/{7.5.0,8.4.0,9.3.0,10.2.0} ucx/1.8.1
openmpi/4.0.5 stable gcc/10.3.0
openmpi/4.1.4 stable gcc/10.4.0
openmpi/4.1.5 unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0}

View File

@@ -44,3 +44,12 @@ if { $libcuda eq "" } {
prepend-path LD_LIBRARY_PATH $PREFIX/lib/fallback/cuda
}
}
if {[info exists ::env(PMIX_VERSION)]} {
set pmix_major_version [lindex [split $::env(PMIX_VERSION) "."] 0]
setenv SLURM_MPI_TYPE "pmix_v$pmix_major_version"
}
if { $V_MAJOR >= 5 } {
setenv OMPI_MCA_mca_base_component_show_load_errors = '^accelerator,rcache,btl/smcuda'
}

34
EM/DeepEMhancer/build Executable file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env modbuild
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
#activate env and download deep learning models
mkdir -p "$PREFIX/deepmodels"
source "$PREFIX/miniconda/etc/profile.d/conda.sh"
conda activate "${P}_${V}"
deepemhancer --download "$PREFIX/deepmodels"
conda deactivate
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install(){
:
}

View File

@@ -0,0 +1,7 @@
channels:
- rsanchez1369
- anaconda
- conda-forge
dependencies:
- python=3.10
- deepEMhancer

View File

@@ -0,0 +1,13 @@
---
format: 1
DeepEMhancer:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
0.16:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable

View File

@@ -0,0 +1,34 @@
#%Module
module-whatis "Deep cryo-EM Map Enhancer (DeepEMhancer) "
module-url "https://github.com/rsanchezgarc/deepEMhancer"
module-license "Apache-2.0 License"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "DeepEMhancer is a python package designed to perform post-processing of cryo-EM maps as described in DeepEMhancer: a deep learning solution for cryo-EM volume post-processing, by Sanchez-Garcia et al, 2021."
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "conda(){ :; };"
puts stdout "set +u"
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}

10
EM/EMAN/README.md Normal file
View File

@@ -0,0 +1,10 @@
# EMAN
From version 2.99.53 (Oct. 23) EMAN is built as a conda package.
Current installation on Merlin7 (Nov 24) is 2.99.66
### Hints
conda installation on A100 GPU

View File

@@ -1,23 +1,27 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'EM'
pbuild::prep() {
local EMAN2DL="${PMODULES_TMPDIR:-/tmp}/eman${V}_sphire1.4_sparx.linux64.sh"
if ! [ -f "$EMAN2DL" ]; then
wget -O "$EMAN2DL" "https://cryoem.bcm.edu/cryoem/static/software/release-${V}/eman${V}_sphire1.4_sparx.linux64.sh"
fi
}
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install() {
pbuild::install(){
:
}
pbuild::compile() {
bash ${PMODULES_TMPDIR:-/tmp}/eman${V}_sphire1.4_sparx.linux64.sh -u -b -p $PREFIX
}

5
EM/EMAN/environment.yaml Normal file
View File

@@ -0,0 +1,5 @@
channels:
- cryoem
- conda-forge
dependencies:
- eman-dev

13
EM/EMAN/files/config.yaml Normal file
View File

@@ -0,0 +1,13 @@
---
format: 1
EMAN:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
2.99.66:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable

View File

@@ -1,2 +0,0 @@
EMAN/2.99.47 unstable cuda/11.2.2
EMAN/2.2 stable

View File

@@ -1,37 +1,34 @@
#%Module1.0
#%Module
set dont-setenv {LD_LIBRARY_PATH}
module-whatis "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes "
module-url "https://blake.bcm.edu/emanwiki/EMAN2"
module-license "GNU gerneral public license: GPLv2"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-whatis "EMAN(2) is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes"
module-url "https://blake.bcm.edu/emanwiki/EMAN2"
module-license "GPL license"
module-maintainer "Elsa Germann <elsa.germann@psi.ch>"
module-help "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes. EMAN's original purpose was performing single particle reconstructions (3-D volumetric models from 2-D cryo-EM images) at the highest possible resolution, but the suite now also offers support for single particle cryo-ET, and tools useful in many other subdisciplines such as helical reconstruction, 2-D crystallography and whole-cell tomography. EMAN2 is capable of processing large data sets (>100,000 particle) very efficiently"
module-help "EMAN2 is a broadly based greyscale scientific image processing suite with a primary focus on processing data from transmission electron microscopes. EMAN's original purpose was performing single particle reconstructions (3-D volumetric models from 2-D cryo-EM images) at the highest possible resolution, but the suite now also offers support for single particle cryo-ET, and tools useful in many other subdisciplines such as helical reconstruction, 2-D crystallography and whole-cell tomography. EMAN2 is capable of processing large data sets (>100,000 particle) very efficiently.
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "conda(){ :; };"
puts stdout "set +u"
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
Please also note that this is not the (related) EMEN2 electronic notebook, but is EMAN2, a scientific image processing suite.
Please Cite (and read)
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}
EMAN is free software, supported by NIH Grants. It is critical that you cite EMAN2 when you use it in a publication in any significant way, to help us document usage when trying to renew our funding. Feel free to cite any of these:
Primary EMAN2 paper:
G. Tang, L. Peng, P.R. Baldwin, D.S. Mann, W. Jiang, I. Rees & S.J. Ludtke. (2007) EMAN2: an extensible image processing suite for electron microscopy. J Struct Biol. 157, 38-46. PMID: 16859925
Subnanometer resolution subtomogram averaging using PPPT methods:
Chen M, Bell JM, Shi X, Sun SY, Wang Z, Ludtke SJ. Nat Methods. (2019) A complete data processing workflow for cryo-ET and subtomogram averaging, Nat. Methods, 16(11):1161-1168, PMC31611690
Neural Network Based Tomogram Segmentation
Chen M, Dai W, Sun SY, Jonasch D, He CY, Schmid MF, et al. (2017). Convolutional neural networks for automated annotation of cellular cryo-electron tomograms. Nat. Methods, 14(10), 9835. PMCID: PMC5623144
Neural Network Particle Picker
Bell JM, Chen M, Durmaz T, Fluty AC, Ludtke SJ. (2018). New software tools in EMAN2 inspired by EMDatabank map challenge. J. Struct. Biol. Elsevier;, 204(2), 28390.
EMAN2 high resolution refinement methods:
J.M. Bell, M. Chen, P.R. Baldwin & S.J. Ludtke. (2016) High Resolution Single Particle Refinement in EMAN2.1. Methods. 100, 25-34. PMC4848122
Methods for analysis of conformational and compositional variability:
Ludtke, S. J. \"Single-Particle Refinement and Variability Analysis in EMAN2.1.\" in Methods Enzymol 579159-189 (Elsevier, United States, 2016). PMC5101015
"

View File

@@ -12,3 +12,7 @@ The installation includes environment scripts which install into
`$IMOD_DIR/profile.d`. These are sourced in the modulefile. This means that the
module cannot be unloaded cleanly (eg IMOD remains in the PATH after
unloading).
TODO solution: re-write the .sh script that is sourced in the modulefile into the
modulefile directly. Variables and Path extensions will then automatically be
"unset" when unloding.

View File

@@ -1,18 +1,16 @@
#!/usr/bin/env modbuild
set -e
pbuild::add_to_group 'EM'
pbuild::prep() {
: ${CUDA_VERSION:?No CUDA_VERSION set}
#local cuda="${CUDA_VERSION%.*}" IF the cua version matches the cuda version in the filename
local cuda="${CUDA_VERSION%.*}"
local filename="imod_${V_PKG}_RHEL7-64_CUDA${cuda}.sh"
if [[ $V_RELEASE == *beta* ]]; then
local url="https://bio3d.colorado.edu/ftp/latestIMOD/RHEL7-64_CUDA${cuda}/$filename"
else
local url="https://bio3d.colorado.edu/imod/AMD64-RHEL5/$filename"
fi
#otherwise:
local cuda="12.0"
local filename="imod_${V_PKG}_RHEL8-64_CUDA${cuda}.sh"
# beta release link for Merlin7 ( RH8 for Opensuse)
local url="https://bio3d.colorado.edu/ftp/latestIMOD/RHEL8-64_CUDA${cuda}/$filename"
local dst="$PMODULES_DISTFILESDIR/${filename}"
if [ -f "$dst" ]; then
echo "Found cached $dst" >&2
@@ -35,8 +33,11 @@ pbuild::compile() {
pbuild::install() {
: ${CUDA_VERSION:?No CUDA_VERSION set}
local cuda="${CUDA_VERSION%.*}"
local filename="imod_${V_PKG}_RHEL7-64_CUDA${cuda}.sh"
#local cuda="${CUDA_VERSION%.*}"
#(if cuda version matches the file name) if not:
local cuda="12.0"
local filename="imod_${V_PKG}_RHEL8-64_CUDA${cuda}.sh"
local dst="$PMODULES_DISTFILESDIR/${filename}"
mkdir -p "$PREFIX/profile.d"

15
EM/IMOD/files/config.yaml Normal file
View File

@@ -0,0 +1,15 @@
---
format: 1
IMOD:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
5.0.0:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable
runtime_deps:
- cuda/12.2.0

View File

@@ -1,4 +0,0 @@
IMOD/4.9.5 stable
IMOD/4.11.20 stable cuda/10.1.105
IMOD/4.11.24 unstable cuda/10.1.105
IMOD/4.12.50-beta unstable cuda/10.1.105

View File

@@ -3,7 +3,7 @@
module-whatis "IMOD is a set of image processing, modeling and display programs used for tomographic reconstruction and for 3D reconstruction of EM serial sections and optical sections."
module-url "http://bio3d.colorado.edu/imod/"
module-license "mostly GPLv2.0, with the exceptions, see http://bio3d.colorado.edu/imod/COPYRIGHT.txt"
module-maintainer "Spencer Bliven <spencer.bliven@psi.ch> / Dmitry Ozerov <dmitry.ozerov@psi.ch>"
module-maintainer "Greta Assmann - greta.assmann@psi.ch"
module-help "
IMOD is a set of image processing, modeling and display programs used for tomographic
@@ -34,6 +34,11 @@ For tomographic reconstruction, see also:
> tomographic reconstruction in IMOD. J. Struct. Biol. 197:102-113.
"
# TO DO : rewrite IMOD-linx.sh script directly into the following section instead of sourcing the script
#this is needed to NOT set the default IMOD_DIR by pmodules, as this is set later in the IMOD-linux.sh
set dont-setenv { IMOD_DIR }
switch [module-info mode] {
"load" {
puts stdout "source $PREFIX/profile.d/IMOD-linux.sh"

View File

@@ -6,9 +6,7 @@
PEET is shipped as a self-expanding installation script. Run `./build` to
install.
An experimental config.yaml files is included using Pmodules/1.1.10 syntax.
This should probably not be used until yaml support in modbuild stabilizes.
This module is usually used in combination with IMOD (etomo GUI).
## Testing
@@ -16,12 +14,17 @@ This should probably not be used until yaml support in modbuild stabilizes.
## Build notes
Building was successful with Pmodules 1.1.8 but not 1.1.9 or 1.1.10.
Linking the binary is a bit of a pain. It requires gcc to be loaded to provide
relatively recent versions of libstdc++.so.6. I didn't fine what exact version
Matlab MCR expects, but 9.5.0 seemed to work. MCR is linked dynamically at
runtime through LD_LIBRARY_PATH. This is not set in the modulefile as expected,
but rather in wrapper scripts which source particle.cfg. Sed commands in
pbuild::install update this file so that it reads the loaded modules correctly.
pbuild::install update this file so that it reads the loaded modules correctly.
(Remark Nov. 2024: still true for version 1.17.0)
## Versions
According to the website (INSTALL.TXT) the following Matlab is needed :
-1.17.0 : 2022b (Merlin7, automatically loads matlab)

View File

@@ -1,6 +1,5 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'EM'
pbuild::prep() {
@@ -13,6 +12,7 @@ pbuild::prep() {
--fail \
--output "$dst" \
"https://bio3d.colorado.edu/ftp/PEET/linux/Particle_${V_PKG}_linux.sh"
--no-check-certificate
fi
}

View File

@@ -1,8 +0,0 @@
overlay: base
relstage: stable
group: EM
shasums:
PEET/1.15.1a: de4e9104f90b9379502a34b58be33eafd5514d554002a94efe2adba6f44785e6
PEET/1.15.1a:
- relstage: unstable

16
EM/PEET/files/config.yaml Normal file
View File

@@ -0,0 +1,16 @@
---
format: 1
PEET:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
1.17.0:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable
runtime_deps:
- gcc/12.3.0
- matlab/2022b

View File

@@ -1,2 +0,0 @@
PEET/1.15.1a stable gcc/9.5.0 matlab/2020b
PEET/1.16.0 stable gcc/9.5.0 matlab/2021b

View File

@@ -3,7 +3,7 @@
module-whatis "PEET (Particle Estimation for Electron Tomography) is an open-source package for aligning and averaging particles in 3-D subvolumes extracted from tomograms."
module-url "https://bio3d.colorado.edu/PEET/"
module-license "GPLv2 license"
module-maintainer "Spencer Bliven <spencer.bliven@psi.ch>"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "
PEET (Particle Estimation for Electron Tomography) is an open-source package

View File

@@ -1,14 +1,15 @@
# crYOLO
crYOLO/1.2.3 was built as a miniconda independent environment.
Subsequent versions are deployed as central conda environments.
This significantly changed the build process.
Subsequent versions (up to 1.6.1) are deployed as central conda environments
crYOLO/1.9.9 (Merlin7, oct 2024) is installed with an independent miniconda setup again.
From crYOLO/1.9.9 crYOLO exists as two different conda envs, one crYOLO (code itself) env, one napari (visualization) env.
The installation notes recommend to link one into another, on Merlin7 simply two different modules and envs exist.
Users need to load one env in one terminal ( crYOLO itself) and another for visualization (napari).
## Adding New Versions
To add a new version, first create the conda environment, as described in
../../Programming/anaconda/2019.07/conda-env-defs/cryolo/.
Next, update files/variants with the new version and run `./build <VERSION>` to
install the modulefile
Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script.

View File

@@ -1,20 +1,27 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'EM'
pbuild::prep() {
:
}
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::compile() {
pbuild::install(){
:
}
pbuild::install() {
:
}

View File

@@ -1,10 +0,0 @@
# crYOLO configuration variables
# Miniconda installer filename. Defaults to 'latest'
MINICONDA_VERSION='Miniconda2-4.5.12-Linux-x86_64.sh'
# cryoloBM download url
CRYOLOBM_URL='ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_BM_V1_1_1/cryoloBM-1.1.1.tar.gz'
# cryolo download url. Default:
#CRYOLO_URL='ftp://ftp.gwdg.de/pub/misc/sphire/crYOLO_V1_2_3/cryolo-1.2.3.tar.gz'

View File

@@ -0,0 +1,13 @@
---
format: 1
crYOLO:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
1.9.9:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable

View File

@@ -1,5 +0,0 @@
crYOLO/1.2.3 deprecated cuda/9.0.176
crYOLO/1.5.6_gpu stable anaconda/2019.07
crYOLO/1.6.1_gpu stable anaconda/2019.07
crYOLO/1.6.1_cpu stable anaconda/2019.07

View File

@@ -3,7 +3,7 @@
module-whatis "crYOLO is a fast and accurate particle picking procedure for electron microscopy"
module-url "http://sphire.mpg.de/wiki/doku.php?id=pipeline:window:cryolo"
module-license "SPHIRE-crYOLO Complimentary Science Software License (http://sphire.mpg.de/wiki/doku.php?id=cryolo_license). Non-commercial academic and research purposes only"
module-maintainer "Spencer Bliven <spencer.bliven@psi.ch>"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "
CrYOLO is a fast and accurate particle picking procedure. It's based on
@@ -26,28 +26,20 @@ convolutional neural networks and utilizes the popular You Only Look Once
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "source \"\${ANACONDA_PREFIX}\"/admintools/conda_setup.sh;\n"
puts stdout "conda(){ :; };"
puts stdout "set +u"
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
# Determine useflags and construct conda env name
set list [split $V "_"]
set version [lindex ${list} 0]
set useflags [lrange ${list} 1 end]
set flavour [lindex $useflags 0]
set env_to_activate [string tolower ${P}]-${version}-${flavour}
#puts stderr "P/V: $P/$V"
#puts stderr "USEFLAG: [lindex $useflags 0]"
#puts stderr "$env_to_activate"
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate $env_to_activate;\n"
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {

11
EM/cryocare/README.md Normal file
View File

@@ -0,0 +1,11 @@
Installation remarks for cryocare:
- pip installation from https://pypi.org/project/cryoCARE/, (see environment.yaml)
- creation of conda env with miniconda
Usage with Relion: module does not need to be activated , BUT :
- executables need to be provided in the relion GUI
- the modulefile in RELION needs to add the cryocare bin to the LD_LIBRARY_PATH, otherwise the libraries will not be found

23
EM/cryocare/build Executable file
View File

@@ -0,0 +1,23 @@
#!/usr/bin/env modbuild
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install(){
:
}

View File

@@ -0,0 +1,10 @@
channels:
- conda-forge
- defaults
dependencies:
- python=3.8
- cudatoolkit=11.0
- cudnn=8.0
- pip:
- tensorflow==2.4
- cryoCARE

View File

@@ -0,0 +1,8 @@
format: 1
cryocare:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
0.3.0:

34
EM/cryocare/modulefile Normal file
View File

@@ -0,0 +1,34 @@
#%Module1.0
module-whatis "Cryocare - Content-Aware Image Restoration for Cryo-Transmission Electron Microscopy Data"
module-url "https://github.com/juglab/cryoCARE_T2T"
module-license "BSD 2-Clause Simplified License"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "https://arxiv.org/abs/1810.05420"
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}

3
EM/dynamo/1.1.538/config Normal file
View File

@@ -0,0 +1,3 @@
# Google drive file hash, from https://wiki.dynamo.biozentrum.unibas.ch/w/index.php/Downloads
DYNAMO_ID=11_HqORqfwX21odS4zTuQKLbzHDSYgeog

View File

@@ -10,9 +10,21 @@ Installation should be done on merlin with an -adm account
2. Add google drive download link to `$V/config`.
3. Run `build <version>`
4. module load dynamo/$V
5. Compile stand-alone: `dynamo_setup_linux.sh`
6. Compile MPI: `source dynamo_setup_cluster.sh mpic++ dynamo_activate_linux_shipped_MCR.sh`
7. Compile Cuda:
5. `cd $DYNAMO_HOME/bin`. Further steps are taken from `README_dynamo_installation.txt`
6. [Compile stand-alone](https://www.dynamo-em.org/w/index.php?title=Installation)
dynamo_setup_linux.sh
7. [Compile MPI](https://www.dynamo-em.org/w/index.php?title=MPI_Cluster):
- With the shipped MCRLinux directory:
source dynamo_setup_cluster.sh mpic++ dynamo_activate_linux_shipped_MCR.sh
- With MCR from pmodules:
source dynamo_setup_cluster.sh mpic++ dynamo_activate_MCR.sh
8. Compile Cuda:
cd $DYNAMO_ROOT/cuda
make clean

View File

@@ -51,6 +51,8 @@ pbuild::prep() {
download_dynamo "$DYNAMO_ID" "$TAR_FILE"
mkdir -p "$PREFIX"
unpack "$TAR_FILE" "$PREFIX/bin"
cp -n "$BUILDBLOCK_DIR/dynamo_activate_MCR.sh" "$PREFIX/bin/"
}
pbuild::configure() {

View File

@@ -0,0 +1,18 @@
# Activates MCR from pmodules
DYNAMO_FOLDER=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
MCR_ROOT=${MATLAB_DIR:?No matlab module loaded}
# Checks availability of the MCR folder
if ! [ -d $MCR_ROOT ]; then
echo "ATTENTION: the Matlab module is not loaded."
return
fi
echo "MCR for linux has been found in location:" $MCR_ROOT
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$MCR_ROOT/runtime/glnxa64:$MCR_ROOT/bin/glnxa64:$MCR_ROOT/sys/os/glnxa64:$MCR_ROOT/sys/opengl/lib/glnxa64
echo Activating Dynamo as standalone
source $DYNAMO_FOLDER/dynamo_activate_linux.sh

View File

@@ -1 +1,2 @@
dynamo/1.1.514 unstable b:psi-python36/5.0.1 gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.1.0 matlab/2019a
dynamo/1.1.538 unstable b:psi-python36/5.0.1 gcc/11.2.0 cuda/11.5.1 openmpi/4.1.4_slurm matlab/2023a

3
EM/finddqe/README Normal file
View File

@@ -0,0 +1,3 @@
Installation information:
The Makefile_linux_amd64_gnu that is given with the tar file is not sufficient for installation. Requires two small changes, adding of two flags to the Makefile. This is done with the pbuild::configure step , where the corrected Makefile is copied into the src folder.
Also, installation was done from/on the Merlin-Login Node.

28
EM/finddqe/build Executable file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env modbuild
# Binary distribution with manual installation. See README.md
pbuild::add_to_group 'EM'
pbuild::set_download_url "https://grigoriefflab.umassmed.edu/system/tdf?path=FindDQE_150706.tar.gz&file=1&type=node&id=4220" "$P-$V_PKG.tar.gz"
pbuild::configure() {
cp "$BUILDBLOCK_DIR/files/Makefile" "$SRC_DIR/src"
}
pbuild::compile() {
cd "$SRC_DIR/src"
make
}
pbuild::install() {
mkdir -p "$PREFIX/bin"
cp "$SRC_DIR/bin/finddqe.exe" "$PREFIX/bin/finddqe"
}

51
EM/finddqe/files/Makefile Normal file
View File

@@ -0,0 +1,51 @@
#
# ------ MAKEFILE FILE FOR Linux FREALIGN -----------
#
# Using: gnu compiler
#
# Thanks to: Shixin Yang & Dr Edward Egelman at University of Virginia
# for providing this file
#
# Notes: To create executable: make -f Makefile_linux_amd64_gnu
#
SHELL = /bin/sh
FFLAGS = -m64 -O3 -s -fomit-frame-pointer -Wall -falign-functions=4 \
-funroll-loops -fexpensive-optimizations -fschedule-insns2 \
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \
-cpp -w -c
CFLAGS = -m64 -O3 -DPROTOTYPE -D_FILE_OFFSET_BITS=64 \
-D_LARGEFILE_SOURCE -cpp -w -c
COMP = gfortran
CC = gcc
ifeq ($(MKLROOT),"")
LF = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
else
LF = -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wl,--start-group $(MKLROOT)/lib/intel64/libmkl_intel_lp64.a $(MKLROOT)/lib/intel64/libmkl_core.a $(MKLROOT)/lib/intel64/libmkl_sequential.a -Wl,--end-group -ldl -lpthread
endif
PGM = finddqe
LIB = $(PGM).a
.PRECIOUS : $(PGM) $(LIB)
include Makefile.inc
ioc.o : ioc.c
$(CC) $(CFLAGS) -o ioc.o ioc.c
$(AR) r $(LIB) ioc.o
@\rm ioc.o
$(LIB) : ioc.o $(ELEMENTS)
@echo all object files placed in library
.f.a:
$(COMP) $(FFLAGS) $<
$(AR) r $(LIB) $*.o
@\rm $*.o

View File

@@ -0,0 +1 @@
finddqe/1.6 unstable b:intel/22.2

9
EM/finddqe/modulefile Normal file
View File

@@ -0,0 +1,9 @@
#%Module1.0
module-whatis "FindDQE determines the detective quantum efficiency (DQE) of a detector."
module-url "https://grigoriefflab.umassmed.edu/finddqe"
module-license "The Janelia Research Campus Software License 1.2 http://license.janelia.org/license/janelia_license_1_2.html"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "Ruskin RS Yu Z Grigorieff N 2013 Quantitative characterization of electron detectors for transmission electron microscopy J Struct Biol 184 385-393 "

12
EM/napari/README.md Normal file
View File

@@ -0,0 +1,12 @@
# napari-boxmanager
The napari module is built in combination with the crYOLO module :
From crYOLO/1.9.9 crYOLO exists as two different conda envs, one crYOLO (code itself) env, one napari (visualization) env.
The installation notes recommend to link one into another, on Merlin7 simply two different modules and envs exist.
Users need to load one env in one terminal ( crYOLO itself) and another for visualization (napari).
## Adding New Versions
Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script.

27
EM/napari/build Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env modbuild
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install(){
:
}

View File

@@ -0,0 +1,11 @@
channels:
- conda-forge
- anaconda
dependencies:
- python=3.10
- pyqt
- napari=0.4.17
- pip
- pip:
- napari-boxmanager

View File

@@ -0,0 +1,13 @@
---
format: 1
napari:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
0.4.17:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable

34
EM/napari/modulefile Normal file
View File

@@ -0,0 +1,34 @@
#%Module
module-whatis "Particle selection tool for cryo-em (crYOLO) "
module-url "https://cryolo.readthedocs.io/en/stable/installation.html#install-napari-and-the-boxmanager-plugin"
module-license "SPHIRE-crYOLO Complimentary Science Software License (http://sphire.mpg.de/wiki/doku.php?id=cryolo_license). Non-commercial academic and research purposes only"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "Napari-Boxmanager is a tool to use in combination with crYOLO (visualization for particle picking) "
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "conda(){ :; };"
puts stdout "set +u"
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}

View File

View File

@@ -11,3 +11,47 @@ and MKL, but this would require additional openmpi variants.
After running ./build, install relion scripts from the repository at
https://git.psi.ch/lsm-hpce/relion-scripts
## Important info per version!
### 5.0-beta (OLD, Merlin6)
- From version 5.0-beta on, a conda env is required (done with central anaconda module, needs to be done on pmod7 because of AFS hardlinks)
- the conda env is build in the folder $SRC\_DIR/conda\_envs. Also, weights for BLUSH, MODEL-ANGELO and CLASS-RANKER are downloaded in the installation step.
### 5.0-1beta (OLD, Merlin6)
- the conda env is made with a miniconda installation, and because of upgrading to Pmodules/1.1.21 , the variants file was dropped and changed into the config.yaml file.
- The build script was also updated accordingly
- Also, cryocare is now available in a wrapper from relion, the cryocare installation executables need to be provided (seperate cryocare module). It is crucial to add the cryocare lib path (from the cryocare conda env) to the LD_LIBRARY_PATH when loading the relion module
- tiff module no longer required, as this conflicts with the system shared tiff libs (not 100% sure why this canged from previous installations though)
### 5.0-2beta (ON MERLIN7)
- no fetching of weights with ftp possible, so cp from other machines into BUILD DIR and using the -DFETCH\_WEIGHTS=OFF option
- link : ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/fltk-1.3.5-source.tar.gz
- link : ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/classranker\_v1.0.ckpt.gz
### 5.0.0 A100
- same as 5.0-2beta (especially when it comes to the weights...)
- copy the fltk and the classranker file into the BUILD Directory. The build script assumes that these two files are in the BUILD\_DIR.
- sha256 errors occured during installation:
```text
ERROR: THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS FILE. If you have updated the package versions, please update the hashes. Otherwise, examine the package contents carefully; someone may have tampered with them.
unknown package:
Expected sha256 20abd2cae58e55ca1af8a8dcf43293336a59adf0391f1917bf8518633cfc2cdf
Got e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855
```
- The download of some packages (.whl files) was blocked by the merlin7 firewall. Google the shasum and find the package name. Try to manually download with curl. If this fails, this is a strong indication for network/firewall issues that need to be adressed by the networking team. .whl files from conda +pip installations are ususally stored in the env in lib/pythonXXX.
- Also, to not clean up build directories:
```text
--no-clean
Don't clean up build directories.
(environment variable: PIP_NO_CLEAN)
```
- adding flags to activate more aggressive compiler optimsations (affixing to `x86-64-v3` which is fully support on all EPYC nodes on Merlin7)
### 5.0.0 for GH
no successful installation so far - failing for conda env. Elsa G. build some hacky hack that works kind of..
needs to be investigated further.
- will attempt to build with more aggressive compiler optimisations as proscribed in: <https://docs.nvidia.com/grace-perf-tuning-guide/compilers.html>

View File

@@ -1,42 +1,139 @@
#!/usr/bin/env modbuild
pbuild::add_to_group 'EM'
pbuild::use_cmake
PERFORMANCE="yes"
PROFILE="no"
SP="no"
pbuild::prep() {
local BRANCH
if [[ "$V" =~ beta$ ]]; then
BRANCH="ver${V_MAJOR}.${V_MINOR}"
elif [[ "$V" =~ profile$ ]]; then
BRANCH="${V_PKG}"
PROFILE="yes"
elif [[ "$V" =~ sp$ ]]; then
BRANCH="ver${V_MAJOR}.${V_MINOR}"
SP="yes"
else
BRANCH="${V_PKG}"
fi
git clone --depth=1 -b "$BRANCH" https://github.com/3dem/relion.git "$SRC_DIR" || return $?
if [[ -d "$SRC_DIR/.git" ]]; then
cd "$SRC_DIR"
git pull
else
git clone --depth=1 -b "$BRANCH" https://github.com/3dem/relion.git "$SRC_DIR" || return $?
fi
}
pbuild::pre_configure() {
# CMake-based build
# Section will be switched on for -profile version
#-----------------------------------------------------------
if [[ "$PROFILE" == "yes" ]]; then
# this needs to go into the config.yml file for >5.0-1beta
if [[ "$V_MAJOR" -lt "5" ]]; then
: pbuild::add_configure_args "-DCMAKE_BUILD_TYPE=BENCHMARKING"
fi
fi
#------------------------------------------------------------
pbuild::add_configure_args "-DFORCE_OWN_FFTW=ON"
pbuild::add_configure_args "-DFORCE_OWN_FLTK=ON"
pbuild::add_configure_args "-DFORCE_OWN_TBB=ON"
# Section will be switched on for single-precision version
# Safe memory usage for multibody refinements
#------------------------------------------------------------
if [[ "$SP" == "yes" ]]; then
# this needs to go into the config.yml file for >5.0-1beta
if [[ "$V_MAJOR" -lt "5" ]]; then
: pbuild::add_configure_args "-DDoublePrec_CPU=OFF"
fi
fi
#------------------------------------------------------------
# CUDA related (set lowest CC to 6.1 for 1080 compatibility)
pbuild::add_configure_args "-DCUDA=ON"
pbuild::add_configure_args "-DCUDA_ARCH=61"
pbuild::add_configure_args "-DCudaTexture=ON"
# Set performance oriented compiler flags, specific for a given
# architecture.
# -------------------------------------------------------------
if [[ "$PERFORMANCE" == "yes" && "$PROFILE" == "no" ]]; then
# set compiler flags per arch
echo "> setting performance system compiler flags"
case "$(uname -m)" in
"aarch64")
export CC=gcc
export CFLAGS='-mcpu=neoverse-v2 -O3 -pipe -Wno-error'
export CXX=g++
export CXXFLAGS='-mcpu=neoverse-v2 -O3 -pipe -Wno-error'
export FCFLAGS='-mcpu=neoverse-v2 -O3 -pipe'
export FFLAGS='-mcpu=neoverse-v2 -O3 -pipe'
export LDFLAGS='-Wl,--as-needed'
;;
"x86_64")
export CC=gcc
export CFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe -Wno-error'
export CXX=g++
export CXXFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe -Wno-error'
export FCFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe'
export FFLAGS='-march=x86-64-v3 -mtune=znver1 -O3 -pipe'
export LDFLAGS='-Wl,--as-needed'
;;
*)
echo ">> Unknown system arch found $(uname -m)! Using basic flags only!"
export CC=gcc
export CFLAGS='-O3 -pipe -Wno-error'
export CXX=g++
export CXXFLAGS='-O3 -pipe -Wno-error'
export FCFLAGS='-O3 -pipe'
export FFLAGS='-O3 -pipe'
export LDFLAGS='-Wl,--as-needed'
;;
esac
echo ">> ${CC} ${CFLAGS}"
echo ">> ${CXX} ${CXXFLAGS}"
fi
# -------------------------------------------------------------
# The following section will only work for versions >= 5.0-beta
# -------------------------------------------------------------
if [[ "$V_MAJOR" -ge "5" ]]; then
#download blush weights, from zenodo
echo "> downloading blush weights"
mkdir -p "$PREFIX/torch/hub/checkpoints/relion_blush"
wget -q https://zenodo.org/records/10072731/files/blush_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_blush" \
&& gunzip "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt.gz"
mv "$PREFIX/torch/hub/checkpoints/relion_blush/blush_v1.0.ckpt" "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0.ckpt"
touch "$PREFIX/torch/hub/checkpoints/relion_blush/v1.0_installed.txt"
#cp classranker that was downloaded on another machine before from BUILDBLOCK_DIR
echo "> downloading classranker"
mkdir -p "$PREFIX/torch/hub/checkpoints/relion_class_ranker"
wget -q ftp://ftp.mrc-lmb.cam.ac.uk/pub/dari/classranker_v1.0.ckpt.gz -P "$PREFIX/torch/hub/checkpoints/relion_class_ranker" \
&& gunzip "$PREFIX/torch/hub/checkpoints/relion_class_ranker/classranker_v1.0.ckpt.gz"
mv "$PREFIX/torch/hub/checkpoints/relion_class_ranker/classranker_v1.0.ckpt" "$PREFIX/torch/hub/checkpoints/relion_class_ranker/v1.0.ckpt"
touch "$PREFIX/torch/hub/checkpoints/relion_class_ranker/v1.0_installed.txt"
# fltk stuff
echo "> downloading FLTK"
mkdir -p "$SRC_DIR/external/fltk"
wget -q ftp://ftp.mrc-lmb.cam.ac.uk/pub/scheres/fltk-1.3.5-source.tar.gz -P "$SRC_DIR/external/fltk/"
# Install Miniconda
echo "> installing miniconda"
mkdir -p "$PREFIX/miniconda"
if [[ "$(uname -m)" =~ "aarch64" ]]; then
wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh -O "$PREFIX/miniconda/miniconda.sh"
else
wget -q https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
fi
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
# Setup conda env; switch into relion repo directory to capture local
# `.[vis]` pip package dependencies
echo "> building conda env"
pushd "$SRC_DIR"
"$PREFIX/miniconda/condabin/conda" env create -q -f environment.yml
"$PREFIX/miniconda/condabin/conda" env list
popd
fi
# Since ver3.0 relion cannot have ALTCPU and CUDA activated
# at the same time. Otherwise the configuration exits with
# an error.
if [[ "$V_MAJOR" -le "3" ]]; then
pbuild::add_configure_args "-DALTCPU=ON"
fi
if [[ -n "$INTEL_VERSION" ]]; then
# Requires intel compiler
pbuild::add_configure_args "-DMKLFFT=ON"
fi
#---------------------------------------------------------------
}
# vim: ts=4 sw=4 et

162
EM/relion/files/config.yaml Normal file
View File

@@ -0,0 +1,162 @@
---
format: 1
relion:
defaults:
group: EM
overlay: base
relstage: unstable
build_variants: first_match
versions:
5.0.0-perf:
variants:
- overlay: Alps
target_cpus: [x86_64]
systems: [.*.merlin7.psi.ch]
build_requires:
- cmake/3.23.2
- git/2.37.0
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
relstage: stable
runtime_deps:
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
configure_with: cmake
configure_args:
- "-DCMAKE_BUILD_TYPE=RELEASE"
- "-DCMAKE_CXX_FLAGS=${CXXFLAGS} -DNDEBUG"
- "-DCMAKE_C_FLAGS=${CFLAGS} -DNDEBUG"
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU
- "-DFETCH_WEIGHTS=OFF"
# does not work yet- just an idea...
- overlay: Alps
target_cpus: [aarch64]
systems: [gpu0.*.merlin7.psi.ch]
build_requires:
#- cmake/3.23.2
#- git/2.37.0
- openmpi/5.0.5
- gcc/12.3.0
- cuda/12.2.0
relstage: unstable
runtime_deps:
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
configure_with: cmake
configure_args:
- "-DCMAKE_BUILD_TYPE=RELEASE"
- "-DCMAKE_CXX_FLAGS=${CXXFLAGS} -DNDEBUG"
- "-DCMAKE_C_FLAGS=${CFLAGS} -DNDEBUG"
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=90" # dep on the cuda arch of the oldest GPU
- "-DFETCH_WEIGHTS=OFF"
5.0.0:
variants:
- overlay: Alps
target_cpus: [x86_64]
systems: [.*.merlin7.psi.ch]
build_requires:
- cmake/3.23.2
- git/2.37.0
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
relstage: unstable
runtime_deps:
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
configure_with: cmake
configure_args:
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU
- "-DFETCH_WEIGHTS=OFF"
# does not work yet- just an idea...
- overlay: Alps
target_cpus: [aarch64]
systems: [gpu0.*.merlin7.psi.ch]
build_requires:
#- cmake/3.23.2
#- git/2.37.0
- openmpi/5.0.5
- gcc/12.3.0
- cuda/12.2.0
relstage: unstable
runtime_deps:
- gcc/12.3.0
- cuda/12.2.0
- openmpi/5.0.5
configure_with: cmake
configure_args:
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=90" # dep on the cuda arch of the oldest GPU
- "-DFETCH_WEIGHTS=OFF"
#MERLIN7 old (cray)
5.0-2beta:
variants:
- overlay: Alps
systems: [gpu.*.merlin7.psi.ch]
build_requires:
- cmake/3.23.2
- git/2.37.0
- libfabric/1.22.0
relstage: unstable
runtime_deps:
- gcc/12.3.0
# - cudatoolkit/23.9_12.2
- cuda/12.2.0
configure_with: cmake
configure_args:
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=80" # dep on the cuda arch of the oldest GPU
#- "-DCudaTexture=ON"
- "-DFETCH_WEIGHTS=OFF"
#MERLIN6
5.0-1beta:
variants:
- systems: [merlin-.*.psi.ch]
build_requires:
- gcc/10.4.0
- openmpi/4.1.4_slurm
- cuda/11.5.1
- cmake/3.23.2
- git/2.37.0
relstage: unstable
runtime_deps:
- cuda/11.5.1
- gcc/10.4.0
- openmpi/4.1.4_slurm
configure_with: cmake
configure_args:
- "-DTORCH_HOME_PATH=${PREFIX}/torch"
- "-DPYTHON_EXE_PATH=${PREFIX}/miniconda/envs/relion-5.0/bin/python"
- "-DFORCE_OWN_FFTW=ON"
- "-DFORCE_OWN_FLTK=ON"
- "-DCUDA=ON"
- "-DCUDA_ARCH=61" # dep on the cuda arch of the oldest GPU
- "-DCudaTexture=ON"

View File

@@ -1,16 +0,0 @@
relion/2.1.b1 deprecated gcc/4.9.4 openmpi/2.0.1 cuda/8.0.44
relion/2.1 deprecated gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.0_beta deprecated gcc/4.9.4 openmpi/2.0.1 cuda/8.0.44
relion/3.0.8 deprecated gcc/7.4.0 openmpi/3.1.4_merlin6 cuda/9.2.148 b:cmake/3.14.0 b:tiff/4.0.9
relion/3.0.8-1 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1-beta deprecated gcc/7.4.0 openmpi/3.1.4_merlin6 cuda/9.2.148 b:cmake/3.14.0 b:tiff/4.0.9
relion/3.1.0 deprecated gcc/7.5.0 openmpi/4.0.4_slurm cuda/10.0.130 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1.0-1 deprecated gcc/7.5.0 openmpi/4.0.4_slurm cuda/10.1.105 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1.1 deprecated gcc/9.3.0 openmpi/4.0.4_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1.1-1 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1.2 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/3.1.3 stable gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/4.0-beta deprecated gcc/9.2.0 openmpi/4.0.5_slurm cuda/11.0.3 b:cmake/3.15.5 b:tiff/4.0.9 b:git/2.22.0
relion/4.0.0 unstable gcc/11.2.0 openmpi/4.1.3_slurm cuda/11.5.1 b:cmake/3.23.2 b:tiff/4.3.0 b:git/2.37.0
relion/4.0.1 unstable gcc/10.4.0 openmpi/4.1.4_slurm cuda/11.5.1 b:cmake/3.23.2 b:tiff/4.3.0 b:git/2.37.0

View File

@@ -3,7 +3,7 @@
module-whatis "3D reconstructions or 2D class averages in electron cryo-microscopy (cryo-EM)"
module-url "https://www2.mrc-lmb.cam.ac.uk/relion/index.php/Main_Page"
module-license "GPLv2 license"
module-maintainer "Spencer Bliven <spencer.bliven@psi.ch>"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "
RELION (for REgularised LIkelihood OptimisatioN, pronounce rely-on) is a
@@ -25,10 +25,10 @@ Scheres(2012) JSB http://www.sciencedirect.com/science/article/pii/S104784771200
"
setenv RELION_QUEUE_USE yes
setenv RELION_QUEUE_NAME gpu
setenv RELION_QUEUE_NAME general-x64
setenv RELION_QSUB_COMMAND sbatch
setenv RELION_THREAD_MAX 44
setenv RELION_QSUB_EXTRA_COUNT 2
setenv RELION_QSUB_EXTRA_COUNT 4
setenv RELION_QSUB_EXTRA1 "Max Time"
setenv RELION_QSUB_EXTRA1_DEFAULT "1-00:00:00"
setenv RELION_QSUB_EXTRA1_HELP "Maximum time before the job is killed by slurm. Default: 1-00:00:00"
@@ -36,12 +36,15 @@ setenv RELION_QSUB_EXTRA2 "Extra Slurm Args"
setenv RELION_QSUB_EXTRA2_DEFAULT ""
setenv RELION_QSUB_EXTRA2_HELP "Any additional arguments to pass to slurm"
setenv RELION_SCRATCH_DIR /scratch
setenv RELION_UNBLUR_EXECUTABLE /opt/psi/EM/Unblur/1.0.2/bin/unblur_openmp_7_17_15.exe
setenv RELION_SUMMOVIE_EXECUTABLE /opt/psi/EM/Summovie/1.0.2/bin/sum_movie_openmp_7_17_15.exe
setenv RELION_CTFFIND_EXECUTABLE /opt/psi/EM/ctffind4/4.1.8/bin/ctffind
setenv RELION_GCTF_EXECUTABLE /opt/psi/EM/Gctf/1.06/bin/Gctf
#also has internal version, depending on what users want... dont know if it works
setenv RELION_RESMAP_EXECUTABLE /opt/psi/EM/ResMap/1.1.4/bin/ResMap
# Version-specific variables
setenv RELION_QSUB_TEMPLATE /opt/psi/EM/relion/$V/scripts/multi_gpu.sh
setenv RELION_MOTIONCOR2_EXECUTABLE /opt/psi/EM/MotionCor2/1.4.0/bin/MotionCor2
setenv RELION_QSUB_TEMPLATE /opt/psi/overlays/Alps/EM/relion/$V/scripts/multi_gpu.sh
setenv RELION_MOTIONCOR2_EXECUTABLE "/opt/psi/EM/MotionCor2/1.6.4/bin/MotionCor2"
setenv RELION_TOPAZ_EXECUTABLE /opt/psi/overlays/Alps/EM/relion/$V/miniconda/envs/relion-5.0/bin/topaz
setenv RELION_PYTHON_EXECUTABLE /opt/psi/overlays/Alps/EM/relion/$V/miniconda/envs/relion-5.0/bin/python
setenv RELION_TORCH_HOME_PATH /opt/psi/overlays/Alps/EM/relion/$V/torch/

13
EM/tomodrgn/README.md Normal file
View File

@@ -0,0 +1,13 @@
Installation remarks for Tomodrgn:
1.) function in tomodrgn/analysis.py is not valid with matplotlib v3.8 anymore, this is why the function is substituted in the build script:
sed -i 's/cbar.draw_all/cbar._draw_all/' tomodrgn/analysis.py
2.) the tomodrgn quicktest script can be exectued by :
python /opt/psi/EM/tomodrgn/0.2.2/tomodrgn/testing/quicktest.py
REMARK: This file was changed in order to provide the argument --datadir /opt/psi/EM/tomodrgn/0.2.2/tomodrgn/testing/, otherwise it will look for the "data" folder in the current working dir.
3.) quicktest is run without the two arguments: --num-workers (dafault =0) and --prefetch-factor (default should be None, but is actually 2), which throws an error,was fixed by changing the default of --prefetch-factor to None in the file /opt/psi/EM/tomodrgn/0.2.2/miniconda/envs/tomodrgn_0.2.2/lib/python3.9/site-packages/tomodrgn/commands/train_vae.py

34
EM/tomodrgn/build Executable file
View File

@@ -0,0 +1,34 @@
#!/usr/bin/env modbuild
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "tomodrgn_$V" -f "$BUILDBLOCK_DIR/environment.yaml"
source "$PREFIX/miniconda/etc/profile.d/conda.sh"
conda activate "tomodrgn_$V"
#CP SOURCE CODE
mkdir "$PREFIX/tomodrgn"
cd "$PREFIX/tomodrgn"
cp -r "$SRC_DIR"/* .
#FIX MATPLOTLIB VERSION issue
sed -i 's/cbar.draw_all/cbar._draw_all/' tomodrgn/analysis.py
#INSTALL IN ENV
pip install .
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install(){
:
}

View File

@@ -0,0 +1,18 @@
channels:
- pytorch
- conda-forge
- defaults
dependencies:
- pytorch-gpu>=1.11.0
- cudatoolkit>=11.0
- pandas
- seaborn
- scikit-learn
- umap-learn
- ipython_genutils
- notebook
- pip
- pip:
- ipyvolume>=0.6.0
- pythreejs>=2.4.2

View File

@@ -0,0 +1,11 @@
format: 1
tomodrgn:
deaults:
group: EM
overlay: base
relstage: unstable
urls:
- url: https://github.com/bpowell122/tomodrgn/archive/refs/tags/v${V_PKG}.tar.gz
name: tomodrgn-${V_PKG}.tar.gz
versions:
0.2.2:

34
EM/tomodrgn/modulefile Normal file
View File

@@ -0,0 +1,34 @@
#%Module1.0
module-whatis "TomoDRGN - analyzing structural heterogeneity in cryo-electron sub-tomograms"
module-url "https://github.com/bpowell122/tomodrgn"
module-license "-"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "https://github.com/bpowell122/tomodrgn"
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "source \"\${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate $P_$V;\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}

34
EM/topaz/README.md Normal file
View File

@@ -0,0 +1,34 @@
# TOPAZ
The topaz module is build for using it with the cryosparc software. An executable path to the topaz binary needs to be provided in cryosparc.
## Adding New Versions
Adding new versions: change the environment file in the build folder accordingly (and the config.yaml file) and run the build script.
IMPORTANT: Build it on the GPU node , otherwise the pytorch installation will not enable GPU support.
## HINTS
Current successful environment.yaml file:
channels:
- tbepler
- pytorch
dependencies:
- python=3.6
- cudatoolkit
- topaz
- pytorch
- specifing cudatoolkit version of 11.8 failed for GPU support (see below)
- specifing higher python/cudatoolkit versions lead to higher pytorch versions, which again failed for topaz to run successful (https://discuss.cryosparc.com/t/topaz-train-typeerror-concat-takes-1-positional-argument-but-2-were-given/11240/18)
## Versions
Nov. 2024: 0.2.5 (TOPAZ) with
```
python3.6
cudatoolkit 11.3.1 h2bc3f7f_2
pytorch 1.10.2 py3.6_cuda11.3_cudnn8.2.0_0
pytorch-mutex 1.0 cuda
```

27
EM/topaz/build Executable file
View File

@@ -0,0 +1,27 @@
#!/usr/bin/env modbuild
pbuild::configure() {
#MINICONDA INSTALL
mkdir -p "$PREFIX/miniconda"
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh -O "$PREFIX/miniconda/miniconda.sh"
bash "$PREFIX/miniconda/miniconda.sh" -b -u -p "$PREFIX/miniconda/"
#CREATE ENV , make sure to source the "correct" conda.sh
"$PREFIX/miniconda/condabin/conda" env create --name "${P}_${V}" -f "$BUILDBLOCK_DIR/environment.yaml"
}
#DO NOTHING
pbuild::compile(){
:
}
pbuild::install(){
:
}

View File

@@ -0,0 +1,8 @@
channels:
- tbepler
- pytorch
dependencies:
- python=3.6
- cudatoolkit
- topaz
- pytorch

View File

@@ -0,0 +1,13 @@
---
format: 1
topaz:
defaults:
group: EM
overlay: base
relstage: unstable
versions:
0.2.5:
variants:
- overlay: Alps
systems: [.*.merlin7.psi.ch]
relstage: unstable

34
EM/topaz/modulefile Normal file
View File

@@ -0,0 +1,34 @@
#%Module
module-whatis "A pipeline for particle detection in cryo-electron microscopy images using convolutional neural networks trained from positive and unlabeled examples. Topaz also includes methods for micrograph and tomogram denoising using deep denoising models."
module-url "https://github.com/tbepler/topaz"
module-license "https://github.com/tbepler/topaz/blob/master/LICENSE"
module-maintainer "Greta Assmann <greta.assmann@psi.ch>"
module-help "Particle Picker for CryoEM. Used with Cryosparc"
# Check for supported shell types
set shelltype [module-info shelltype]
switch -- $shelltype {
"sh" {
puts stdout "conda(){ :; };"
puts stdout "set +u"
puts stdout "source \"${PREFIX}\"/miniconda/etc/profile.d/conda.sh;\n"
}
default {
puts stderr "Shells of type '$shelltype' are NOT supported!"
}
}
switch [module-info mode] {
"load" {
# Relies on the anaconda module being loaded since we need to update the path
puts stdout "conda activate ${P}_${V};\n"
}
"unload" -
"remove" {
puts stdout "conda deactivate;\n"
}
}

View File

@@ -2,3 +2,4 @@ H5hut/2.0.0rc6_slurm stable gcc/{7.5.0,8.4.0,9.3.0} openmpi/3.1.6_slurm hdf5/1.
H5hut/2.0.0rc6_slurm stable gcc/10.3.0 openmpi/4.0.5-1_slurm hdf5/1.10.7_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.12 b:parmetis/4.0.3_slurm
H5hut/2.0.0rc6_slurm stable gcc/10.4.0 openmpi/4.1.4_slurm hdf5/1.10.8_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17
H5hut/2.0.0rc6_slurm unstable gcc/{9.5.0,10.4.0,11.4.0,12.3.0,13.1.0} openmpi/4.1.5_slurm hdf5/1.10.8_slurm b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17

View File

@@ -23,3 +23,4 @@ H5hut/2.0.0rc6 deprecated gcc/{7.5.0,8.4.0,9.3.0,10.1.0} openmpi/3.1.6 hdf5/1.1
H5hut/2.0.0rc6 stable gcc/10.3.0 openmpi/4.0.5 hdf5/1.10.7 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.12 b:parmetis/4.0.3
H5hut/2.0.0rc6 stable gcc/10.4.0 openmpi/4.1.4 hdf5/1.10.8 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17
H5hut/2.0.0rc6 unstable gcc/10.4.0 openmpi/4.1.5 hdf5/1.10.8 b:automake/1.16.1 b:autoconf/2.69 b:libtool/2.4.6-1 b:Python/2.7.17

Some files were not shown because too many files have changed in this diff Show More