diff --git a/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2021.eb b/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..7f93aaa4a572a534ad8ecafb7267bc192c920655 --- /dev/null +++ b/Golden_Repo/e/ecCodes/ecCodes-2.18.0-npsmpic-2021.eb @@ -0,0 +1,35 @@ +easyblock = 'CMakeMake' + +name = 'ecCodes' +version = '2.18.0' + +homepage = 'https://software.ecmwf.int/wiki/display/ECC/ecCodes+Home' +description = """ecCodes is a package developed by ECMWF which provides an application programming interface and + a set of tools for decoding and encoding messages in the following formats: WMO FM-92 GRIB edition 1 and edition 2, + WMO FM-94 BUFR edition 3 and edition 4, WMO GTS abbreviated header (only decoding).""" + +site_contacts = 'a.ghasemi@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +source_urls = ['https://confluence.ecmwf.int/download/attachments/45757960/'] +sources = ['eccodes-%(version)s-Source.tar.gz'] + +builddependencies = [('CMake', '3.18.0')] +dependencies = [ + ('netCDF', '4.7.4'), + ('JasPer', '2.0.19'), +] + +separate_build_dir = True + +configopts = "-DENABLE_NETCDF=ON -DENABLE_JPG=ON -DENABLE_PYTHON=OFF" + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in ['bufr_copy', 'bufr_dump', 'bufr_filter', 'bufr_ls', + 'codes_count', 'codes_info', 'codes_split_file', + 'grib_copy', 'grib_dump', 'grib_filter', 'grib_ls']], + 'dirs': [], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/h/HDF5/HDF5-1.10.6-npsmpic-2021.eb b/Golden_Repo/h/HDF5/HDF5-1.10.6-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..86aef3a41d6f599674f3610117fa1f8ed6877d78 --- /dev/null +++ b/Golden_Repo/h/HDF5/HDF5-1.10.6-npsmpic-2021.eb @@ -0,0 +1,25 @@ +name = 'HDF5' +version = '1.10.6' + +homepage = 'http://www.hdfgroup.org/HDF5/' +description = """HDF5 is a unique technology suite that makes possible the management of + extremely large and complex data collections. +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'optarch': True, 'pic': True, 'usempi': True} + +source_urls = [ + 'https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-%(version_major)s.%(version_minor)s/hdf5-%(version)s/src' +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['5f9a3ee85db4ea1d3b1fa9159352aebc2af72732fc2f58c96a3f0768dba0e9aa'] + +dependencies = [ + ('zlib', '1.2.11'), + ('Szip', '2.1.1'), +] + +moduleclass = 'data' diff --git a/Golden_Repo/h/h5py/h5py-2.10.0-npsmpic-2021-Python-3.8.5.eb b/Golden_Repo/h/h5py/h5py-2.10.0-npsmpic-2021-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..a4d709f51e377d983e44a9f31a7f5d4dcc6328ad --- /dev/null +++ b/Golden_Repo/h/h5py/h5py-2.10.0-npsmpic-2021-Python-3.8.5.eb @@ -0,0 +1,44 @@ +easyblock = "PythonPackage" + +name = 'h5py' +version = '2.10.0' +versionsuffix = '-Python-%(pyver)s' + +homepage = 'http://www.h5py.org/' +description = """HDF5 for Python (h5py) is a general-purpose Python interface to the Hierarchical Data Format library, + version 5. HDF5 is a versatile, mature scientific software library designed for the fast, flexible storage of enormous + amounts of data. +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'usempi': True} + +source_urls = [PYPI_SOURCE] +sources = [SOURCE_TAR_GZ] + +req_py_majver = 3 +req_py_minver = 0 + +# to really use mpi enabled hdf5 we now seem to need a configure step +prebuildopts = 'export LDSHARED="$CC -shared" && export CFLAGS="-noswitcherror -D_NPY_NO_DEPRECATIONS" && ' +prebuildopts += 'python setup.py configure --mpi --hdf5=$EBROOTHDF5 && ' + +builddependencies = [ + ('pkgconfig', '1.5.1', versionsuffix), +] + +dependencies = [ + ('Python', '3.8.5'), + ('SciPy-Stack', '2020', versionsuffix, ('gcccoremkl', '9.3.0-2020.2.254')), # numpy required + ('mpi4py', '3.0.3', versionsuffix), # required for MPI support + ('HDF5', '1.10.6'), +] + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/'], +} + +moduleclass = 'data' diff --git a/Golden_Repo/i/imkl/imkl-2020.2.254-npsmpic-2021.eb b/Golden_Repo/i/imkl/imkl-2020.2.254-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..3a5d4900a8e9af7e748544149eb4f30925bf43b5 --- /dev/null +++ b/Golden_Repo/i/imkl/imkl-2020.2.254-npsmpic-2021.eb @@ -0,0 +1,35 @@ +name = 'imkl' +version = '2020.2.254' + +homepage = 'http://software.intel.com/en-us/intel-mkl/' +description = """Intel Math Kernel Library is a library of highly optimized, + extensively threaded math routines for science, engineering, and financial + applications that require maximum performance. Core math functions include + BLAS, LAPACK, ScaLAPACK, Sparse Solvers, Fast Fourier Transforms, Vector Math, and more. +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +sources = ['l_mkl_%(version)s.tgz'] + +dontcreateinstalldir = 'True' + +# NVHPC is not yet supported +interfaces = False + +postinstallcmds = [ + # extract the examples + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_cluster_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_c.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_core_f.tgz -C %(installdir)s/mkl/examples/', + 'tar xvzf %(installdir)s/mkl/examples/examples_f95.tgz -C %(installdir)s/mkl/examples/', +] + +modextravars = { + 'MKL_EXAMPLES': '%(installdir)s/mkl/examples/', +} + +moduleclass = 'numlib' diff --git a/Golden_Repo/m/mpi4py/mpi4py-3.0.3-npsmpic-2021-Python-3.8.5.eb b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-npsmpic-2021-Python-3.8.5.eb new file mode 100644 index 0000000000000000000000000000000000000000..ecfc94ba5b51e13c278bba1d81dd09963b3e73c1 --- /dev/null +++ b/Golden_Repo/m/mpi4py/mpi4py-3.0.3-npsmpic-2021-Python-3.8.5.eb @@ -0,0 +1,29 @@ +easyblock = 'PythonPackage' + +name = 'mpi4py' +version = '3.0.3' + +homepage = 'https://bitbucket.org/mpi4py/mpi4py' +description = """MPI for Python (mpi4py) provides bindings of the Message Passing Interface (MPI) standard for + the Python programming language, allowing any Python program to exploit multiple processors. +""" + +site_contacts = 'a.kreuzer@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +source_urls = [BITBUCKET_DOWNLOADS] +sources = [SOURCE_TAR_GZ] + +versionsuffix = '-Python-%(pyver)s' + +dependencies = [('Python', '3.8.5')] + +prebuildopts = 'CFLAGS=-noswitcherror' + +sanity_check_paths = { + 'files': [], + 'dirs': ['lib/python%(pyshortver)s/site-packages/mpi4py'], +} + +moduleclass = 'mpi' diff --git a/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-npsmpic-2021.eb b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..88908860332e61cb09546869d8ce420088fb3568 --- /dev/null +++ b/Golden_Repo/n/netCDF-C++4/netCDF-C++4-4.3.1-npsmpic-2021.eb @@ -0,0 +1,28 @@ +easyblock = 'ConfigureMake' + +name = 'netCDF-C++4' +version = '4.3.1' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data. +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/Unidata/netcdf-cxx4/archive/'] +sources = ['v%(version)s.tar.gz'] +checksums = ['e3fe3d2ec06c1c2772555bf1208d220aab5fee186d04bd265219b0bc7a978edc'] + +dependencies = [('netCDF', '4.7.4')] + +sanity_check_paths = { + 'files': ['include/netcdf', 'lib/libnetcdf_c++4.a', 'lib/libnetcdf_c++4.%s' % SHLIB_EXT], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.5.3-npsmpic-2021.eb b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.5.3-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..e55c36f5deda600298778bb0da75a85731388650 --- /dev/null +++ b/Golden_Repo/n/netCDF-Fortran/netCDF-Fortran-4.5.3-npsmpic-2021.eb @@ -0,0 +1,24 @@ +name = 'netCDF-Fortran' +version = '4.5.3' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data. +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'pic': True} + +source_urls = [ + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/', + 'ftp://ftp.unidata.ucar.edu/pub/netcdf/old', +] +sources = [SOURCELOWER_TAR_GZ] +checksums = ['123a5c6184336891e62cf2936b9f2d1c54e8dee299cfd9d2c1a1eb05dd668a74'] + +dependencies = [('netCDF', '4.7.4')] + +moduleclass = 'data' diff --git a/Golden_Repo/n/netCDF/netCDF-4.7.4-npsmpic-2021.eb b/Golden_Repo/n/netCDF/netCDF-4.7.4-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..638a0009653ebd394f9069d42e56af88853a0184 --- /dev/null +++ b/Golden_Repo/n/netCDF/netCDF-4.7.4-npsmpic-2021.eb @@ -0,0 +1,46 @@ +name = 'netCDF' +version = '4.7.4' + +homepage = 'http://www.unidata.ucar.edu/software/netcdf/' +description = """NetCDF (network Common Data Form) is a set of software libraries + and machine-independent data formats that support the creation, access, and sharing of array-oriented + scientific data. +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'pic': True, 'usempi': True} + +source_urls = ['https://github.com/Unidata/netcdf-c/archive/'] +sources = ['v%s.tar.gz' % (version)] +checksums = ['99930ad7b3c4c1a8e8831fb061cb02b2170fc8e5ccaeda733bd99c3b9d31666b'] + +dependencies = [ + ('HDF5', '1.10.6'), + ('cURL', '7.71.1'), + ('Szip', '2.1.1'), + ('parallel-netcdf', '1.12.1') +] + +builddependencies = [ + ('CMake', '3.18.0'), + ('Doxygen', '1.8.18'), +] + +patches = ['remove_double_shared_in_link_command.patch'] + +# make sure both static and shared libs are built +configopts = [ + "-DCURL_LIBRARY=$EBROOTCURL/lib/libcurl.so -DCURL_INCLUDE_DIR=$EBROOTCURL/include " + + "-DENABLE_PNETCDF=ON -DBUILD_SHARED_LIBS=ON", + "-DCURL_LIBRARY=$EBROOTCURL/lib/libcurl.so -DCURL_INCLUDE_DIR=$EBROOTCURL/include " + + "-DENABLE_PNETCDF=ON -DBUILD_SHARED_LIBS=OFF", +] + +sanity_check_paths = { + 'files': ["include/netcdf_mem.h", "include/netcdf_par.h"], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/p/parallel-netcdf/parallel-netcdf-1.12.1-npsmpic-2021.eb b/Golden_Repo/p/parallel-netcdf/parallel-netcdf-1.12.1-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..89dc178bb71d9f19436534f4f1b82f18d4a8b7d7 --- /dev/null +++ b/Golden_Repo/p/parallel-netcdf/parallel-netcdf-1.12.1-npsmpic-2021.eb @@ -0,0 +1,34 @@ +easyblock = 'ConfigureMake' + +name = 'parallel-netcdf' +version = '1.12.1' + +homepage = 'http://trac.mcs.anl.gov/projects/parallel-netcdf' +description = """PnetCDF is a library providing high-performance parallel I/O while still maintaining file-format +compatibility with Unidata's NetCDF, specifically the formats of CDF-1 and CDF-2. + +Although NetCDF supports parallel I/O starting from version 4, the files must be in HDF5 format. PnetCDF is currently +the only choice for carrying out parallel I/O on files that are in classic formats +""" + +site_contacts = 's.luehrs@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} +toolchainopts = {'usempi': True, 'pic': True} + +source_urls = ['https://parallel-netcdf.github.io/Release/'] +sources = ['pnetcdf-%(version)s.tar.gz'] +checksums = ['56f5afaa0ddc256791c405719b6436a83b92dcd5be37fe860dea103aee8250a2'] + +configopts = '--enable-shared' + +builddependencies = [ + ('M4', '1.4.18'), +] + +sanity_check_paths = { + 'files': ['include/pnetcdf.h', 'include/pnetcdf.inc', 'include/pnetcdf.mod', 'lib/libpnetcdf.a'], + 'dirs': [], +} + +moduleclass = 'data' diff --git a/Golden_Repo/s/SIONlib/SIONlib-1.7.6-npsmpic-2021.eb b/Golden_Repo/s/SIONlib/SIONlib-1.7.6-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..c04d31119b6a491ba987147b24833276b2a841ba --- /dev/null +++ b/Golden_Repo/s/SIONlib/SIONlib-1.7.6-npsmpic-2021.eb @@ -0,0 +1,36 @@ +easyblock = "ConfigureMake" +name = "SIONlib" +version = "1.7.6" + +homepage = 'http://www.fz-juelich.de/ias/jsc/EN/Expertise/Support/Software/SIONlib/_node.html' +description = """SIONlib is a scalable I/O library for the parallel access to +task-local files. The library not only supports writing and reading +binary data to or from from several thousands of processors into a +single or a small number of physical files but also provides for +global open and close functions to access SIONlib file in +parallel. SIONlib provides different interfaces: parallel access using +MPI, OpenMP, or their combination and sequential access for +post-processing utilities. +""" + +site_contacts = 'Benedikt Steinbusch <b.steinbusch@fz-juelich.de>' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +patches = ['sionlib_psmpi.patch'] + +configopts = '--disable-mic --compiler=pgi --mpi=psmpi --disable-cxx ' +configopts += 'CFLAGS="$CFLAGS -fPIC" ' + +source_urls = ['http://apps.fz-juelich.de/jsc/sionlib/download.php?version=%(version)s'] +sources = ['sionlib-%(version)s.tar.gz'] + +sanity_check_paths = { + 'files': [ + "bin/sionconfig", + ("lib64/libsioncom_64.a", "lib/libsionmpi_64.a", "lib64/libsionmpi_64.a"), + ], + 'dirs': [] +} + +moduleclass = 'lib' diff --git a/Golden_Repo/s/Scalasca/Scalasca-2.5-npsmpic-2021.eb b/Golden_Repo/s/Scalasca/Scalasca-2.5-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..ac828acf91b07e1705a9be1868f8b7fa43c3ca93 --- /dev/null +++ b/Golden_Repo/s/Scalasca/Scalasca-2.5-npsmpic-2021.eb @@ -0,0 +1,52 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2018 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Scalasca' +version = '2.5' + +homepage = 'http://www.scalasca.org/' +description = """ +Scalasca is a software tool that supports the performance optimization of +parallel programs by measuring and analyzing their runtime behavior. The +analysis identifies potential performance bottlenecks -- in particular +those concerning communication and synchronization -- and offers guidance +in exploring their causes. +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +source_urls = ['http://apps.fz-juelich.de/scalasca/releases/scalasca/%(version_major_minor)s/dist'] +sources = [SOURCELOWER_TAR_GZ] + +builddependencies = [ + ('CubeWriter', '4.5'), +] + +dependencies = [ + ('CubeGUI', '4.5'), + ('CubeLib', '4.5'), + ('OTF2', '2.2'), + ('Score-P', '6.0'), +] + +sanity_check_paths = { + 'files': ['bin/scalasca', ('lib/libpearl.replay.a', 'lib64/libpearl.replay.a')], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scalasca/patterns'} + +moduleclass = 'perf' diff --git a/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2021.eb b/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2021.eb new file mode 100644 index 0000000000000000000000000000000000000000..4722c8f65e19d69189d9d7d36e3ca71625427ecb --- /dev/null +++ b/Golden_Repo/s/Score-P/Score-P-6.0-npsmpic-2021.eb @@ -0,0 +1,67 @@ +## +# This is an easyconfig file for EasyBuild, see https://github.com/easybuilders/easybuild +# Copyright:: Copyright 2013-2018 Juelich Supercomputing Centre, Germany +# Authors:: Bernd Mohr <b.mohr@fz-juelich.de> +# Markus Geimer <m.geimer@fz-juelich.de> +# License:: 3-clause BSD +# +# This work is based on experiences from the UNITE project +# http://apps.fz-juelich.de/unite/ +## + +easyblock = 'EB_Score_minus_P' + +name = 'Score-P' +version = '6.0' + +homepage = 'http://www.score-p.org' +description = """ +The Score-P measurement infrastructure is a highly scalable and easy-to-use +tool suite for profiling, event tracing, and online analysis of HPC +applications. +""" + +site_contacts = 'sc@fz-juelich.de' + +toolchain = {'name': 'npsmpic', 'version': '2021'} + +source_urls = ['https://www.vi-hps.org/cms/upload/packages/scorep/'] +sources = ['scorep-%(version)s.tar.gz'] +patches = [ + 'Score-P-6.0_binutils_2.34_api_change.patch', + 'Score-P-6.0_no_PDT_for_CUDA.patch' +] + +builddependencies = [ + ('CUDA', '11.0', '', SYSTEM), + ('CubeLib', '4.5'), + ('CubeWriter', '4.5'), + # Unwinding/sampling support (optional): + ('libunwind', '1.4.0'), +] + +dependencies = [ + # binutils is implicitly available via GCC toolchain + ('OPARI2', '2.0.5'), + ('OTF2', '2.2'), + # Hardware counter support (optional): + ('PAPI', '6.0.0'), + # PDT source-to-source instrumentation support (optional): + ('PDT', '3.25'), +] + +configopts = '--enable-shared ' +# Enable CUDA support +configopts += '--with-libOpenCL=$EBROOTCUDA/targets/x86_64-linux' + +sanity_check_paths = { + 'files': ['bin/scorep', 'include/scorep/SCOREP_User.h', + ('lib/libscorep_adapter_mpi_event.a', 'lib64/libscorep_adapter_mpi_event.a'), + ('lib/libscorep_adapter_mpi_event.%s' % SHLIB_EXT, 'lib64/libscorep_adapter_mpi_event.%s' % SHLIB_EXT)], + 'dirs': [], +} + +# Ensure that local metric documentation is found by CubeGUI +modextrapaths = {'CUBE_DOCPATH': 'share/doc/scorep/profile'} + +moduleclass = 'perf'