Skip to main content

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

Metadata

Release files for lyncs 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for lyncs 0.0.3
File Size Uploaded Provenance
lyncs-0.0.3.tar.gz 38.8 kB Without provenance Details

Release files / lyncs-0.0.3.tar.gz

Download URL lyncs-0.0.3.tar.gz
Size 38.8 kB
Tags Source
SHA-256 checksum
How to use checksums
4c6d7d4bde62449526f4f82073a7c63e63a572d084a95ac3edee88a04434869f
BLAKE2b-256 checksum
How to use checksums
ef043ead8dd5d48e4cba9571ac7e218edc4913a59022382aff17c9d89d11ff4b
Upload date
Uploaded using Trusted Publishing?
What is 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

Security for lyncs 0.0.3

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.3 This release

1 release file No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page