Skip to content

Commit d0699e2

Browse files
committed
Updating webpage
1 parent aa8916b commit d0699e2

File tree

1 file changed

+56
-6
lines changed

1 file changed

+56
-6
lines changed

README.md

Lines changed: 56 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
## Lyncs, a Python API for Lattice QCD applications
22

3-
Lyncs is a Python API for Lattice QCD currently under development.
3+
Lyncs is a Python API for Lattice QCD, currently under development.
44
Lyncs aims to bring several popular libraries for Lattice QCD
55
under a common framework. Lyncs interfaces with libraries for
66
GPUs and CPUs in a way that can accommodate additional computing
77
architectures as these arise, achieving the best performance for
88
the calculations while maintaining the same high-level workflow.
99

10-
Lyncs distributes calculations using [Dask], with bindings to the
10+
Lyncs distributes calculations using [mpi4py] and [Dask], with bindings to the
1111
libraries performed automatically via [cppyy]. Multiple distributed
1212
tasks can be executed in parallel and different computing units
1313
can be used at the same time to fully exploit the machine allocation.
1414
While Lyncs is designed to quite generally allow linking to multiple
15-
libraries, we have focused on a set of targeted packages that include
15+
libraries, we focus on a set of targeted packages that include
1616
[c-lime], [DDalphaAMG], [tmLQCD] and [quda]. Any contribution to link
1717
other libraries is very welcome!
1818

19+
[mpi4py]: https://mpi4py.readthedocs.io/en/stable/
1920
[Dask]: https://dask.org/
2021
[cppyy]: https://cppyy.readthedocs.io/
2122
[c-lime]: https://github.com/usqcd-software/c-lime
@@ -25,7 +26,7 @@ other libraries is very welcome!
2526

2627
### The Lyncs ecosystem
2728

28-
The Lyncs API is a top-level framework meant to be user-friendly,
29+
The Lyncs-API is a top-level framework meant to be user-friendly,
2930
flexible, modular and extendable. Under the hood, the project is
3031
divided in many Python (sub-)modules that serve for a specific or
3132
generic purpose. These modules are collected in the [Lyncs-API]
@@ -51,6 +52,10 @@ The modules part of lyncs are the following.
5152
- [lyncs.mpi](https://github.com/Lyncs-API/lyncs.mpi):
5253
utils for interfacing to MPI libraries using mpi4py and dask.
5354

55+
- [lyncs.io](https://github.com/Lyncs-API/lyncs.io):
56+
IO functions (`load` and `save`) that support various formats
57+
and also parallel IO via MPI and Dask.
58+
5459
##### Interfaces to Lattice QCD libraries
5560

5661
- [lyncs.clime](https://github.com/Lyncs-API/lyncs.clime):
@@ -69,7 +74,7 @@ The modules part of lyncs are the following.
6974

7075
These modules can be either installed as part of Lyncs,
7176
`pip install lyncs[NAME]`
72-
or independently,
77+
or independently (suggested for now),
7378
`pip install lyncs_NAME`.
7479

7580
In the first case they can be imported with
@@ -84,10 +89,55 @@ applications in Python. We seek for contributions under many
8489
aspect: linking to libraries, expanding the features of the API
8590
and writing of documentation and educational-oriented notebooks.
8691

87-
If you want to contribute, please read the following.
92+
If you want to contribute, please read the [Developer guide].
93+
94+
For any news or being informed about planned events,
95+
please consider registering to our mailing list.
96+
97+
https://groups.google.com/g/lyncs-api
8898

8999
#### Developer guide
90100

101+
When contributing to a package, clone the source from [github](https://github.com/Lyncs-API/)
102+
and install the package in development mode:
103+
104+
```
105+
pip install -e .[all]
106+
```
107+
108+
Now you can run the test-suite for checking the correctness of the installation:
109+
110+
```
111+
pytest -v
112+
```
113+
114+
If everything goes well, you should see all the tests passed and obtain a coverage report.
115+
116+
A main implementation requirement is a **high code-coverage**.
117+
If you are going to implement something new, please, also add the respective
118+
test files or functions in the `test/` directory.
119+
120+
Another implementation requirement is to **format the code** via [black](https://github.com/ambv/black)
121+
and to use [pylint](https://github.com/PyCQA/pylint) for improving the code standards.
122+
123+
These packages can be installed via pip:
124+
125+
```
126+
pip install black lyncs_setuptools[pylint]
127+
```
128+
129+
Before any commit, run black from the source directory:
130+
131+
```
132+
black .
133+
```
134+
135+
When you are done with the implementation, try to resolve as many comments/warnings/errors
136+
as possible brought up by `pylint`:
137+
138+
```
139+
lyncs_pylint .
140+
```
91141

92142

93143
### Funding

0 commit comments

Comments
 (0)