babic_a 2bf658d30c Set the file size in advance on GPFS
When started to use the buffer on GPFS we notices an increase
of metadata access times on GPFS. To try to reduce the number
of metadata updates we set the file size at creation time.
2020-07-17 12:09:46 +02:00
2020-06-09 10:10:19 +02:00
2020-07-17 11:20:50 +02:00
2020-05-11 10:47:11 +02:00
2020-07-17 11:37:29 +02:00
2020-03-24 11:36:29 +01:00
2020-06-30 16:36:18 +02:00

sf_daq_buffer

Overview of current architecture and component interaction.

Overview image

Architecture

Software

Linux configuration

Build

To compile this repo you will need to install the following packages on RH7:

  • devtoolset-9
  • cmake3
  • zeromq-devel
  • hdf5-devel
yum install devtoolset-9
yum install cmake3
yum install zeromq-devel
yum install hdf5-devel

Step by step procedure to build the repo:

scl enable devtoolset-9 bash
git clone https://github.com/paulscherrerinstitute/sf_daq_buffer.git
cd sf_daq_buffer
mkdir build
cd build/
cmake3 ..
make

It is recommended to create symbolic links to the executables you will be using inside your PATH.

Example:

ln -s "$(pwd)""/""sf_buffer" /usr/bin/sf_buffer
ln -s "$(pwd)""/""sf_stream" /usr/bin/sf_stream
ln -s "$(pwd)""/""sf_writer" /usr/bin/sf_writer

Warnings

Zeromq

Zeromq version 4.1.4 (default on RH7) has a LINGER bug. Sometimes, the last message is not sent (the connection gets dropped before the message is in the buffer). Since we use PUSH/PULL to modulate the sf_replay speed, this is a key functionality we are using.

Please install a later version:

cd /etc/yum.repos.d/
wget https://download.opensuse.org/repositories/network:messaging:zeromq:release-stable/RHEL_7/network:messaging:zeromq:release-stable.repo
yum remove zeromq
yum remove openpgm
yum install libsodium-devel
yum install zeromq-devel

Terminology

In order to unify the way we write code and talk about concept the following terminology definitions should be followed:

  • frame (data from a single module)
  • image (data of the assembled image)
  • start_pulse_id and stop_pulse_id (not end_pulse_id) is used to determine the inclusive range (both start and stop pulse_id are included) of pulses.
S
Description
No description provided
Readme 3.2 MiB
Languages
C++ 91.1%
Python 4.9%
CMake 3.2%
Dockerfile 0.4%
Shell 0.4%