pineko is a software central to any PDF fit, as it is used to create the fktables by evolving grids down to the fitting scale.
As such, is very important that:
- Any changes keep results unchanged or, if there are changes, they are understood.
- Updates in
nnpdf, eko and pineappl are kept track of (this is important since pineko is mostly feature complete, and we should try to make sure it doesn't lag to far behind).
The best way to accomplish both points is with regression tests that can be run with PRs or whenever there are changes to the dependencies like in #190
The tests should then:
This should be done for a bunch of DIS grids, and a bunch of double-hadronic grids.
And it should be done for a bunch of theories, it should include 41_000_000 and, hopefully, also a polarized theory.
Take into account the two limitations of github workflows in terms of runtime and memory (so we cannot do it with the full dataset).
Some extra (bonus) points:
- In order to start, add a few grids to the repository in your branch so you don't have to deal with authentication to download them or anything for the time being. We can work on that after the regression tests are ready.
- You probably want to not run this in every commit. Maybe only for PR that are "ready for review" or using a specific label for it. You can leave this point for the end.
- Github allows to have "self hosted runners". We might want to explore that option in order to do a more comprehensive test.
You can look at these workflows for inspiration:
https://github.com/NNPDF/pineko/blob/main/.github/workflows/bench.yml (note that you don't need pylint, coverage or anything like that, it should focus on the regression and the regression only)
https://github.com/NNPDF/nnpdf/blob/master/.github/workflows/regression_tests.yml
This will teach you:
- How to generate fktables starting from scratch
- How to use all the moving parts that create a theory.
pinekois a software central to any PDF fit, as it is used to create the fktables by evolving grids down to the fitting scale.As such, is very important that:
nnpdf,ekoandpineapplare kept track of (this is important sincepinekois mostly feature complete, and we should try to make sure it doesn't lag to far behind).The best way to accomplish both points is with regression tests that can be run with PRs or whenever there are changes to the dependencies like in #190
The tests should then:
pinekois able to read the data and theory from the NNPDF data files (crucial importance for the fit!!)pinekois still compatible with eko b) the theory information from nnpdf is still compatible with pineko -> eko)pineappl-ekoused bypinekois still working as expected)This should be done for a bunch of DIS grids, and a bunch of double-hadronic grids.
And it should be done for a bunch of theories, it should include
41_000_000and, hopefully, also a polarized theory.Take into account the two limitations of github workflows in terms of runtime and memory (so we cannot do it with the full dataset).
Some extra (bonus) points:
You can look at these workflows for inspiration:
https://github.com/NNPDF/pineko/blob/main/.github/workflows/bench.yml (note that you don't need pylint, coverage or anything like that, it should focus on the regression and the regression only)
https://github.com/NNPDF/nnpdf/blob/master/.github/workflows/regression_tests.yml
This will teach you: