Skip to content
Tags give the ability to mark specific points in history as being important
  • v23r9
    dd3b5243 · fixes to the versions ·
  • RootCnv/v1r20
  • v0.5
    Release Notes:
    
    Please refer to this link for the full information about previous releases:
    https://twiki.cern.ch/twiki/bin/view/C4Hep/C4HepReleases
    
    o Merge of changes in Gaudiv23r8
    o More documentation
    o Coding rules respected
    o Improved output in case of misbehaviours (e.g. stalls)
    o Correct handling of failed events
    o Gcc47 compilation possible
    o AlgContextSvc treated with the help of thread local storage
    o Fix for configurables bug: https://sft.its.cern.ch/jira/browse/CFHEP-78
    o Deprecate declaration of dependencies as list of lists for the scheduler
    o Number of events in flight taken directly from the whiteboard
    o Remove hardcoded "/Event/" prefix from the dataflow manager. Get it from
    IDataManagerSvc interface
  • v0.5-ref1305-patch1
    v0.5-ref1305-patch1
    
    o Added link to librt to GaudiCoreSvc to print out timings in the EventLoopManager
    o Make the size of the thread pool a signed int in order to be able to let the runtime decide the maximum number of threads
  • v0.5-ref1305
    Tag Notes
    
    o Fixes:
      - Remove double call of BeginRun for some algorithms in the AlgresourcePool
      - Remove some deprecated headers
      - Automatically adjust tbb thread pool size in order to create exactly as many threads as requested and not one less
    
    o Features:
      - Display RSS and seconds in loop in the HiveSlimEventLoopManager
      - Define GOD_NOALLOC variable in CMake configuration to avoid the overriding of new and delete operators for the event data model. Indeed, this behaviour brought to the usage to the boost pool allocators. They are extremely fast and appropriate for a serial execution but suboptimal for the mt one when spanning over a Numa architecture. The pool can be localised on a DRAM and the algorithm accessing it on a socket "nearer" to a different bank. A performance penalty in terms of scaling could be measured.
      - Add to the cpu crunchers a parameter to repeat the read and write onto the whiteboard. This allows to emulate high lock contention increasing the probability of collision.
      - Minimal improvement of the ToolSvc that allows to have "clones" of the same tool provided that the parent is not the ToolSvc
    
    o Optimisations:
      - Add a boolean flag not to schedule multiple updates of the alg state machine, therefore reducing the calls to the function by a factor 2/3
  • GAUDI/GAUDI_v23r8
  • GaudiCoreSvc/v1r4
  • v23r8
  • Gaudi/v23r8
  • GaudiAlg/v14r5
  • GaudiCommonSvc/v1r5
  • GaudiExamples/v23r8
  • GaudiKernel/v28r7
  • GaudiMonitor/v3r3
  • GaudiPolicy/v12r6
  • GaudiPython/v12r6
  • GaudiRelease/v23r8
  • GaudiSys/v23r8
  • GaudiUtils/v4r5
  • v0.5-ref1304
    Tag notes
    
    o Fixes:
     - DataFlowManager: remove segfault due to improper use of bitsets
     - Cmake: Treat Root as all other externals
     - HiveEventLoopMgr: (legacy component): check for WB existence and not DataSvc only
     - AIDA: properly found also with the new externals infrastructure
     - HiveReadAlgorithm: Can be used also with old Gaudi infrastructure
    
    o ForwardScheduler: Improved output info in case of stall.
    
    o HiveWhiteBoard: use recursive mutex instead of a spin mutex in order to
    support MiniBrunel.
    
    o HiveSlimEventLoopMgr: run the 1st event alone even if multiple events in
    flight are selected (eases measurements since some loading happens in
    minibrunel at the first event). Add per event RSS and timing measurements.
    
    o IDataSvc: allow to pass a particular IDataProviderSvc in order to properly
    use the slots in the whiteboard.
    
    o MDF input: It is now possible to read multiple events simultaneously starting
    from MDF files. RawDataAddresses now do not share the same buffer for banks.
    The fix (code mainly from M. Frank) consists in the following steps:
      1) StreamBuffer class: add an adopt 'method' which corresponds to the 'data'
      one but passing the ownership of the banks to the client
      2) RawDataAddress class: add an adoptData method which corresponds to the
      setData one. If data is adopted, the destructor of the class will trigger the
      deletion of the data
      3) RawDataSelector class: add a flag to decide if the data is to be adopted
      by the address or not. It should be an option in the future.
      4) MDFSelector class: wire into the method getDataSpace the buffer adoption.
      As for 3, this should be dynamically chosable.
    As for the ROOT I/O, the createAddress and next methods of the selector must be
    called serially and in this order! In any case, this is ensured by the
    structure of the HiveSlimEventLoopManager.
    
    o DetDataSvc: Replace the DataSvc with a version with thread safe retrieve
    methods:'TsDataSvc'. The DetDataSvc inherits from this TS version of DataSvc.
    The RegistryEntry had to be made friend of this new svc. Recusrive lock is used
    given the "richness" of the IDataManager interface. Reentrant methods should be
    identified and recursive lock eliminated in favour of a rapid spin lock
    (or no lock at all?)
    
    o TimerForSequencer: Eliminate doubles to accumulate statistics in favour of
    uint64_t-s. Add sigma of the timing measurements
    
    o CPUCruncher scenario for MiniBrunel
    
    o First iteration of coding conventions