Sunday, March 20, 2016

iozone benchmark results for aligned F2FS on USB

Using the F2FS filesystem on USB makes sense to me.  I ran Iozone on various configurations and came to the conclusion that aligning the USB cylinders on the erase block size of 128k improved write performance, as well as using the F2FS file system.

Details at IOZone Results for raspberry pi 3.

F2FS vs EXT4 on  aligned USB

Friday, March 18, 2016

lmbench results

I downloaded and ran lmbench on the Raspberry Pi 3, and also on the Pentium III as a comparison.  There is a page with the summary and some graphs.  The one of most interest is the memory read latency benchmark.


LMBench is pretty stale, originally released (pdf) back in 1996, it was quite sophisticated in divining the actual hardware architecture of many diverse processors.  I like the graphs.  They have a solid engineering feel to them to this day.

What I did on the rpi to run this:

mkdir src
cd src
wget http://www.bitmover.com/lmbench/lmbench3.tar.gz
tar zxvf lmbench3.tar.gz
cd lmbench3
mkdir SCCS
touch SCCS/s.ChangeSet
cd src
make results
cd ../results/
sudo echo true > /usr/local/bin/bk
sudo chmod +x /usr/local/bin/bk
mkdir HTML
sudo aptitude install ghostscript netpbm imagemagick
make html


The HTML directory has the summary and some gif files.  I had to edit the Makefile and comment out the gs PS.6, PS.7 and PS.8 lines to get make to run to completion.
Bitrot setting in after 11 years.

-r--r--r-- ob/ob          9474 2005-08-22 20:19 lmbench3/results/Makefile

#gs -sOutputFile=HTML/mem-unscaled%02d.$(IMAGE) -sDEVICE=$(IMAGE) -q -dNOPAUSE PS/PS.6 < /dev/null
#gs -sOutputFile=HTML/bwfile-unscaled%02d.$(IMAGE) -sDEVICE=$(IMAGE) -q -dNOPAUSE PS/PS.7 < /dev/null
#gs -sOutputFile=HTML/bwmem-unscaled%02d.$(IMAGE) -sDEVICE=$(IMAGE) -q -dNOPAUSE PS/PS.8 < /dev/null

Wednesday, March 16, 2016

Brainstorming

What kinds of tools can be made from a raspberry pi and audio card?
It's always fun to let imagination run wild.  Sometimes that keeps motivation strong and helps reach for a goal one had not considered in the beginning.

My primary use is intended to be a portable stereo hifi audio recorder.  But a processor and a soundcard can do a lot of things, just off the top of my head:
  • audio note taking
  • podcast generator
  • room equalization
  • loudness/SPL meter
  • sonar range finder
  • instrument tuner
  • guitar effects box
  • voiceprint identification
  • matrix of devices for gunfire location/distance
  • audio RPM meter
  • realtime speech transcription/translation
I am sure the possibilities are much greater than the above.

Tuesday, March 15, 2016

Test functionality of current hardware and software: storage benchmarking

I can't really call a MicroSD or USB drive a disk, they are not spinning rust but nanometer feature sized flash cells.  The RPI3 appears to either use the USB interface for the MicroSD drive or there is some other limit which makes the USB and MicroSD drives perform almost identically.  The following graphs from iozone compare the SanDisk SDSQUNC 032G MicroSD card running Raspbian with a random 8GB PNY thumb drive I have on my keychain.  I formatted the USB drive with EXT4, and the MicroSD was formatted by NOOBS with EXT4 when installing Raspbian.

 Write performance is critical for recording.  Average write of 300 Mb/s for most file sizes and record sizes will be quite adequate for stereo or 4 channel recording at 192k/s by 32 bit.
MicroSD vs USB ext4 iozone write

By way of comparison, here is the SanDisk/RPI3 combination against an aging Pentium III with UDMA 100 Maxtor drives.  I have some antique systems to compare with, they recorded audio in their day as well.


RPi3 MicroSD vs Pentium III Maxtor UDMA 100 iozone write