diff --git a/Golden_Repo/j/JupyterKernel-PyEarthSystem/JupyterKernel-PyEarthSystem-2023.5-GCCcore-11.3.0-2023.3.6.eb b/Golden_Repo/j/JupyterKernel-PyEarthSystem/JupyterKernel-PyEarthSystem-2023.5-GCCcore-11.3.0-2023.3.6.eb new file mode 100644 index 0000000000000000000000000000000000000000..d72ef7b83a06a4335dd03bc99580a0658965ed3e --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-PyEarthSystem/JupyterKernel-PyEarthSystem-2023.5-GCCcore-11.3.0-2023.3.6.eb @@ -0,0 +1,174 @@ +easyblock = 'PythonBundle' + +name = 'JupyterKernel-PyEarthSystem' +version = '2023.5' +local_jupyterver = '2023.3.6' +versionsuffix = '-' + local_jupyterver + +homepage = 'https://www.fz-juelich.de' +description = """ +Special Earth System Modeling kernel for Jupyter. +Project Jupyter exists to develop open-source software, open-standards, and services +for interactive computing across dozens of programming languages. +""" + +# toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} +toolchainopts = {'pic': True} + +builddependencies = [ + ('binutils', '2.38'), + # just ensure they exist (if they can be loaded here) + # ('NVHPC', '23.1'), + ('netcdf4-python', '1.6.1', '-serial'), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('xarray', '2022.9.0', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('dask', '2022.12.0', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('TensorFlow', '2.11.0', '-CUDA-11.7', ('gcccoremkl', '11.3.0-2022.1.0')), + ('Cartopy', '0.21.0'), + ('Ninja', '1.10.2'), + ('git', '2.36.0', '-nodocs'), + ('GSL', '2.7'), + ('gnuplot', '5.4.4'), + ('ncview', '2.1.8'), + ('GPicView', '0.2.5'), + ('ImageMagick', '7.1.0-37'), + ('GDAL', '3.5.0'), + ('numba', '0.56.4', '-CUDA-11.7', ('gcccoremkl', '11.3.0-2022.1.0')), + # ('ParaStationMPI', '5.7.0-1'), + # ('NCO', '5.1.4'), + # req. GCC-toolchain not NVHPC-toolchain), + # ('CDO', '2.1.1'), + # ('mpi4py', '3.1.4'), + # ('PyTorch', '1.12.0', '-CUDA-11.7'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('JupyterLab', local_jupyterver), +] + +components = [ + ('logos', '1.0', { + 'easyblock': 'Binary', + 'sources': [ + {'filename': 'logo-32x32.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-32x32.png"}, + {'filename': 'logo-64x64.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-64x64.png"}, + {'filename': 'logo-128x128.png.base64', 'extract_cmd': "base64 -d %s > %%(builddir)s/logo-128x128.png"}, + ], + 'checksums': [ + 'f5dc53fd44adf3317014b9b34d40947fbe0f41206a77881c73c30e31a5b14852', + '465720735e479f2161bf64c91eaa7673b63d7e67934c6de27843e1eddad2ac8b', + '7de45ccf75e9fa58fe98585bfc0d094f2dd91087632db764fea807e410b3b201', + ], + }), +] + +exts_default_options = { + 'source_urls': [PYPI_SOURCE], + 'use_pip': True, + 'sanity_pip_check': False, # skip as it requires protobuf, TensorFlow + 'download_dep_fail': True, + 'use_pip_for_deps': False, +} + +exts_list = [ +] + +local_kernel_dir = 'pyearthsystem' +local_kernel_name = 'PyEarthSystem-%s' % version + +modextrapaths = { + 'JUPYTER_PATH': ['share/jupyter'], # add search path for kernelspecs + 'HOROVOD_MPI_THREADS_DISABLE': ['1'], # no mpi by default +} + +# Ensure that the user-specific $HOME/.local/share/jupyter is first entry in JUPYTHER_PATH +modluafooter = """ +prepend_path("JUPYTER_PATH", pathJoin(os.getenv("HOME"), ".local/share/jupyter")) +""" + +postinstallcmds = [ + # create kernel skeleton + ( + 'python -m ipykernel install --name=%s --prefix=%%(installdir)s && ' + 'rm -f %%(installdir)s/share/jupyter/kernels/%s/logo-svg.svg && ' + 'mv %%(installdir)s/logo-32x32.png %%(installdir)s/share/jupyter/kernels/%s/logo-32x32.png && ' + 'mv %%(installdir)s/logo-64x64.png %%(installdir)s/share/jupyter/kernels/%s/logo-64x64.png && ' + 'mv %%(installdir)s/logo-128x128.png %%(installdir)s/share/jupyter/kernels/%s/logo-128x128.png' + ) % (local_kernel_dir, local_kernel_dir, local_kernel_dir, local_kernel_dir, local_kernel_dir), + + # write kernel.sh + ( + '{ cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.sh; } << EOF\n' + '#!/bin/bash \n' + '\n' + '# Load required modules \n' + 'module load Stages/${STAGE} \n' + 'module load NVHPC/23.1 \n' + 'module load %s/.%s%s \n' + '\n' + 'module load netcdf4-python/1.6.1-serial \n' + 'module load SciPy-bundle/2022.05 \n' + 'module load xarray/2022.9.0 \n' + 'module load dask/2022.12.0 \n' + 'module load TensorFlow/2.11.0-CUDA-11.7 \n' + 'module load Cartopy/0.21.0 \n' + 'module load Ninja/1.10.2 \n' + 'module load git/2.36.0-nodocs \n' + 'module load GSL/2.7 \n' + 'module load gnuplot/5.4.4 \n' + 'module load ncview/2.1.8 \n' + 'module load GPicView/0.2.5 \n' + 'module load ImageMagick/7.1.0-37 \n' + 'module load GDAL/3.5.0 \n' + 'module load numba/0.56.4-CUDA-11.7 \n' + '\n' + 'module load ParaStationMPI/5.7.0-1 \n' + 'module load NCO/5.1.4 \n' + '\n' + '# req. GCC-toolchain not NVHPC-toolchain \n' + '# module load CDO/2.1.1 \n' + '# module load mpi4py/3.1.4 \n' + '# module load PyTorch/1.12.0-CUDA-11.7 \n' + '\n' + 'export PYTHONPATH=%%(installdir)s/lib/python%%(pyshortver)s/site-packages:\$PYTHONPATH \n' + 'exec python -m ipykernel \$@\n' + '\n' + 'EOF' + ) % (local_kernel_dir, name, version, versionsuffix), + 'chmod +x %%(installdir)s/share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir, + + # write kernel.json + ( + '{ cat > %%(installdir)s/share/jupyter/kernels/%s/kernel.json; } << \'EOF\'\n' + '{ \n' + ' "argv": [ \n' + ' "%%(installdir)s/share/jupyter/kernels/%s/kernel.sh", \n' + ' "-m", \n' + ' "ipykernel_launcher", \n' + ' "-f", \n' + ' "{connection_file}" \n' + ' ], \n' + ' "display_name": "%s", \n' + ' "language": "python", \n' + ' "name": "%s", \n' + ' "metadata": { \n' + ' "debugger": true \n' + ' } \n' + '}\n' + 'EOF' + ) % (local_kernel_dir, local_kernel_dir, local_kernel_name, local_kernel_name), +] + +sanity_check_paths = { + 'files': [ + 'share/jupyter/kernels/%s/kernel.sh' % local_kernel_dir, + 'share/jupyter/kernels/%s/kernel.json' % local_kernel_dir, + ], + 'dirs': [ + 'share/jupyter/kernels/', + ], +} + +moduleclass = 'tools' diff --git a/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-128x128.png.base64 b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-128x128.png.base64 new file mode 100644 index 0000000000000000000000000000000000000000..c501076be2b42c15267241b3d6b250dca8c9e469 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-128x128.png.base64 @@ -0,0 +1,165 @@ +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 +QmCC diff --git a/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-32x32.png.base64 b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-32x32.png.base64 new file mode 100644 index 0000000000000000000000000000000000000000..acbf822bc238fe525a40b1bd090ed83e0c105b99 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-32x32.png.base64 @@ -0,0 +1,36 @@ +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 diff --git a/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-64x64.png.base64 b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-64x64.png.base64 new file mode 100644 index 0000000000000000000000000000000000000000..bf3fd58aa6584fb9fd176a8904618ed2a76bcf91 --- /dev/null +++ b/Golden_Repo/j/JupyterKernel-PyEarthSystem/logo-64x64.png.base64 @@ -0,0 +1,78 @@ +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