TAcq is a C++ software package developed in the BAORadio project, to support the electronic developments for 21cm Intensity mapping. The development started in 2007 and the package used the SOPHYA class library. The TAcq package defines a simple, yet flexible and powerful multithreaded/multi-node architecture. Each process is composed of a number of processing tasks, implemented as threads which cooperate through a central memory manager hub, implemented as the RAcqMemZoneMgr class.
Waveform of frequency component data is managed within each process and exchanged between processes as a set of light weight packets, implemented as the BRPaquet class.
A number of classes inheriting from BRBaseProcessor have been implemented to handle different operations, such as:
- PCIEMultiReader : PCI-Express (DMA) to memory data transfer
- PICIEToEthernet : PCI_Express DMA to ethernet
- MemToEthernet : send data (packets) from memory over ethernet
- EthernetReader : data read (packets) from ethernet to memory
- BRMultiFitsReader : read data (packets) from FITS files
- BRFitsCubeWriter : data write (packets) to FITS files
- BRFFTCalculator : perform FFT on waveform data
- BRVisibilityCalculator : a complex class, multi-core inside to compute visibilities (correlator)
- MonitorProc(s) : data monitoring
Notice that the BRVisibilityCalculator class is a complex object, implementing two level of parallelism. A GPU enabled version is under development.
The software package has been used trough the development of the BAORadio electronic modules, and observations accrued with it at the Nançay radio telescope and the PCT (Pittsburgh Cylindrical Telescope). It is being used for the PAON4 interferometer, as well as the IDROGEN board development.
Some documentation is also available TAcq class documentation.
Description of the main acquisition process, corresponding to the file mfacq.cc in given in mfacq