Project

General

Profile

Support #23599

Extra memcpy in NetMonWrapper and TransferWrapper

Added by Eric Flumerfelt 2 months ago. Updated 17 days ago.

Status:
Resolved
Priority:
Normal
Category:
-
Target version:
-
Start date:
11/13/2019
Due date:
% Done:

0%

Estimated time:
Experiment:
-
Co-Assignees:
Duration:

Description

While reviewing code and thinking about solutions for #22154, I discovered that we are performing an extra copy of all data going into DataLoggers, Dispatchers, and online monitors. Data is copied from the shared memory into Fragments, and then again into a buffer to be used with TBufferFile. With some minor API changes in ArtdaqInput, it is possible to set up the TBufferFile from the Fragment directly, eliminating a malloc and memcpy.

History

#1 Updated by Eric Flumerfelt 2 months ago

  • Status changed from New to Resolved

Implementation on artdaq:feature/23599_ArtdaqInput_EliminateExtraMemcpy

#2 Updated by Kurt Biery 17 days ago

I did the simple validation tests of running an artdaq-demo system on mu2edaq13 with the request_based_dataflow_example sample config with the existing and new code.

With the existing code on the artdaq develop branch and the new code on the feature/23599_ArtdaqInput_EliminateExtraMemcpy branch, the data files from 90-seconds runs are similar in size, and the displays and printouts from the online monitoring look similar.



Also available in: Atom PDF