Skip to main content

A python API for Lattice QCD applications

Project description

A python API for Lattice QCD applications

python pypi license build & test codecov pylint black

alt text

Lyncs is a Python API for Lattice QCD applications currently under development with a first released version expected by the end of Q2 of 2020. Lyncs aims to bring several popular libraries for Lattice QCD under a common framework. Lyncs will interface with libraries for GPUs and CPUs in a way that can accommodate additional computing architectures as these arise, achieving the best performance for the calculations while maintaining the same high- level workflow. Lyncs is one of 10 applications supported by PRACE-6IP, WP8 "Forward Looking Software Solutions".

Lyncs distributes calculations using Dask, with bindings to the libraries performed automatically via Cppyy. Multiple distributed tasks can be executed in parallel and different computing units can be used at the same time to fully exploit the machine allocation. The data redistribution is efficiently managed by the API. We expect this model of distributing tasks to be well suited for modular architectures, allowing to flexibly distribute work between the different modules. While Lyncs is designed to quite generally allow linking to multiple libraries, we will focus on a set of targeted packages that include tmLQCD, DDalphaAMG, PLEGMA and QUDA.

Installation:

The package can be installed via pip:

pip install [--user] lyncs

Sub-modules and plugins

Sub-modules and plugins can also be installed via pip with:

pip install [--user] lyncs[NAME]

where NAME is the name of the sub-module. Hereafter the list of the available sub-modules.

Groups

  • all: installs all the plugins enabling all Lyncs' functionalities (e.g. hmc, visualization, etc..). Note it does not install libraries with strong dependencies like MPI, GPUs, etc. Simple CPUs libraries may be installed.

  • mpi: installs all MPI libraries.

  • cuda: installs all NVIDIA GPUs libraries.

  • io: installs all IO libraries for full support of IO formats (clime, HDF5, etc..).

LQCD libraires

  • DDalphaAMG: multigrid solver library for Wilson and Twisted mass fermions.

  • QUDA: NVIDIA GPUs library for LQCD.

  • clime: IO library for c-lime format.

  • tmLQCD: legacy code of the Extended Twisted Mass collaboration.

Goals:

  • Include several Lattice QCD libraries under a single framework
  • Provide crosschecks and benchmarks of different libraries' implementations
  • Handle memory distribution and mapping
  • Allow for multitasking parallelization and unequal distribution

Dependencies:

Python utils:

  • numpy: Multidimensional arrays in python
  • dask: Utility for sceduling distributed tasks
  • cppyy: Automatic binding to C/C++ libraries
  • (optional) dask-mpi, mpi4py: MPI for python
  • (under consideration) numba: JIT compilation of python code
  • others: xmltodict,

LQCD libraries:

  • QUDA: Lattice QCD operators and solvers on GPUs
  • DDalphaAMG: Multigrid solver on CPUs
  • tmLQCD: HMC routines on CPUs
  • PLEGMA: contraction kernels on GPUs

Extras requirements:

  • Jupyter notebook/lab: for visualizing and running the avaialble notebooks
  • dask-labextension: utils for profiling the task execution in Jupyter lab

Fundings:

  • PRACE-6IP, Grant agreement ID: 823767, Project name: LyNcs.

Authors:

  • Simone Bacchio, The Cyprus Institute

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

lyncs-0.0.3.tar.gz (38.8 kB view details)

Uploaded Source

File details

Details for the file lyncs-0.0.3.tar.gz.

File metadata

  • Download URL: lyncs-0.0.3.tar.gz
  • Upload date:
  • Size: 38.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.2.0 pkginfo/1.5.0.1 requests/2.24.0 setuptools/47.1.0 requests-toolbelt/0.9.1 tqdm/4.50.0 CPython/3.8.5

File hashes

Hashes for lyncs-0.0.3.tar.gz
Algorithm Hash digest
SHA256 4c6d7d4bde62449526f4f82073a7c63e63a572d084a95ac3edee88a04434869f
MD5 5990c872719002a628f3daa1799557f9
BLAKE2b-256 ef043ead8dd5d48e4cba9571ac7e218edc4913a59022382aff17c9d89d11ff4b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page