In particle physics, things are very easy. We use a system of units where the speed of light and the Planck constant are both equal to 1. In this case, anything can be expressed in terms of a power of an energy unit, that is usually some multiple of the electronvolt. At the LHC, the standards are thus GeV or TeV.
Concerning the dask part, I am not sure to follow. How the project should be scaled? The goal is well defined and I don't see what to add next (OK, this is not true, I have a couple of ideas but this still makes the project small). Do you mind elaborating a little bit? Thanks in advance!
I see, so most of the units are derived from Joule (if using SI) or electronvolt (if using UCUM). About Dask, it's an escape hatch in case the performance is slow or not satisfying. When the developer writes an algorithm using numpy/scipy/pandas, most of the time the computation are single threaded (using 1 core CPU) because of the nature of Python interpreter. Another thing is pandas will load the data into memory so we need to be careful when loading a huge amount of data (because it will exhaust the RAM).
For easier and faster development, writing it as the usual using numpy, scipy, etc could be an ideal solution for a community project. However, if the performance becomes a problem later on, Dask can be a solution by plugging the modules that have been written before into it (using Dask.delayed in my case). Just make sure most of the programs/libs (that not using Dask) are small enough that later on can be reused in other projects. This way it will be easier to break it down into multiple tasks and Dask will take care of the parallelization (multi core computation) and the scheduling (it can even make the computation distributed into multiple machines).
Joules are in fact not appropriate for particle physics as one will need too many decimals for anything :)
This project requires to develop a tools that is fast and efficient, so that parallelization will be in order (for the heavy part of the calculations to be done). But good to know that options like Dask exist. Of course, this will not be that relevant at the beginning, but definitely later.
Thanks for the inputs!
Hey @drsensor
Here's a tip for your valuable feedback! @Utopian-io loves and incentivises informative comments.
Contributing on Utopian
Learn how to contribute on our website.
Want to chat? Join us on Discord https://discord.gg/h52nFrV.
Vote for Utopian Witness!