Skip to content
Snippets Groups Projects

PSRDADA_CPP

PSRDADA_CPP contains C++ wrappers for a subset for PSRDADA functionality (HDUs, read/write clients, etc.) and implements various CLI application (from and to disk r/w, buffer synchronisation, buffer splitting etc.). PSRDADA_CPP also provides an interface for (high-performance) processing pipelines and DADA buffers. A few examples exists in the submodules (e.g. gated_spectrometer).

Requirements

  • psrdada
  • boost 1.67 or later
  • CMake 3.12 or later
  • CUDA (optional, required to compile .cu and .cuh source)

Installation

Clone the repository and enter the root folder

git clone https://gitlab.mpcdf.mpg.de/mpifr-bdg/psrdada_cpp && cd psrdada_cpp

Prepare and build the entire project

cmake -S . -B <path-to-build> -DENABLE_CUDA=TRUE -DPSRDADA_INCLUDE_DIR=<path-to-psrdada-headers> && make -C <path-to-build>/

Custom CMake flags

All flags are passed to cmake with the CMake prefix -D<flagname>

Flagname Description Values Command
ENABLE_CUDA Allows compilation with nvcc which is require to compile .cuh and .cu ON (default), OFF -
BUILD_SUBMODULES Build submodules (excluding dadaflow). ON (default), OFF -
BUILD_DADAFLOW Builds the dadaflow submodule. OFF (default), ON -
ENABLE_TESTING Enables testing relying on googletest. If googletest is not found by cmake it gets pulled from remote. ON (default), OFF make -C <path-to-build> test
ENABLE_BENCHMARK Enables benchmarks relying on googlebenchmark. If googlebenchmark is not found by cmake it gets pulled from remote. Only has effect when BUILD_SUBMODULES is ON. OFF (default), ON make -C <path-to-build> run_benchmark
FORCE_DOWNLOAD Fetches the content of googlebenchmark and googletest from remote. Useful when an existing installation causes problems. OFF (default), ON -

Documentation

The documentation of psrdadad-cpp can be found at: http://mpifr-bdg.pages.mpcdf.de/psrdada_cpp/