Release Notes 30100 - art-daq/artdaq GitHub Wiki

artdaq Release Notes v3_01_00 (16-Apr-2018)

Introduction

This version of artdaq can be built against art v2_10_02 (s64), v2_07_03 (s50) or v2_06_01 (s46). It can be built with gcc v4_9_3a (e10), gcc v6_3_0 (e14), and gcc v6_4_0 (e15). Supported combinations are s46-e10, s50-e14, and s64-e15.

The default set of qualifiers for this version of artdaq is e14:s50.

The MPI dependency for this version of artdaq has been moved to the artdaq_mpich_plugin product.

Reference

artdaq version:“v3_01_00”

New features:

  • Feature #15544: Move all MPI dependencies to a new package
  • Feature #19440: Provide log messages when processes begin and end various state transitions
  • Feature #19475: Messages from CommandableFragmentGenerator should be associated with the fragment generator in question
  • Feature #19722: Allow rank to be specified at configure
  • Feature #19727: Create “artdaq” executable and standardized executable code
  • Feature #19728: Improvements to RandomDelayFilter
  • Feature #19729: Report Module name and Iteration number
  • Feature #19730: host_map is now parsed by DataReceiverManager and DataSenderManager
  • Feature #19731: DataSenderManager returns both destination and status
  • Feature #19733: Improved logging of art exit status
  • Feature #19734: art shutdown improvments
  • Feature #19735: Track events and incomplete events at run and subrun levels
  • Feature #19736: Shmem_transfer partition awareness
  • Feature #19737: DATA_END return value from TransferInterface receivers
  • Feature #19738: TCPSocketTransfer Partition Awareness and listen port clean-up
  • Feature #19739: TransferInterface consistent header for TRACE messages and partition awareness

Bug fixes and Improvements:

  • Bug #17562: Timeouts occur on stop transition when running artdaq in window request mode
  • Support #19517: artdaqDriver splits output data into two files; not sure why
  • Bug #19725: CommandableFragmentGenerator and RequestReceiver do not properly reset state at stop/start
  • Bug #19716: Acquiring buffer in SharedMemoryFragmentManager and Shmem_transfer was not an atomic operation

Operational changes:

  • TRACE usage updated to use TLOG (N) and TRACE_NAME
  • Range-for replaced with iterators in loops where collection may be modified
  • Added SharedMemoryEventManager.fcl detailing all SMEM options
  • Added artdaq.fcl detailing all artdaq startup options
  • TransferTest was improved to handle multiple sending threads (testing multiple senders with same rank -> multiple art processes)

Known Issues

We need to put the following in our top-level (experiment-artdaq) CMakeLists.txt:

string(REGEX MATCHALL "[0-9][0-9]?[0-9]?" MESSAGEFACILITY_VERSION_LIST "$ENV{MESSAGEFACILITY_VERSION}")
list(GET MESSAGEFACILITY_VERSION_LIST 0 MESSAGEFACILITY_MAJOR_VERSION)
list(GET MESSAGEFACILITY_VERSION_LIST 1 MESSAGEFACILITY_MINOR_VERSION)
list(GET MESSAGEFACILITY_VERSION_LIST 2 MESSAGEFACILITY_PATCH_VERSION)

message("-DMESSAGEFACILITY_HEX_VERSION=0x${MESSAGEFACILITY_MAJOR_VERSION}${MESSAGEFACILITY_MINOR_VERSION}${MESSAGEFACILITY_PATCH_VERSION}")
add_definitions(-DMESSAGEFACILITY_HEX_VERSION=0x${MESSAGEFACILITY_MAJOR_VERSION}${MESSAGEFACILITY_MINOR_VERSION}${MESSAGEFACILITY_PATCH_VERSION})

The issue that this fixes: build errors that complain about not finding MessageFacility functions when including tracemf.h.

Dependent Package Notes

  • artdaq_core v3_02_00
  • artdaq_utilities v1_04_05
  • art v2_10_02 (s64), v2_07_03 (s50), v2_06_01 (s46)
⚠️ **GitHub.com Fallback** ⚠️