[TangerineSDR] Functional Specification v 0.3

Tom McDermott tom.n5eg at gmail.com
Tue May 28 12:45:38 EDT 2019


Hi Bill,

I agree we have to be careful where to allocate the work for the SBC.
That's why real-time streaming storage
is likely to be the bottleneck.  Transfers up to the central server can be
paced at how fast the SBC can process.
We can do more processing in that path, and don't have to run at 100%
throughput in that portion.  HDF5 is
really intended to be a disk storage format, not a streaming format.

For processing, data buffering, DSP, etc, Gnuradio under the covers is
C++,  Python is the supervisor.  All the
Gnuradio stuff I've written was in C++ with SWIG wrappers to make it
callable by Python. I've achieved in
excess of 200MS/sec throughput on that same system when not doing HD
transfers (using the graphics
card to do the FFT).

I've written All-Python blocks using Numpy that perform quite fast.  The
key is that Numpy handles memory
and buffers like C not like Python.  But it hides that complexity well from
the Python coder.  Numpy can
do all sorts of transcoding at C-speed.

-- Tom, N5EG



On Tue, May 28, 2019 at 9:18 AM Engelke, Bill <bill.engelke at ua.edu> wrote:

> 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> 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> 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>
> *Sent:* Sunday, May 26, 2019 9:08 PM
> *To:* TAPR TangerineSDR Modular Software Defined Radio <
> tangerinesdr at lists.tapr.org>
> *Cc:* Scotty Cowling <scotty at tonks.com>; Engelke, Bill <
> 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> 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
> http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org
>
> --
> TangerineSDR mailing list
> 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/d86451db/attachment-0001.html>


More information about the TangerineSDR mailing list