HFBAccumulate¶
-
class HFBAccumulate : public kotekan::Stage¶
Post-processing engine for output of the CHIME/HFB kernel, integrates data over 80 frames to create 10s worth of data. num_beams * num_sub_freq = 1024 * 128.
This engine sums CHIME/HFB data from 1 GPU stream in each CHIME node, which are stored in the output buffer. Note: _num_frames_to_integrate cannot go below 16 frames as _num_frames_to_integrate cannot be lower than the max_frames_missing
This stage will also calculate the within sample variance for weights.
The output of this stage is written to a raw file where each chunk is the metadata followed by the frame and indexed by frequency ID. This raw file is then transposed and compressed into a structured HDF5 format by gossec.
- Buffers
hfb_input_bufferKotekan buffer feeding data from any GPU.Format: Array of
floats
cls_bufferKotekan buffer that contains the compressed lost samples.Format: Array of
uint32_t
hfb_out_bufKotekan buffer that will be populated with integrated data.Format: Array of
floats
- Author
James Willis
- Param num_frames_to_integrate:
Int. No. of frames to integrate over.
- Param num_frb_total_beams:
Int. No. of total FRB beams (should be 1024).
- Param factor_upchan:
Int. Upchannelise factor (should be 128).
- Param samples_per_data_set:
Int. The number of samples each GPU buffer has been integrated for.
- Param good_samples_threshold:
Float. Required fraction of good samples in integration before it is recorded.
Public Functions
-
HFBAccumulate(kotekan::Config &config_, const std::string &unique_name, kotekan::bufferContainer &buffer_container)¶
Constructor.
-
virtual ~HFBAccumulate()¶
Destructor.
-
virtual void main_thread() override¶
Primary loop to wait for buffers, dig through data, stuff packets lather, rinse and repeat.