7 SETI Program at the Medicina INAF Radioastronomy …
57
From the chart in Fig. 7.3 we can see that the solution of performing the FFT on a
single block data buffer posed a limit to the maximum signal bandwidth. However, it
has guaranteed us to write more straightforward and faster software because we don’t
need to split the input bandwidth into sub-bands to analyze separately. Spectrometer
state-of-art bandwidth split is carried out by mean of a Polyphase Filter Bank (PFB)
because not produces a flat response across the channel, but also provides excellent
suppression of out-of-band signals [32]. PFB is a typical computation-intensive DSP
algorithm on all processors architectures, but that is high optimizable on FPGA. Not
being able to have an accelerator with FPGA on our spectrometers because of the
limited budget, the single block FFT analysis solution remained the most efficient
available.
In general, considering that the processing carried out by digital spectrometers is
organized in a pipeline in which, each block of acquired data, is subjected to different
computations, the overall spectrometer performances are limited by the capabilities
of the less performing module of the data processing chain. So, assembling a PC based
spectrometer requires choosing COTS components between the ones available on the
market to find a balanced set, without bottlenecks caused by the less performing part.
Moreover, in the COTS components research and selection, particular attention
must be paid not only to compliance with the budget but also to assess the degree
of standardization of the component. A careful assessment must be also be made
on the possibility of recovering spare parts after years and on the availability in the
future of more performing components, which, however, could be compatible with
the current system.
For example, we chose to use Nvidia GPUs as computation accelerators, taking
into consideration reliability, availability on the market over time, the functionality
of the SDK, and its support as well. This choice has proved to be optimal over time
for many aspects. The Nvidia GPU architecture improved about every two years
(remaining anyway compatible with old PC motherboards). The SDK efficiently
supports the GPUs produced in the last eight years without the need for substantial
code rewrites but at least with only minimum fixes. Such stability was not present in
other manufacturers’ products, which in one case (Intel) withdrew the product from
the market and has now replaced it with an FPGA-based accelerator.
7.2.4 Spectrometer’s Software Design
In designing the spectrometer’s software, we followed the same guidelines as in the
hardware design, taking into consideration costs and performances. To limit costs,
we decided to use open-source and free software together with ad-hoc developed
application software. The overall spectrometer software is then composed of three
main parts: the supporting OS, the processing application, and the control application.
Considering the NewSpec experience, the choice of the supporting OS was made
taking into account:
57
From the chart in Fig. 7.3 we can see that the solution of performing the FFT on a
single block data buffer posed a limit to the maximum signal bandwidth. However, it
has guaranteed us to write more straightforward and faster software because we don’t
need to split the input bandwidth into sub-bands to analyze separately. Spectrometer
state-of-art bandwidth split is carried out by mean of a Polyphase Filter Bank (PFB)
because not produces a flat response across the channel, but also provides excellent
suppression of out-of-band signals [32]. PFB is a typical computation-intensive DSP
algorithm on all processors architectures, but that is high optimizable on FPGA. Not
being able to have an accelerator with FPGA on our spectrometers because of the
limited budget, the single block FFT analysis solution remained the most efficient
available.
In general, considering that the processing carried out by digital spectrometers is
organized in a pipeline in which, each block of acquired data, is subjected to different
computations, the overall spectrometer performances are limited by the capabilities
of the less performing module of the data processing chain. So, assembling a PC based
spectrometer requires choosing COTS components between the ones available on the
market to find a balanced set, without bottlenecks caused by the less performing part.
Moreover, in the COTS components research and selection, particular attention
must be paid not only to compliance with the budget but also to assess the degree
of standardization of the component. A careful assessment must be also be made
on the possibility of recovering spare parts after years and on the availability in the
future of more performing components, which, however, could be compatible with
the current system.
For example, we chose to use Nvidia GPUs as computation accelerators, taking
into consideration reliability, availability on the market over time, the functionality
of the SDK, and its support as well. This choice has proved to be optimal over time
for many aspects. The Nvidia GPU architecture improved about every two years
(remaining anyway compatible with old PC motherboards). The SDK efficiently
supports the GPUs produced in the last eight years without the need for substantial
code rewrites but at least with only minimum fixes. Such stability was not present in
other manufacturers’ products, which in one case (Intel) withdrew the product from
the market and has now replaced it with an FPGA-based accelerator.
7.2.4 Spectrometer’s Software Design
In designing the spectrometer’s software, we followed the same guidelines as in the
hardware design, taking into consideration costs and performances. To limit costs,
we decided to use open-source and free software together with ad-hoc developed
application software. The overall spectrometer software is then composed of three
main parts: the supporting OS, the processing application, and the control application.
Considering the NewSpec experience, the choice of the supporting OS was made
taking into account:
