Comments (3)
Goal : provide a GRAND env ready to use
List of use case:
U1. env for developper
U2. env for github CI
U3. env + release GRAND lib distribution
U4. env for intensive processing on computing center
List of contraints:
C1. Compilation of specific C library like: gull and turtle to use it in python
C2. External library ROOT from the CERN for IO
C3. GRAND user uses linux and MacOS (may be windows ?)
C4. easy to use with EDI (like eclipse, pycharm, VScode)
Technology available for distributing code:
T1. pip install and virtual env
T2. conda install
T3. docker or singularity
T4. virtual machine
(T5). hybride, some installations are left to the user
from grand.
Techno versus contraints
Techno | C1 (C to python) | C2 (ROOT) | C3 (OS) | C4 (EDI) | Conclusion |
---|---|---|---|---|---|
T1 : pip | Need wheel techno, may be tricky to obtain right result on different linux distrib and MacOS | pip install ROOT doesn't exits ! | in relation with C1 | Yes very easy for user | I think ROOT use exclude this method |
T2 : conda | Need conda build techno, may be tricky to obtain right result on different linux distrib and MacOS | conda install available for ROOT | in relation with C1 | Yes very easy for user | needs to be explored further |
T3 : docker | easy with ubuntu distrib | docker images of root are regulary plublished in dockerhub | docker run on MacOS, may be slowly (windows possibly ok with VM) | tricky configuration with IDE (or not possible IDE inside docker ? ) to use env docker to develop | Very good solution but users need to know some docker commands |
T4 : VM | easy with common linux distrib | root can installed on centOS from yum package | Virtual is availble for MacOS and Windows | can provide a complete env developpment | Heavy solution but robust |
T5: ? | ? | ? | ? | need to solve each special case ... |
Techno versus use case
Techno | dev | github CI | release | production | Conclusion |
---|---|---|---|---|---|
T1 : pip | will be great for gull, turtle, root | possible but re-installation for each push it's not optimal and long | will be great | will be great in virtual anv | but ... I think ROOT use exclude this method |
T2 : conda | most of IDE use now conda as env definition | possible but re-installation for each push it's not optimal and long | will be great but possible ? | will be great but possible ? | will be great but possible ? Needs to be explored further. Not a good solution for github |
T3 : docker | tricky configuration with IDE (or not possible IDE inside docker ? ) to use env docker to develop, VScode can do this | best solution | good solution but user must know some docker commands | good solution, docker can be convert en singularity image used by HPC/HTC center | Very good solution but users need to know some docker commands and some problem must solve for developpers |
T4 : VM | best solution all dev env can be configured and ready to use | not possible | heavy for user | not possible | can't be the unique solution |
T5: ? | possible | not possible | possible | possible | need to solve each special case ... |
from grand.
Conclusion
Docker seems be the best solution and easy to set up without much study, it is essential for github CI and it's very convenient for production in data center as a singularity image. It is the developer who is the most penalize because the integration of this development tools is not a priori simple and this is an important point.
Without good development solution with docker, for developper Virtual Machine is the best solution, your opinion ?
Need to investigate dev technique with docker, see #30
from grand.
Related Issues (20)
- Memory leaks in root_trees.py HOT 1
- trace extension and undersampling to get to ADC traces in efeld2voltage HOT 2
- sim2root is not separating the trees in files, and has no option for filenames. HOT 3
- Reading TTrees for DC2 HOT 1
- usign tefield2.copy_contents(tefield) segfaults HOT 1
- Bug when filling `trace_ch` field in TADC tree
- voltage trees take much more space than efield trees. Do we understand why?
- Test Results from DC2 Prep HOT 1
- Add t_pre and t_post to trun? HOT 3
- --savefig flag in IllustrateSimPipe.py not working HOT 1
- Problem with time bins in all levels of the groot files HOT 2
- Change antenna coordinates to site referential in ZHAireS2Rawroot, and remove the core shift in sim2root HOT 1
- convert_efield2voltage.py Error in <TTreeCache::FillBuffer>
- sim2root segfaults sometimes at the end of its execution HOT 1
- sim2root (and the general pipeline ) cant handle rawroot files with no antennas HOT 2
- compute_efield2voltage segfaults randomly when running over 1000 events HOT 1
- EventList class needs a get_event_list method
- EventList.get_event() stacktrace when the event_numnber is wrong
- DC2 IllustrateSimPipe.py output
- Error when call el.get_event() HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from grand.