Friday, 25 July 2014

Raspberry Pi B+ VS Raspberry PI B: benchmark comparison

Although the new Raspberry PI has almost the same hardware under the hood, I just couldn’t resist to compare it with its predecessor on the test bench.

As expected, the outcome of the tests doesn’t show a performance difference between the old and the new version…. but although there is no difference in performance, power consumption is another story. During benchmarking, the Pi’s were connected to a bench top power supply to monitor their power consumption. This is the result.





The full benchmark report can be found here.

Monday, 14 July 2014

Cubietruck Benchmarks (with and without SSD): Cubietruck VS Raspberry Pi VS Banana Pi VS BeagleBone Black

I just benchmarked another board: the Cubietruck. It’s one of my favourite boards because you can easily hook up an SSD to it. To see if that makes any difference in performance, I ran all test with and without an SSD attached. Here are the results:














Full Phoronix test is available here.



Wednesday, 9 July 2014

BeagleBone Black (rev B) benchmarks: BeagleBone VS Raspberry Pi VS Banana Pi

Since I was running some benchmarks anyway I decided to add some extra competitors to the list. The first one I added is the BeagleBone Black revision B. The next boards on my list are:
  • Cubietruck
  • Wandboard (Quad) 
  • Radxa
  • UDOO Board
  • HummingBoard (ordered)
  • Cubieboard 8 (not yet available for ordering) 
You can expect some benchmark results for these boards in the next couple of weeks. Here are the latest results for the BeagleBone Black.

The Black was running Ubuntu 14.04














Monday, 7 July 2014

Quick Start Guide: Phoronix and OpenBenchmarking.org

Install and run Phoronix

  1. Install the Phoronix test suite

    > sudo apt-get install phoronix-test-suite 
    
  2. (optional) make an account on http://openbenchmarking.org/

  3. (optional) login to openbenchmarking.org

    > phoronix-test-suite openbenchmarking-login
    
  4. Install the tests you want to run.

    > phoronix-test-suite install [Test 1] [Test 2] ...
    

    Example:

    > phoronix-test-suite install nginx phpbench pybench compress-pbzip2 compress-7zip openssl scimark2 encode-mp3 x264 stream
    
  5. Prepare Phoronix to run your tests

    > phoronix-test-suite batch-setup
    
  6. Run your tests

    > phoronix-test-suite batch-run [Test 1] [Test 2] ...
    

    Example:

    > phoronix-test-suite batch-run nginx phpbench pybench compress-pbzip2 compress-7zip openssl scimark2 encode-mp3 x264 stream
    

Some more commands

  • The easiest way to compare your system against an existing published benchmark is to run Phoronix with a referral to that test. Here’s an example based on http://openbenchmarking.org/result/1407059-GLND-ARMSBCB91

    > phoronix-test-suite benchmark 1407059-GLND-ARMSBCB91
    

    Running Phoronix like this will automatically merge your result with the source benchmark it is based on.

  • List all available tests:

    > phoronix-test-suite list-available-tests
    
  • List all test results:

    > phoronix-test-suite list-results
    
  • Remove a result

    > phoronix-test-suite remove-result [Test-Result]
    
  • Rename an identifier in a result file

    > phoronix-test-suite rename-identifier-in-result-file [Test-Result]
    
  • Upload a test result to http://openbenchmarking.org/

    > phoronix-test-suite upload-result [Test Result]
    
  • Run a benchmark. This is more verbose compared to a batch-run, for each test some extra user input could be required:

    > phoronix-test-suite benchmark nginx phpbench
    
  • Merge results manually on different systems.
    • copy ~/.phoronix-test-suite/test-results/

      > phoronix-test-suite merge-results [Test Result]  ...
      

Sunday, 6 July 2014

Banana Pi Benchmarks: Banana Pi Vs Raspberry Pi

I just ran some benchmarks on the Banana and Raspberry Pi. Basically my setup looked like this:
  • Raspberry Pi Model B, Raspbian version June 2014
  • Banana Pi, Lubuntu version 3.0 (14.04)
Here’s an overview of the results, i think they speak for themselves.













Friday, 4 July 2014

Banana pi: Enhanced Quick start (Headless enabled image)

Currently, the standard Banane Pi Lubuntu image doesn’t come with a ssh server installed. Lacking this package it is impossible to boot your Banana pi out of the box in headless mode. I took the latest Lunbuntu image (version 3.0), did a quick updated and installed some extra packages to allow you to boot up without a screen or keyboard attached, as an extra I added an new user with sudo privileges. Enjoy…

Image

  • Download the image (zip) here
    • MD5: c8e1b7b6f496a726b8c2e610e0dabe46
    • SHA1: 673883bf7533167784ff4516f1b78d79e80a80d5
  • Download the image (rar) here
    • MD5: b634d2eff57e4d5eb655fc47076e2a6f
    • SHA1: eac00468155cba821f023a9d544df4686762c7da

Image login:

  • root/root!
  • pi/raspberry
ssh pi@bananapi.local

Changes

Extra packages - vim - htop - screen
Summary of the commands
> sudo apt-get install vim htop screen openssh-server
> useradd pi -m -s /bin/bash
> passwd pi
> adduser pi sudo
Renamed the hostname to bananapi
> vim /etc/hostname
> vim /etc/hosts

Sunday, 8 June 2014

Raspberry Pi: Overclocking on Arch linux

Execute the following commands to overclock your Raspberry Pi on Arch linux:

  • Open the config file:

    sudo vim /boot/config.txt
    
  • Uncomment one of the following blocks:

    ...
    ##Modest
    #arm_freq=800
    #core_freq=300
    #sdram_freq=400
    #over_voltage=0
    
    ##Medium
    #arm_freq=900
    #core_freq=333
    #sdram_freq=450
    #over_voltage=2
    
    ##High
    #arm_freq=950
    #core_freq=450
    #sdram_freq=450
    #over_voltage=6
    
    ##Turbo
    #arm_freq=1000
    #core_freq=500
    #sdram_freq=500
    #over_voltage=6
    ...
    
  • Reboot

    sudo reboot
    

Raspberry Pi: changing the memory split on Arch linux

Changing the memory split between ARM and GPU on the Raspberry Pi running Arch linux is simple. Just execute the following commands:

  • Open the config file:

    sudo vim /boot/config.txt
    
  • Change the gpu_mem settings:
    • gpu_mem_256: GPU memory in megabyte for the 256 MB Raspberry Pi. (min:16 - max 192)
    • gpu_mem_512: GPU memory in megabyte for the 512 MB Raspberry Pi. (min 16 - max 448)
      ...
      gpu_mem_512=16
      gpu_mem_256=128
      ...
      
  • Reboot

    sudo reboot
    

Monday, 2 June 2014

Compile or install RethinkDB on the Cubietruck

Introduction

For one of the projects I’m currently working on, I needed a NoSQL database that could run on a simple ARM SBC. Until the Cubietruck crossed my path I never considered doing these kinds of things since most SBCs use SD cards as storage. Adding my precious data to an unreliable SD card is just not something I could live with :)

This all changed when I recently bought a Cubietruck, this device not only offers a lot more performance, it also offers the option to hook up a SATA drive. With the ability to have a NoSQL database on an ARM SBC, my next step was to choose which database to use.

MongoDB was my first choice since I’m very familiar with that one. There’s only one problem, MongoDB’s codebase seems to contain x86 specific code, so a MongoDB ARM version seems not something you could easily build.

My second choice was CouchDB. However, while searching for some extra info about it, I stumbled upon RethinkDB. A few articles later I decided to abandon my plans to use CouchDB and picked RethinkDB.

I haven’t regret my choice for a moment. The little help I needed in order to get the sources compiled, I easily got from the community. Both from their IRC channel as from their forum I immediately got the help I needed.

Install RethinkDB

In order to get this tutorial running I assume you’ve installed Ubuntu on the Cubietruck. You find an installation manual to Install Ubuntu on the Cubietruck here.

sudo apt-get install git g++ protobuf-compiler libprotobuf-dev libv8-dev libboost-dev curl build-essential nodejs npm

sudo vim /etc/fstab

Change the tmp storage to 128mb (the default of 20mb it too small for the compiler)

tmpfs            /tmp           tmpfs    size=128m 0       0

Get the sources and compile them

wget http://download.rethinkdb.com/dist/rethinkdb-latest.tgz
tar xvzf rethinkdb-latest.tgz
cd rethinkdb
./configure --without-tcmalloc --allow-fetch
make

if you get the following error:

gcc: error: unrecognized command line option "-m32"

change the following files:

  • ~/rethinkdb–1.12.5/external/v8_3.22.24.17/third_party/icu/source/aclocal.m4
    • CXXFLAGS=“${CXXFLAGS} -m32”, change to: CFLAGS=“${CFLAGS}”
    • CFLAGS=“${CFLAGS} -m32”, change to: CFLAGS=“${CFLAGS}”
  • ~/rethinkdb–1.12.5/external/v8_3.22.24.17/third_party/icu/source/configure:
    • CXXFLAGS=“${CXXFLAGS} -m32”, change to: CXXFLAGS=“${CXXFLAGS}”
    • CFLAGS=“${CFLAGS} -m32”, change to: CFLAGS=“${CFLAGS}”
  • ~/rethinkdb–1.12.5/external/v8_3.22.24.17/third_party/icu/icu.gyp:
    • ‘cflags’: [ ‘-m32’ ], change to: ‘cflags’: [ ’’ ]
    • ‘ldflags’: [ ‘-m32’ ], change to: ‘ldflags’: [ ’’ ]

For more info on this issue see also Yoeori/docs

The compiled archive is also available for download here.