RNTuple performance improvements advice needed #1109
Replies: 4 comments 15 replies
-
Hello @JacekHoleczek, I happen to try and follow this hence catched your comment
Thank you for the interest. A new release is indeed due since a while and it's been on my to-do list. But then (core) work kicks in ... I will do it today. Note that we are always keen on getting contributions and contributors, across the org, hence you are more than welcome to create PR :-). |
Beta Was this translation helpful? Give feedback.
-
Just for caution: the RNTuple format was recently updated and Uproot was updated to account for it (#962, #1004). Since the format is in active development, we're not making any attempt to be backward compatible for old RNTuple formats—not until RNTuple declares "1.0", anyway. Be sure to align your ROOT version with Uproot version. Cc: @ariostas |
Beta Was this translation helpful? Give feedback.
-
O.K. I "regenerated" my RNTuple test file with ROOT 6.30/02. Now, Uproot 5.2.2 is able to get: Well, If I try to add " I have some problems when using it ( Why does the " This works, though (so I could use it in my "proof of concept" script): But I still cannot get individual arrays ( Any replacement? Actually, it seems I have a much more serious problem:
I suspect the problem is that the |
Beta Was this translation helpful? Give feedback.
-
Well, if you want to play with these problems ... I created a tiny RNTuple with just 2 events. |
Beta Was this translation helpful? Give feedback.
-
I am trying to write a small python macro that should "demonstrate" that uproot is (almost) as fast as C++.
For test purposes, I have got a
ROOT::Experimental::RNTuple
created by ROOT 6.28/10 (its structure "mimics" theTTree
from my other#1106
thread).It seems I can't get it running.
(Well, until now, I have never played with any RNTuple.)
First, I created a conda-forge "scikit-hep" environment. It comes with Python 3.11.7 and an old Uproot 5.0.13 (can one ask someone to upgrade Uproot to the latest version in "Scikit-HEP"?).
Then, I created a conda-forge "uproot" environment. It comes with Python 3.12.1 and the newest Uproot 5.2.2 (but the "hist" cannot be added).
In both environments, I can:
t = uproot.open({'data/my_ntuple.root': 'hk'})
The "
TQReal
" is just a simple class with several members that keep C++ fundamental data types.In both environments, when I try:
t['TQReal']
I get:
TypeError: 'Model_ROOT_3a3a_Experimental_3a3a_RNTuple' object is not subscriptable
Then, when I try:
tq_real = t.arrays(['TQReal.nhits', 'TQReal.pc2pe', 'TQReal.t0'])
Uproot 5.0.13 is able to retrieve them, but Uproot 5.2.2 terribly breaks.
Also, if I add "
library='np'
" in the above line, both Uproot versions break.What now?
BTW. You might be interested in this recent
ROOT Forum
thread:RNTuple: Where are we now and what’s next?
Beta Was this translation helpful? Give feedback.
All reactions