Skip to content
Snippets Groups Projects
Commit 4fd2fc33 authored by Jens Henrik Goebbert's avatar Jens Henrik Goebbert
Browse files

add PyEarthSystem

parent c6b2d44c
No related branches found
No related tags found
No related merge requests found
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'
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
QmCC
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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment