Skip to content

Commit

Permalink
Merge pull request #20476 from lexming/5.0.x-sync
Browse files Browse the repository at this point in the history
sync with develop (20240506)
  • Loading branch information
boegel authored May 6, 2024
2 parents 87e8368 + e1926e5 commit f476710
Show file tree
Hide file tree
Showing 195 changed files with 19,696 additions and 67 deletions.
17 changes: 17 additions & 0 deletions easybuild/easyconfigs/a/AEDT/AEDT-2024R1.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
name = 'AEDT'
version = '2024R1'

homepage = 'https://www.ansys.com/products/electronics'
description = """The Ansys Electronics Desktop (AEDT) is a platform that enables
true electronics system design. AEDT provides access to the Ansys gold-standard
electromagnetics simulation solutions such as Ansys HFSS, Ansys Maxwell, Ansys Q3D
Extractor, Ansys SIwave, and Ansys Icepak using electrical CAD (ECAD) and mechanical
CAD (MCAD) workflows."""

toolchain = SYSTEM

download_instructions = "Manually obtain (ELECTRONICS_%(version)s_LINX64.tgz) from your ANSYS vendor"
sources = ['ELECTRONICS_%(version)s_LINX64.tgz']
checksums = ['7b131adf981ebca1e2f4fe8e607e50323167b69e77180a0ab61b2759d57abca5']

moduleclass = 'phys'
114 changes: 114 additions & 0 deletions easybuild/easyconfigs/a/AMGX/AMGX-2.4.0-foss-2023a-CUDA-12.1.1.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
easyblock = 'CMakeMake'

name = 'AMGX'
version = '2.4.0'
versionsuffix = '-CUDA-%(cudaver)s'

homepage = 'https://github.com/NVIDIA/AMGX'

description = """Distributed multigrid linear solver library on GPU"""
toolchain = {'name': 'foss', 'version': '2023a'}
toolchainopts = {'openmp': True}

github_account = 'NVIDIA'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s.tar.gz']
patches = [
'AMGX-%(version)s_external-thrust.patch',
'AMGX-%(version)s_fix-openmp-linking.patch',
]
checksums = [
{'v2.4.0.tar.gz': 'b030b8c2e58c4c9987444e5d28fd61e1c5dcd65d484a290d6a18ae0bc5c0e9db'},
{'AMGX-2.4.0_external-thrust.patch': '90e4be09615a26bd7ebce68ced63d9d3b52141f7b480e8cedb17b05003656e16'},
{'AMGX-2.4.0_fix-openmp-linking.patch': '10046d5d9fff48cb4902797525d43963855c4834f262bdc3c341bbc2cb1f6f76'},
]

builddependencies = [
('CMake', '3.26.3'),
]

dependencies = [
('CUDA', '12.1.1', '', SYSTEM),
('UCX-CUDA', '1.14.1', versionsuffix),
('magma', '2.7.2', versionsuffix),
('CCCL', '2.3.0', versionsuffix),
]

cuda_compute_capabilities = ['7.0', '8.0', '9.0'] # AMGX defaults for CUDA 12

configopts = '-DCUDA_ARCH="%(cuda_cc_cmake)s" '

# Can't run all tests (55 failing); many fail due to mixed precision not being supported
# some fail due to missing external data files, many unknown issues
# All tests can be attempted with "amgx_tests_launcher --all"
local_tests = [
'AggregatesCoarseGeneratorTest',
'AggregatesCoarseningFactor',
'AggregatesDeterminism',
'AggregatesDiagonalOutside',
'AmgLevelsReuse',
'CAPIFailure',
'CAPIVersionCheck',
'ClassicalStrengthAffinityTest',
'ClassicalStrengthTest',
'ConfigStringParsing',
'CsrMultiplyTests_Poisson27_100_100',
'CsrMultiplyTests_Poisson27_10_10',
'CsrMultiplyTests_Poisson5_100_100',
'CsrMultiplyTests_Poisson5_10_1',
'CsrMultiplyTests_Poisson7_100_100',
'CsrMultiplyTests_Poisson7_10_10',
'CsrMultiplyTests_Poisson9_100_100',
'CsrMultiplyTests_Poisson9_10_10',
'CsrSparsityILU1Tests_Poisson27_100_100',
'CsrSparsityILU1Tests_Poisson27_10_10',
'CsrSparsityILU1Tests_Poisson5_100_100',
'CsrSparsityILU1Tests_Poisson5_10_10',
'CsrSparsityILU1Tests_Poisson7_100_100',
'CsrSparsityILU1Tests_Poisson7_10_10',
'CsrSparsityILU1Tests_Poisson9_100_100',
'CsrSparsityILU1Tests_Poisson9_10_10',
'CsrSparsityTests_Poisson27_100_100',
'CsrSparsityTests_Poisson27_10_10',
'CsrSparsityTests_Poisson5_100_100',
'CsrSparsityTests_Poisson5_10_10',
'CsrSparsityTests_Poisson7_100_100',
'CsrSparsityTests_Poisson7_10_10',
'CsrSparsityTests_Poisson9_100_100',
'CsrSparsityTests_Poisson9_10_10',
'DenseLUSolverTest_Factorization_Id_256',
'DenseLUSolverTest_Factorization_Id_32',
'DenseLUSolverTest_Solve_Id_256',
'DenseLUSolverTest_Solve_Id_32',
'DenseLUSolverTest_Solve_Poisson3D',
'FactoriesTest',
'FGMRESConvergencePoisson',
'GenericSpMVTest',
'IDRConvergencePoisson',
'IDRmsyncConvergencePoisson',
'LargeMatricesSupport',
'LowDegDeterminism',
'MatrixTests',
'MatrixVectorMultiplyTests',
'MinMaxColoringTest',
'Nested_AMG_equivalence',
'NestedSolvers',
'NormTests',
'ObjectDestructionSequence',
'PermuteTests',
'RandomMatrix',
'SmootherBlockPoissonTest',
'TemplateConfigTest',
'TemplateTest',
'truncateCountTest',
'VectorTests',
]

runtest = "amgx_tests_launcher && src/amgx_tests_launcher " + ' '.join(local_tests)

sanity_check_paths = {
'files': ['include/amgx_c.h', 'lib/libamgx.a', 'lib/libamgxsh.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'lib'
13 changes: 13 additions & 0 deletions easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_external-thrust.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
Forces AMGX to use external dependencies, avoiding needing the git submodule
the entire (deprecated) thrust library and all its dependencies.
author: [email protected]
--- CMakeLists.txt.orig 2024-03-30 01:54:34.469780980 +0100
+++ CMakeLists.txt 2024-03-30 01:54:46.491884432 +0100
@@ -251,7 +251,6 @@
ENDIF()

# We depend on a specific version of thrust now so include the submodule
-add_subdirectory("thrust")
find_package(Thrust REQUIRED CONFIG)
thrust_create_target(Thrust)

15 changes: 15 additions & 0 deletions easybuild/easyconfigs/a/AMGX/AMGX-2.4.0_fix-openmp-linking.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Adds missing link option necessary for openmp linking.
The target_link_libraries used for amgx are not sufficient as CMake haven't
sorted this out yet, thus manually adding the flag for GCC.
author: [email protected]
--- CMakeLists.txt.orig 2024-03-30 03:27:22.354168764 +0100
+++ CMakeLists.txt 2024-03-30 03:28:00.397486779 +0100
@@ -291,6 +291,8 @@
ELSE (WIN32)
target_link_libraries(amgx CUDA::cublas CUDA::cusparse CUDA::cusolver CUDA::nvToolsExt m pthread)
target_link_libraries(amgxsh CUDA::cublas CUDA::cusparse CUDA::cusolver CUDA::nvToolsExt m pthread)
+ target_link_options(amgx INTERFACE "-fopenmp")
+ target_link_options(amgxsh INTERFACE "-fopenmp")
ENDIF(WIN32)

if(MPI_FOUND)
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ checksums = ['eb939471f5f4218e6cfd62f58ccd2a0a5283d4a19a2902741c7fb25e2f016eaf']

dependencies = [
('R', '4.2.2'),
('Arrow', '11.0.0'),
('Arrow', '11.0.0'), # arrow-R x.y.z[.N] only works with Arrow x.y.z
]

preinstallopts = "export LIBARROW_BINARY=true && "
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
easyblock = 'RPackage'

name = 'arrow-R'
version = '14.0.0.2'
version = '14.0.1'
versionsuffix = '-R-%(rver)s'

homepage = 'https://cran.r-project.org/web/packages/arrow'
Expand All @@ -13,16 +13,18 @@ source_urls = [
'https://cran.r-project.org/src/contrib/Archive/arrow', # package archive
'https://cran.r-project.org/src/contrib/', # current version of packages
'https://cran.freestatistics.org/src/contrib', # mirror alternative for current packages
'https://archive.apache.org/dist/arrow/arrow-%(version)s', # full Arrow source tarballs
]
sources = ['arrow_%(version)s.tar.gz']
checksums = ['7138a52d66f1b94ec31c25e8929d6f92b1640df852a10817600a82ab68ba8ab7']
sources = ['apache-arrow-%(version)s.tar.gz']
checksums = ['5c70eafb1011f9d124bafb328afe54f62cc5b9280b7080e1e3d668f78c0e407e']

dependencies = [
('R', '4.3.2'),
('R-bundle-CRAN', '2023.12'),
('Arrow', '14.0.1'),
('Arrow', '14.0.1'), # arrow-R x.y.z[.N] only works with Arrow x.y.z
]

start_dir = 'r'
preinstallopts = "export LIBARROW_BINARY=true && "

sanity_check_paths = {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Author: Ehsan Moravveji (VSCentrum, KU Leuven)

easyblock = 'CMakeMake'

name = 'assembly-stats'
version = '1.0.1'

homepage = 'https://github.com/sanger-pathogens/assembly-stats'
description = 'Get assembly statistics from FASTA and FASTQ files.'

toolchain = {'name': 'GCCcore', 'version': '11.3.0'}

github_account = 'sanger-pathogens'
source_urls = [GITHUB_SOURCE]
sources = ['v%(version)s.tar.gz']
patches = ['%(name)s-1.0.1_fix_str_cast.patch']
checksums = [
{'v1.0.1.tar.gz': '02be614da4d244673bcd0adc6917749681d52a58cb0a039c092d01cdeabd8575'},
{'assembly-stats-1.0.1_fix_str_cast.patch': '2c1d63e7b1246b290ddfeea2604076ae892dfe337e5092e83575c2c3cbcfd7fd'},
]

builddependencies = [
('binutils', '2.38'),
('CMake', '3.24.3'),
('pkgconf', '1.8.0'),
]

dependencies = [
('zlib', '1.2.12'),
]

configopts = '-DINSTALL_DIR=%(installdir)s/bin'

runtest = 'test'

sanity_check_paths = {
'files': ['bin/assembly-stats'],
'dirs': []
}

sanity_check_commands = ['assembly-stats -v']

moduleclass = 'bio'
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# Author: Ehsan Moravveji (VSCentrum, KU Leuven)
# Purpose: This patch prevents the compile-time error "taking address of rvalue [-fpermissive]"
# by redefining a simple casting from integer to string. Consequently, the additional
# "-fpermissive" compiler flag need not be included to supress the error.
diff -ruN assembly-stats-original/fasta_unittest.cpp assembly-stats/fasta_unittest.cpp
--- assembly-stats-original/fasta_unittest.cpp 2024-04-03 11:45:32.230992000 +0200
+++ assembly-stats/fasta_unittest.cpp 2024-04-03 11:50:08.868140000 +0200
@@ -1,4 +1,5 @@
#include <iostream>
+#include <string>
#include "fasta.h"
#include "gtest/gtest.h"

@@ -94,8 +95,7 @@
while (fa.fillFromFile(inStream))
{
counter++;
- string expectedName = static_cast<ostringstream*>( &(ostringstream() << counter) )->str();
- EXPECT_EQ(0, fa.name().compare(expectedName));
+ EXPECT_EQ(0, fa.name().compare(std::to_string(counter)));
EXPECT_EQ(0, fa.seq().compare("ACGT"));
}

diff -ruN assembly-stats-original/fastq_unittest.cpp assembly-stats/fastq_unittest.cpp
--- assembly-stats-original/fastq_unittest.cpp 2024-04-03 11:45:32.226036000 +0200
+++ assembly-stats/fastq_unittest.cpp 2024-04-03 12:29:04.830873000 +0200
@@ -1,5 +1,6 @@
#include <list>
#include <iostream>
+#include <string>
#include <sstream>
#include "fastq.h"
#include "gtest/gtest.h"
@@ -50,8 +51,7 @@
while (fq.fillFromFile(inStream))
{
counter++;
- string expectedName = static_cast<ostringstream*>( &(ostringstream() << counter) )->str();
- EXPECT_EQ(0, fq.name().compare(expectedName));
+ EXPECT_EQ(0, fq.name().compare(std::to_string(counter)));
EXPECT_EQ(0, fq.seq().compare("ACGT"));
}
}
34 changes: 34 additions & 0 deletions easybuild/easyconfigs/a/astropy/astropy-5.1.1-intel-2022a.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
easyblock = "PythonBundle"

name = 'astropy'
version = '5.1.1'

homepage = 'https://www.astropy.org/'
description = """The Astropy Project is a community effort to develop a common
core package for Astronomy in Python and foster an ecosystem of interoperable
astronomy packages."""

docurls = 'https://docs.astropy.org'

toolchain = {'name': 'intel', 'version': '2022a'}

dependencies = [
('Python', '3.10.4'),
('SciPy-bundle', '2022.05'),
('PyYAML', '6.0'),
]

exts_list = [
('pyerfa', '2.0.0.1', {
'modulename': 'erfa',
'checksums': ['2fd4637ffe2c1e6ede7482c13f583ba7c73119d78bef90175448ce506a0ede30'],
}),
('extension-helpers', '1.0.0', {
'checksums': ['ca1bfac67c79cf4a7a0c09286ce2a24eec31bf17715818d0726318dd0e5050e6'],
}),
(name, version, {
'checksums': ['ba4bd696af7090fd399b464c704bf27b5633121e461785edc70432606a94bd81'],
}),
]

moduleclass = 'astro'
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
easyblock = 'PythonBundle'

name = 'attrdict3'
version = '2.0.2'

homepage = 'https://github.com/pirofti/AttrDict3'
description = """AttrDict is a Python library that provides mapping objects that allow their elements
to be accessed both as keys and as attributes."""

toolchain = {'name': 'GCCcore', 'version': '12.3.0'}

builddependencies = [('binutils', '2.40')]

dependencies = [
('Python', '3.11.3'),
('Python-bundle-PyPI', '2023.06'),
]

exts_list = [
(name, version, {
'modulename': 'attrdict',
'checksums': ['004c171ca1120cc1755701db99d7fa4944afb1e68950434efdaa542513335fe8'],
}),
]

moduleclass = 'lib'
39 changes: 39 additions & 0 deletions easybuild/easyconfigs/b/BCFtools/BCFtools-1.19-GCC-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
# This file is an EasyBuild reciPY as per https://github.com/easybuilders/easybuild
#
# Author: Jonas Demeulemeester
# The Francis Crick Insitute, London, UK

easyblock = 'ConfigureMake'

name = 'BCFtools'
version = '1.19'

homepage = 'https://www.htslib.org/'
description = """Samtools is a suite of programs for interacting with high-throughput sequencing data.
BCFtools - Reading/writing BCF2/VCF/gVCF files and calling/filtering/summarising SNP and short indel sequence
variants"""

toolchain = {'name': 'GCC', 'version': '13.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/samtools/%(namelower)s/releases/download/%(version)s']
sources = [SOURCELOWER_TAR_BZ2]
checksums = ['782b5f1bc690415192231e82213b3493b047f45e630dc8ef6f154d6126ab3e68']

dependencies = [
('zlib', '1.2.13'),
('HTSlib', '1.19.1'),
('bzip2', '1.0.8'),
('XZ', '5.4.4'),
('GSL', '2.7'),
]

configopts = "--with-htslib=$EBROOTHTSLIB --enable-libgsl"


sanity_check_paths = {
'files': ['bin/%(namelower)s', 'bin/plot-vcfstats', 'bin/vcfutils.pl'],
'dirs': ['libexec/%(namelower)s'],
}

moduleclass = 'bio'
Loading

0 comments on commit f476710

Please sign in to comment.