distributed data processing for ICON data | Read-only mirror of https://github.com/MeteoSwiss-APN/finch — MeteoSchweiz. Issues & pull requests at the source.
  • Python 88.2%
  • C++ 9.7%
  • CMake 1.4%
  • C 0.6%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Tierry Hörmann cdb5dad779
Merge pull request #52 from MeteoSwiss-APN/fixes
Fixes and improvements
2023-02-22 17:38:38 +01:00
.github Adjusted CI-Pipeline 2023-02-08 22:04:05 +01:00
conda Added zarr and netcdf4 to run dependencies 2023-02-21 20:04:30 +01:00
docs Added new default_role and resolved #38 2023-02-20 12:30:47 +01:00
images add file 2022-10-04 16:38:06 +02:00
scripts A bit of reformatting 2023-02-22 14:29:52 +01:00
src Removed unnecessary plot creation blocker 2023-02-22 17:18:29 +01:00
tests Fixed typing issues in test_brn.py 2023-02-02 14:27:53 +01:00
.gitignore Renamed finch config files and adjusted docs 2023-02-10 18:18:52 +01:00
.pre-commit-config.yaml Adjusted pre-commit dependencies 2023-02-17 14:00:06 +01:00
environment.yml Handled missing data-science-types 2023-02-16 11:19:54 +01:00
LICENSE Initial commit 2022-10-04 16:16:10 +02:00
MANIFEST.in Resolves #50 2023-02-21 17:55:12 +01:00
mypy.ini Added numpy plugin to mypy 2023-02-15 15:30:23 +01:00
pyproject.toml Adjusted setuptools installation 2023-02-07 21:25:58 +01:00
README.rst Fixed typing issues in brn 2023-02-02 14:25:46 +01:00
setup.cfg Added zarr and netcdf4 to run dependencies 2023-02-21 20:04:30 +01:00
setup.py Added cmake_install_dir in setup.py 2023-02-08 14:42:25 +01:00

finch [distributed data processing for ICON data]
=================================================

.. figure:: https://github.com/MeteoSwiss-APN/finch/blob/main/images/201903_Zebra_finch_lo.png?raw=true

    Image distributed through Creative Commons License from https://commons.wikimedia.org/wiki/File:201903_Zebra_finch.svg

**Finch** is a Python library for setting up, running and analyzing runtime experiments for data processing operators with `dask <https://www.dask.org/>`_.

.. warning::
    Finch is currently in development.
    The documentation might at some places be outdated or incomplete.

Overview
--------

Finch provides parallelized prototypes for ICON data processing operators for a distributed infrastructure with SLURM.
It is designed as a library for setting up experiments plus a run script, which runs configurable experiments.
The documentation of finch is available on `github pages <https://meteoswiss-apn.github.io/finch/>`_.

.. TODO
.. The following commented documentation is outdated documentation from the old README.md.
.. It should be integrated into the current documentation at some point.

......................................................................

.. Usage

.. ## Start a distributed scheduler on the cluster

.. Dask provides a dashboard for monitoring task activities.
.. This is a very powerful tool to get insights into how well parallelized the code actually is and where there is still potential for optimization.

.. The dashboard is attached to a running scheduler session.
.. Therefore we provide a script which runs a scheduler on a compute node, to which finch will automatically connect.
.. The script can be started as follows.
.. ```
.. bash start_scheduler.sh
.. ```
.. This opens up an interactive python session, which can be used to scale the cluster.

.. # Configuration

.. Finch uses the Python's configparser library for configuration with `.ini` files and extended interpolation.
.. Variables can be cross-referenced with `${section:variable}` and environment variables are available via `${VAR}`.
.. Finch provides a default config file `config/finch.ini`.
.. Custom configuration, which overrides the defaults, can be provided in `config/custom.ini` as well as in a location specified by the  environment variable `CONFIG`.

.. ## Debug mode

.. To run Finch in debug mode, the `debug_mode` option in the `global` section of the configuration can be set to "true" or "false".
.. By default, the debug option is retrieved from the environment variable `DEBUG`.

.. In debug mode, Finch will run a synchronous dask scheduler and will put the log level to debug (instead of info).

.. ## Dask configuration

.. For setting up the dask clusters, Finch uses the dask provided configuration to find out about the reources provided by the HPC infrastracture.
.. For jobqueue.slurm configurations, it interprets the configured resources (cores and memory) as resources available per node on the cluster.
.. The job specific resources will be overwritten.
.. See [here](https://docs.dask.org/en/stable/configuration.html) and [here](https://jobqueue.dask.org/en/latest/configuration-setup.html) for information on how to configure dask.