- Apr 03, 2020
-
-
Enrico Guiraud authored
...and add a test. The new argument is to make TTreeProcessorMT consistent with other multi-threading interfaces, namely TThreadExecutor. This is the last ingredient required to fix ROOT-10561.
-
- Apr 01, 2020
-
-
Enrico Guiraud authored
...to make it clear that we only use these functions in this same source file.
-
Enrico Guiraud authored
-
Enrico Guiraud authored
Co-Authored-By:
Stephan Hageboeck <stephan.hageboeck@cern.ch>
-
Enrico Guiraud authored
Internal logic has been adapted to support the case in which TTreeProcessorMT is acting on a TChain and the trees in the TChain do not all have the same name. Importantly, the fTreeName data-member changed name to fTreeNames and is now a vector of strings rather than a single string. This fixes ROOT-10178.
-
Enrico Guiraud authored
-
- Mar 27, 2020
-
-
Enrico Guiraud authored
-
Enrico Guiraud authored
This is to fix ROOT-10549.
-
- Mar 24, 2020
-
-
Axel Naumann authored
Before, the TThreadedObject had to guess 64 slots were enough for the use case of TTreeProcessorMT - and with 256 cores that was not the case. Be explicit about the use of IMT for TThreadedObject by providing the new argument. IMT is enabled before the construction of the TThreadedObject (and thus TThreadedObject now knows how many slots to expect), because the pool is constructed before. If the order ever gets changes, the TThreadedObject will complain as it is now told to expect IMT usage. A future TTreeProcessorMT ctor overload might provide a specific thread count, and can pass it down to TThreadedObject.
-
- Mar 01, 2020
-
-
Bertrand Bellenot authored
Move the creation of `TThreadExecutor pool` before the call of `Internal::MakeClusters()`, to make sure it is properly initialized when calling `ROOT::Internal::TPoolManager::GetPoolSize()` (via `ROOT::GetImplicitMTPoolSize()`) This fix a crash with the `gtest-tree-treeplayer-test-treeprocessormt` test on Windows, due to a division by zero at line 224 in `TTreeProcessorMT`
-
- Feb 05, 2020
-
-
Stefan Wunsch authored
* Retrieves correctly the name of the trees building the chain if the chain itself does not has a name. This happens if the default constructor for TChain is used and the name of the tree is retrieved via the string given to `TChain::AddFile("file.root/treeName")`. * This does not fix the issue entirely since the FriendInfo needs a refactoring. The FriendInfo assumes that in a chain each tree has the same name, which could not hold true.
-
- Jul 11, 2019
-
-
Enrico Guiraud authored
Remove the typo that caused "Last cluster in processed TTree is dropped under specific circumstances".
-
- May 10, 2019
-
-
Danilo Piparo authored
-
- May 09, 2019
-
-
Danilo Piparo authored
for example when the TEntryList contains sub lists, matching with the name of the file and tree whenever needed.
-
Danilo Piparo authored
-
Danilo Piparo authored
the issue is that, under certain circumstances to be clarified, the TEntryList::GetEntry method returns -1 even when it should when called for the first time.
-
Danilo Piparo authored
-
Danilo Piparo authored
-
Danilo Piparo authored
-
- Apr 16, 2019
-
-
Danilo Piparo authored
this is achieved adding a special case which checks if the directory containing the tree is a file or a proper directory.
-
- Mar 13, 2019
-
-
Danilo Piparo authored
-
Danilo Piparo authored
-
Danilo Piparo authored
and simplify the implementation of the algorithm which reduces the number of ranges.
-
- Jan 21, 2019
-
-
Danilo Piparo authored
and not one task per cluster. We need to "fuse" together clusters if the number of clusters is to big with respect to the number of workers, otherwise we can incur in an overhead which is so big to make the parallelisation detrimental for performance. For example, this is the case when following a merging of many small files a file contains a tree with many entries and with clusters of just a few entries. The criterium according to which we fuse clusters together is to have at most TTreeProcessorMT::GetMaxTasksPerFilePerWorker() clusters per file per slot. For example: given 2 files and 16 workers, at most 16 * 2 * TTreeProcessorMT::GetMaxTasksPerFilePerWorker() clusters will be created, at most 16 * TTreeProcessorMT::GetMaxTasksPerFilePerWorker() per file.
-
- Dec 05, 2018
-
-
Danilo Piparo authored
-
- Nov 13, 2018
-
-
Danilo Piparo authored
-
- Oct 15, 2018
-
-
Danilo Piparo authored
-
Danilo Piparo authored
in addition, remove the MakeClusters helper function from the header file.
-
Danilo Piparo authored
also for chains initialised as ``` TChain c; c.Add("my/path/to/file.root/tdirectory1/.../tdirectoryN/treename") ```
-
- Oct 09, 2018
-
-
Danilo Piparo authored
-
Danilo Piparo authored
excluding it from the processing.
-
- Sep 19, 2018
-
-
Enrico Guiraud authored
-
- Jun 09, 2018
-
-
Enrico Guiraud authored
This should fix clang's compilation error: "constructor for 'ROOT::TTreeProcessorMT' must explicitly initialize the const member 'fFriendInfo'"
-
- Jun 08, 2018
-
-
Enrico Guiraud authored
-
Enrico Guiraud authored
-
Enrico Guiraud authored
-
Enrico Guiraud authored
-
Enrico Guiraud authored
Previously all the dataset information was stored in the thread-local TTreeViews, causing data duplication between threads and requiring that TTreeProcessorMT queries it when it needs part of it. Now TTreeProcessorMT stores all the dataset information (tree name, filenames, friend names, friend file names, entry list) as constant thread-global data which is passed down to TTreeView::GetTreeReader.
-
- Jun 06, 2018
-
-
Enrico Guiraud authored
-
Enrico Guiraud authored
-