<div dir="ltr"><div>Hi Bill,</div><div><br></div><div>[ MB = Megabyte,  Mb = Megabit ]<br></div><div><br></div><div>The Core I7 system I tested on has a HD throughput of 40 MBytes/sec (numerous different tests and benchmarks).<br></div><div>It's a SATA-3 drive, I suspect the motherboard may be a significant part of the limit, good SATA-3 HD implementations</div><div>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</div><div>some overhead. As John mentions, an SSD would reduce seek-time issues.  If there is extensive seek-time then the</div><div> buffers build, although I did not notice any upstream buffer overflows.</div><div></div><br><div>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</div><div>in raw format without any problems (no HDF5 coding). The HDF5 coder was the only difference between the two tests.</div><div></div><div>The Gnuradio HDF5 block takes floating-point input only.<br></div><div><br></div><div><div>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</div><div>to code all the raw data, only the data we send to the central server.<br></div><div></div></div><div><br></div><div>Here are some floating point vs. fixed point trade-offs I see:</div><div><br></div><div>Any signal processing done on the Host will want to be done in floating point format.  Floating Point DSP is much much easier to</div><div>implement than fixed point processing.  With Fixed, you have to watch for underflow and overflow at most steps as</div><div>either can destroy the signal.  Underflow or Overflow means you need to rescale (the entire sample set: long ago, to far future).</div><div> Converting from Float to Fixed has the same challenge, you likely need to rescale.  Fixed point was common when Floating Point Logic</div><div> was too expensive (low cost, low power modem chips, CPUs before they universally had Floating Point processors, etc.). <br></div><div><br></div><div>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</div><div>single precision floating point,  increasing storage size and lengthening transfer time.</div><div><br></div><div>Raw data without significant processing on the DE could be stored & transferred in Fixed format. If the DE does much processing</div><div>then Fixed becomes an issue. Gnuradio uses floating point for the math blocks (filtering, FFT, AGC, etc.), the Gnuradio soundcard</div><div>sink, the scope and spectrum displays, etc.</div><div><br></div><div> In my opinion, the central server is invariably going to want the data in Floating Point format for subsequent processing. So two options</div><div>are:</div><div><br></div><div>1. Convert to Float on the Host, code to HDF5, then send.</div><div>2. Minimize Host DSP, HDF5 code unprocessed fixed samples and transfer to the Central server, then the central server has to</div><div> unpack HDF5 and transcode to float.<br></div><div><br></div><div>-- Tom, N5EG<br></div><div><br></div><div></div><div></div><div></div><div><br></div><div>-- Tom, N5EG</div><div><br></div><div><br></div><div><br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, May 28, 2019 at 8:02 AM John Ackermann.  N8UR <<a href="mailto:jra@febo.com">jra@febo.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">




<div lang="EN-US"><div dir="auto">FWIW, I had no trouble capturing 4 x 384 kHz slices with HDF5 on an older i7 laptop with SSD.</div>
<div class="gmail_quote">On May 28, 2019, at 10:58 AM, "Engelke, Bill via TangerineSDR" <<a href="mailto:tangerinesdr@lists.tapr.org" target="_blank">tangerinesdr@lists.tapr.org</a>> wrote:<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">


<div class="gmail-m_3144113639267677423WordSection1">
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)">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:</span></p><p></p><p></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)"></span></p><p> </p><p></p>
<p class="gmail-m_3144113639267677423MsoListParagraph"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)"><span>-<span style="font:7pt "Times New Roman"">         
</span></span></span><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)">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.</span></p><p></p><p></p>
<p class="gmail-m_3144113639267677423MsoListParagraph"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)"><span>-<span style="font:7pt "Times New Roman"">         
</span></span></span><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)">At today’s prices, a 2 TB or 4 TB SSD is a budget buster, but this might not be the case in 2024.</span></p><p></p><p></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)"></span></p><p> </p><p></p>
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)">Any thoughts?</span></b><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)">  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</span></p><p></p><p></p>
<p class="MsoNormal"><span style="font-size:11pt;font-family:"Calibri",sans-serif;color:rgb(31,73,125)"></span></p><p> </p><p></p>
<p class="MsoNormal"><b><span style="font-size:11pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11pt;font-family:"Calibri",sans-serif"> Tom McDermott <<a href="mailto:tom.n5eg@gmail.com" target="_blank">tom.n5eg@gmail.com</a>>
<br>
<b>Sent:</b> Sunday, May 26, 2019 9:08 PM<br>
<b>To:</b> TAPR TangerineSDR Modular Software Defined Radio <<a href="mailto:tangerinesdr@lists.tapr.org" target="_blank">tangerinesdr@lists.tapr.org</a>><br>
<b>Cc:</b> Scotty Cowling <<a href="mailto:scotty@tonks.com" target="_blank">scotty@tonks.com</a>>; Engelke, Bill <<a href="mailto:bill.engelke@ua.edu" target="_blank">bill.engelke@ua.edu</a>><br>
<b>Subject:</b> Re: [TangerineSDR] Functional Specification v 0.3</span></p><p></p><p></p>
<p class="MsoNormal"></p><p> </p>
<div>
<div>
<div>
<p class="MsoNormal">Hi Bill - thanks for iterating the specification.  Here are a few comments on 0.3:</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">There are no paragraph numbers to  reference, and the page numbers may change</p><p></p>
</div>
<div>
<p class="MsoNormal">depending on how mark-up is selected by the reader, so I'll reference the Title of the paragraph.</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">General Requirements - Assumptions and Dependencies:</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">1. The HD may be able to be reduced to 2TB if the 20GE snapshot<br>
can be made while recording to the ring buffer.  2T SSD drives<br>
are coming down in price faster than 4T.</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">Technical Notes</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">I am skeptical that a SBC-based host can run HDF5 and keep up<br>
with the received data. My quad Core I7-3740 3.4 GHz can not </p><p></p>
</div>
<div>
<p class="MsoNormal">keep up with 4 x 192k from one antenna (one fourth the DE</p><p></p>
</div>
<div>
<p class="MsoNormal">requested throughput). It may be better to run HDF5 only on the</p><p></p>
</div>
<div>
<p class="MsoNormal">snapshot that is uploaded to the Central Server. That way it</p><p></p>
</div>
<div>
<p class="MsoNormal">doesn't have to run at real-time speed, it only needs to code a small</p><p></p>
</div>
<div>
<p class="MsoNormal">subset of the data and can run at a much slower rate paced by how</p><p></p>
</div>
<div>
<p class="MsoNormal">fast the upload link is.</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal">Data format.  The DE will downconvert and decimate the received
<br>
samples. This will produce 24 bit I and 24 bit Q samples, probably 2's<br>
complement binary.  These will need to be converted to single<br>
precision floating point I and floating point Q prior to HDF5 encoding.</p><p></p>
</div>
<div>
<p class="MsoNormal"><br>
 -- Tom, N5EG</p><p></p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
<div>
<p class="MsoNormal"></p><p> </p>
</div>
</div>
</div>
<p class="MsoNormal"></p><p> </p>
<div>
<div>
<p class="MsoNormal">On Fri, May 24, 2019 at 12:40 PM Engelke, Bill via TangerineSDR <<a href="mailto:tangerinesdr@lists.tapr.org" target="_blank">tangerinesdr@lists.tapr.org</a>> wrote:</p><p></p>
</div>
<blockquote style="border-color:currentcolor currentcolor currentcolor rgb(204,204,204);border-style:none none none solid;border-width:medium medium medium 1pt;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<p class="MsoNormal">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.</p><p></p>
<p class="MsoNormal"> </p><p></p>
<p class="MsoNormal">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.</p><p></p>
<p class="MsoNormal"> </p><p></p>
<p class="MsoNormal">W. D. Engelke (Bill), Asst. Research Engr.</p><p></p>
<p class="MsoNormal">Center for Advanced Public Safety</p><p></p>
<p class="MsoNormal">Cyber Hall</p><p></p>
<p class="MsoNormal">The University of Alabama</p><p></p>
<p class="MsoNormal">Tuscaloosa, AL 35487</p><p></p>
<p class="MsoNormal">Desk: (205) 348-7244</p><p></p>
<p class="MsoNormal">Mobile: (205) 764-3099</p><p></p>
<p class="MsoNormal"> </p><p></p>
</div>
</div>
<p class="MsoNormal">-- <br>
TangerineSDR mailing list<br>
<a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br>
<a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a></p><p></p>
</blockquote>
</div>
</div>

<pre class="gmail-m_3144113639267677423blue">-- <br>TangerineSDR mailing list<br><a href="mailto:TangerineSDR@lists.tapr.org" target="_blank">TangerineSDR@lists.tapr.org</a><br><a href="http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org" target="_blank">http://lists.tapr.org/mailman/listinfo/tangerinesdr_lists.tapr.org</a><br></pre></blockquote></div></div></blockquote></div>