Developing #211

Исследование работы с Root файлами

Added by Vitaliy Schetinin over 6 years ago.

Status:ОткрытаStart date:07/11/2018
Priority:НизкийDue date:
Assignee:Mikhail Kozlov% Done:

0%

Category:-
Target version:DevPlan

Description

На данный момент наиболее нагруженной частью процедур реконструкции является I/O. Я замечал, что когда переходишь между машинами с HDD и SSD на одних и тех же задачах получаешь ускорение просто на порядки.

Есть подозрение, что чтение из файла в память происходит по-событийно. Для нас это очень плохо - у нас много маленьких событий.

Root - бинарный формат, поэтому нет никаих проблем с тем, чтобы проецировать большие куски бинарного файла в память: https://eax.me/linux-file-mapping/, https://habr.com/post/55716/. И потом уже их читать не нагружая IO диска. Тоже самое с записью.

В связи с этим предлагается разобраться как работает чтение/запись и root файлов: https://root.cern.ch/root/html534/guides/users-guide/InputOutput.html

Есть ли готовые механизмы работы с большими рут файлами (а они скорее всего есть, просто не прокинуты в FairRoot):

https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=5&ved=0ahUKEwiIgdCHupbcAhWFKCwKHQuMDEUQFghRMAQ&url=http%3A%2F%2Fcd-docdb.fnal.gov%2F0038%2F003866%2F001%2FChep2010-ROOT-IO-final.pdf&usg=AOvVaw25AW472u8q2rJ2tO9I_25O

https://root.cern.ch/root/html520/TTreeCache.html

https://root-forum.cern.ch/t/ttree-and-default-cache-size/9411

https://root.cern.ch/doc/v608/classTMemFile.html

https://root.cern.ch/doc/master/classTMapFile.html

https://root.cern.ch/doc/master/classTTreeCloner.html

Предлагается сделать такое исследование, рассказать коллегам про ROOT IO и какие фишки можно использовать, но не используются по умолчанию в FairRoot IO)

Тестирование всего можно делать просто в отдельном макросе, который читает большой рут файл с небольшими entry и считает к примеру сумму какого нибудь атрибута.

 

Also available in: Atom PDF