Dive into Gaudi
- Author:
yong
0.1 Plugin Service and Factory
0.2 Value Semantics and Ownership Management
Basically, it’s like shared pointer implementation to manage the underlying resources.
0.2.1 idoms
0.2.1.1 copy-swap and copy-elison
For copy assignment, copy-swap avoids the self-assignment bug and provides better exception safety. copy-elison (i.e. pass-by-value style assignment in this case) further improves the performances in cases where rvalue on the right side.
See:
podio ObjBase implementation
boost shared_ptr implementation
0.2.1.2 reference-counting
See:
0.2.1.3 handle-body (AKA: pointer to implementation)
See the previous section’s link.
0.3 Parallelism
0.3.1 Multi-Process
0.3.2 Multi-Thread
0.3.3 Multi-Job
0.3.4 Multi-Node??
0.4 Finite State Machine (FSM)
0.5 Curiously Recurring Template Pattern (CRTP)
1.1 Concurrency
1.1.1 GaudiHive (MT)
1.1.2 GaudiMP (MP)
1.2 Interface
1.2.1 IService
1.2.2 IProperty
1.2.3 ITool
1.2.4 IStateful
2.1 overview
Gaudi Evolution for Future Chanllege
Task-based, intra-event parallelization: GaudiHive
Reentrant Algorithm
A subset: Gaudi::Functional framework
2.2 Config2
~/src/physics/key4hep/Gaudi/GaudiConfiguration/doc/README.md