Project

General

Profile

A closer look - TRACEs and configuring

In case multiple demos will be run...

Choose a partition that is appropriate for you. If you don't know, try...

export ARTDAQ_PARTITION_NUMBER=4

Looking at TRACEs

Assuming you have TRACE configured (check tenv; if necessary: export TRACE_MSGMAX=0), you could try:

tonM  5 -Ncompo*_DataSenderManager
tshow | egrep "us_tod|component01.*Done sending" | tdelta -d 1 -ct 1 | head

and you should see something like:
   idx                us_tod     delta   pid   tid cpu                                    name lvl r msg
 96326 04-12 12:18:43.671774         0 11220 16473   9           component01_DataSenderManager d05 . sendFragment: Done sending fragment 595 to dest=4
 96358 04-12 12:18:43.670725      1049 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 594 to dest=4
 96404 04-12 12:18:43.669639      1086 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 593 to dest=4
 96460 04-12 12:18:43.668561      1078 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 592 to dest=4
 96528 04-12 12:18:43.667479      1082 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 591 to dest=4
 96593 04-12 12:18:43.666397      1082 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 590 to dest=4
 96661 04-12 12:18:43.665318      1079 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 589 to dest=4
 96769 04-12 12:18:43.664237      1081 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 588 to dest=4
 96870 04-12 12:18:43.663157      1080 11220 16473  11           component01_DataSenderManager d05 . sendFragment: Done sending fragment 587 to dest=4

OR
tshow | egrep "us_tod|component01.*Done sending" | tdelta -d 1 -ct 1 -stats | tail

    
219858 04-12 12:18:43.052986       320 11220 16473   1           component01_DataSenderManager d05 . sendFragment: Done sending fragment 4 to dest=4
219905 04-12 12:18:43.052697       289 11220 16473   1           component01_DataSenderManager d05 . sendFragment: Done sending fragment 3 to dest=4
219954 04-12 12:18:43.052374       323 11220 16473   1           component01_DataSenderManager d05 . sendFragment: Done sending fragment 2 to dest=4
220023 04-12 12:18:43.051908       466 11220 16473   1           component01_DataSenderManager d05 . sendFragment: Done sending fragment 1 to dest=4
cpu="0" 
                    min       206
                    max     24248
                    tot    619866
                    ave 1043.5454
                    cnt       594

Some Configuration


cd $MRB_TOP/artdaq-utilities-daqinterface/simple_test_config/demo_largesystem

# the data size (fragment size) in bytes will be ADCcounts * 2 + 40 
sed -i 's/nADCcounts:.*/nADCcounts: 31988/'             component*.fcl

# disable simplistic throttle - use usecs_between_sends (next)
sed -i 's/throttle_usecs:.*/throttle_usecs: 0/'         component*.fcl

grep usecs_between_sends component01.fcl \
 && sed -i 's/usecs_between_sends:.*/usecs_between_sends: 1000/' component*.fcl \
 || sed -i '/throttle_usecs/a\
          usecs_between_sends: 1000'                    component*.fcl

# take data/disk writing out of the equation
sed -i 's|fileName:.*root.*|fileName: "/dev/null"|'     DataLogger1.fcl
sed -i 's|^.*fileProperties:|#    fileProperties:|'     DataLogger1.fcl
sed -i 's|^ *a1:|#  a1:|'                               DataLogger1.fcl EventBuilder*.fcl  # checkIntegrity takes a lot of CPU
sed -i 's|compressionLevel:.*|compressionLevel: 0|'     DataLogger1.fcl   # was 3

# watch out to keep this compatible larger than "ADCcounts" (above)
sed -i 's/max_fragment_size_bytes:.*/max_fragment_size_bytes: 0x20000/'  EventBuilder*.fcl  # was 16777216

sed -i 's/buffer_count:.*/buffer_count: 200/'                           EventBuilder*.fcl

# misc.
sed -i 's|^ *my_output_modules:|#  my_output_modules:|' DataLogger1.fcl EventBuilder*.fcl  # art root IO is too slow

grep stale_buffer_timeout_usec EventBuilder1.fcl \
 || sed -i '/buffer_count/a\
        stale_buffer_timeout_usec: 100000'            EventBuilder*.fcl  # default is 5000000

# As far as running on multiple nodes goes... Adjust $MRB_TOP/DAQInterface/{boot.txt,known_boardreaders_list_example}