[TangerineSDR] Functional Specification v 0.3

Engelke, Bill bill.engelke at ua.edu
Tue May 28 12:18:28 EDT 2019


Tom – first let me say that I agree that there is a real risk that a cheap SBC will not be able to process the amount of data being envisioned no matter how we code it or write it.  That being said, let’s do some benchmarking where we reduce the number of variables.

My understanding is the GNURadio has Python under the covers. (Is that true?) – if so, Python, being an interpreted language, may itself place limits on processing speed. Is it possible that this plays a role in the speeds you have been seeing?   I’m going to try and do some benchmarking working directly in C, to remove the variables of Python and GNURadio.  Maybe I can compare the throughput of various strategies such as writing raw data vs HDF5, and also with and without conversion to floating point; hopefully this will provide some guidance.

There is still the remaining issue:  even if we code and save the data in the fastest possible way, at some point we very well may hit a limit of what we can do with a cheap SBC , on how many slices we can collect at once. The question is, at what point does it significantly affect the science?  From 8 slices X 2 antennas, down to what? 5 slices X 2 antennas?  Slower sample rates?  I guess we’re going to have to work thru it, but at least it is working in our favor that computers constantly get faster, so the limitations we have today may go away by 2024….

-73- Bill



From: Tom McDermott <tom.n5eg at gmail.com>
Sent: Tuesday, May 28, 2019 10:51 AM
To: John Ackermann. N8UR <jra at febo.com>
Cc: Nathaniel Frissell via TangerineSDR <tangerinesdr at lists.tapr.org>; Engelke, Bill <bill.engelke at ua.edu>
Subject: Re: [TangerineSDR] Functional Specification v 0.3

Hi Bill,

[ MB = Megabyte,  Mb = Megabit ]

The Core I7 system I tested on has a HD throughput of 40 MBytes/sec (numerous different tests and benchmarks).
It's a SATA-3 drive, I suspect the motherboard may be a significant part of the limit, good SATA-3 HD implementations
should achieve 100 MB/sec.  However 40MB/s is still way above rate that HDF5 was writing:  4 x 192ksps --> 6.4 MB/sec plus
some overhead. As John mentions, an SSD would reduce seek-time issues.  If there is extensive seek-time then the
buffers build, although I did not notice any upstream buffer overflows.

I was using Gnuradio HDF5 driver to write the format, I think John was using the same.  I could write 4 x 384k to disk
in raw format without any problems (no HDF5 coding). The HDF5 coder was the only difference between the two tests.
The Gnuradio HDF5 block takes floating-point input only.

So I am skeptical that a low-cost SBC is going to achieve HDF5 coding of the raw data in real time.  But we don't need
to code all the raw data, only the data we send to the central server.

Here are some floating point vs. fixed point trade-offs I see:

Any signal processing done on the Host will want to be done in floating point format.  Floating Point DSP is much much easier to
implement than fixed point processing.  With Fixed, you have to watch for underflow and overflow at most steps as
either can destroy the signal.  Underflow or Overflow means you need to rescale (the entire sample set: long ago, to far future).
Converting from Float to Fixed has the same challenge, you likely need to rescale.  Fixed point was common when Floating Point Logic
was too expensive (low cost, low power modem chips, CPUs before they universally had Floating Point processors, etc.).

The drawback to floating point is that the data enlarges from 6 bytes (3-I and 3-Q) in offset binary to 8 bytes (4-I and 4-Q) in
single precision floating point,  increasing storage size and lengthening transfer time.

Raw data without significant processing on the DE could be stored & transferred in Fixed format. If the DE does much processing
then Fixed becomes an issue. Gnuradio uses floating point for the math blocks (filtering, FFT, AGC, etc.), the Gnuradio soundcard
sink, the scope and spectrum displays, etc.

In my opinion, the central server is invariably going to want the data in Floating Point format for subsequent processing. So two options
are:

1. Convert to Float on the Host, code to HDF5, then send.
2. Minimize Host DSP, HDF5 code unprocessed fixed samples and transfer to the Central server, then the central server has to
unpack HDF5 and transcode to float.

-- Tom, N5EG


-- Tom, N5EG





On Tue, May 28, 2019 at 8:02 AM John Ackermann. N8UR <jra at febo.com<mailto:jra at febo.com>> wrote:
FWIW, I had no trouble capturing 4 x 384 kHz slices with HDF5 on an older i7 laptop with SSD.
On May 28, 2019, at 10:58 AM, "Engelke, Bill via TangerineSDR" <tangerinesdr at lists.tapr.org<mailto:tangerinesdr at lists.tapr.org>> wrote:
Tom – let’s talk more about the throughput issue. As I mentioned before, I am working right now on a way to do some benchmarking to start gauging what is possible.  I have a related question for you:



-          On your quad core I7, have you narrowed down where the bottleneck is?  There have been some discussions that a rotating hard drive might not be able to keep up with the data rate, no matter what format is used.  (Something else I am going to test). It is quite possible that the compute time to put the data out as HDF5 might be the smaller part of the time budget, and disk writing the larger.

-          At today’s prices, a 2 TB or 4 TB SSD is a budget buster, but this might not be the case in 2024.


Any thoughts?  I am building a crude prototype to see if I can save multiple channels off a Red Pitaya using HDF5 (Digital RF actually, but it uses HDF5), and compare throughput using both spinning drive on USB3 and SSD. -73- Bill


From: Tom McDermott <tom.n5eg at gmail.com<mailto:tom.n5eg at gmail.com>>
Sent: Sunday, May 26, 2019 9:08 PM
To: TAPR TangerineSDR Modular Software Defined Radio <tangerinesdr at lists.tapr.org<mailto:tangerinesdr at lists.tapr.org>>
Cc: Scotty Cowling <scotty at tonks.com<mailto:scotty at tonks.com>>; Engelke, Bill <bill.engelke at ua.edu<mailto:bill.engelke at ua.edu>>
Subject: Re: [TangerineSDR] Functional Specification v 0.3


Hi Bill - thanks for iterating the specification.  Here are a few comments on 0.3:


There are no paragraph numbers to  reference, and the page numbers may change
depending on how mark-up is selected by the reader, so I'll reference the Title of the paragraph.


General Requirements - Assumptions and Dependencies:


1. The HD may be able to be reduced to 2TB if the 20GE snapshot
can be made while recording to the ring buffer.  2T SSD drives
are coming down in price faster than 4T.


Technical Notes


I am skeptical that a SBC-based host can run HDF5 and keep up
with the received data. My quad Core I7-3740 3.4 GHz can not
keep up with 4 x 192k from one antenna (one fourth the DE
requested throughput). It may be better to run HDF5 only on the
snapshot that is uploaded to the Central Server. That way it
doesn't have to run at real-time speed, it only needs to code a small
subset of the data and can run at a much slower rate paced by how
fast the upload link is.


Data format.  The DE will downconvert and decimate the received
samples. This will produce 24 bit I and 24 bit Q samples, probably 2's
complement binary.  These will need to be converted to single
precision floating point I and floating point Q prior to HDF5 encoding.

 -- Tom, N5EG






On Fri, May 24, 2019 at 12:40 PM Engelke, Bill via TangerineSDR <tangerinesdr at lists.tapr.org<mailto:tangerinesdr at lists.tapr.org>> wrote:
Scotty - Please see attached, updated to include some of the things discussed at Dayton.  Next I will work on the Functional Specifications for the Central Control & Database system.

If anyone would like me to start posting to the TAPR github or somewhere, please just text credentials to my mobile number, below.  I can assure everyone that I will not make a mess of it, having done this before.

W. D. Engelke (Bill), Asst. Research Engr.
Center for Advanced Public Safety
Cyber Hall
The University of Alabama
Tuscaloosa, AL 35487
Desk: (205) 348-7244
Mobile: (205) 764-3099

--
TangerineSDR mailing list
TangerineSDR at lists.tapr.org<mailto:TangerineSDR at lists.tapr.org>
http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org

--
TangerineSDR mailing list
TangerineSDR at lists.tapr.org<mailto:TangerineSDR at lists.tapr.org>
http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.tapr.org/pipermail/tangerinesdr_lists.tapr.org/attachments/20190528/3ccc341f/attachment-0001.html>


More information about the TangerineSDR mailing list