Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Move to Python package structure #159

Open
2 tasks
kreczko opened this issue Feb 27, 2019 · 2 comments
Open
2 tasks

Move to Python package structure #159

kreczko opened this issue Feb 27, 2019 · 2 comments
Milestone

Comments

@kreczko
Copy link
Member

kreczko commented Feb 27, 2019

  • add setup.py & setup.sh
    • express dependencies in setup.py
    • compile L1T headers as part of the install
    • deploy tagged releases to PyPi → pip install cms-l1t-analysis
    • ideally make the ROOT dependency optional (e.g. with uproot)
  • add init-workspace script that would copy configs over from installation area & create setup.sh
  • deprecate Python 2.6 & 2.7 → switch to 3.6 as default (required for Parsl)
@kreczko kreczko added this to the version 0.9 milestone Feb 27, 2019
@benkrikler
Copy link
Contributor

you might find it easier to switch to conda-based setup. Then you can keep the ROOT dependency as is using the new conda-forge packaging of ROOT.

@kreczko
Copy link
Member Author

kreczko commented Feb 27, 2019

The problem with conda is the overhead that comes with it. For distributed procesing you have to either

  1. transfer the conda installation with the job
  2. put the installation on shared storage (e.g. software)
  3. or make it part of the job to setup conda

The first solution adds a lot of input data that might break the sandbox size on some sites.
The second solution is different for each cluster (e.g. AFS @ CERN, /software @ Bristol).
The last solution adds CPU inefficiency to the jobs.

We can keep the ROOT dependency, but I would move the responsibility to the user:

  • use CVMFS if requested (default)
  • use conda if requested
  • leave it up to the user if requested

With CVMFS you can even run it on OS X (in a C7 container), I can provide the instructions for that.

What do you think? I want to reduce the maintanance needed on our side while supporting as many clusters as possible.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants