Projects »

40-core ARM cluster using the NanoPC-T3

Building a high performance 5-node cluster for under £100 (£375 including five T3s)

After the interest in my cluster of Raspberry Pi 3s in April, I was keen to try building clusters with some of the other excellent SBCs now on the market. FriendlyARM in China generously sent me 5 of their latest NanoPC-T3 64-bit ARM boards, each with an EIGHT core ARM A53 SoC running at 1.4GHz, gigabit Ethernet and 8GB of eMMC storage onboard.

Finished T3 Cluster (front) Finished T3 Cluster (rear) T3 Cluster LEDs in the dark

The completed cluster measures 146.4 (w) × 151 (h) × 216mm (d) and weighs 1.6kg (5.6 × 5.9 × 8.3", 56oz), including the AC-DC power supply.

NanoPC-T3 vs Raspberry Pi 3

The NanoPC-T3 board is a considerable advance over the Raspberry Pi 3 both in terms of performance and features, but unfortunately this comes at nearly twice the price (at least for those of us in the UK):

ModelNanoPC-T3Raspberry Pi 3
SoC8-core ARM A53
1.4GHz
4-core ARM A53
1.2GHz
Memory1GB DDR31GB DDR2
Network1000Mbps100Mbps
WiFi802.11bgn802.11bgn
Bluetooth4.0 dual4.1 + BLE
Storage8GB eMMC onboard
SD card
microSD card
USB spare2 fitted + 2 headers
1 microUSB
4 fitted
VideoHDMI 1.4, LVDS, RGB-LCD, MIPI-DSIHDMI, DSI
Camera portsDVP, CSICSI
Audio3.5mm3.5mm
Microphoneonboardno
Size100 × 60mm85 × 56mm
Power1.6 → 4.3W
2A max, DC 4/1.7mm
1.2 → 2.1W
2.5A max, microUSB
LaunchedQ2 2016Q1 2016
Price (UK)£59.021£33.59

1US$60 T3 + US$1.50 heatsink + $8 shipping + 20% VAT + 0% import duty = £59.02

NanoPC-T3 (to scale) Raspberry Pi 3 (to scale)

I'd like a Cluster of ARM boards! made with
Raspberry Pi 3 quadcore 1.2GHz
NanoPC-T3 octocore 1.4GHz
Orange Pi Plus2e quadcore 1.3GHz
PINE A64+ quadcore 1.2GHz
Banana Pi M3 octocore 1.8GHz
Radxa Rock2 quadcore 1.6GHz
Raspberry Pi Zero 1GHz
ODROID-C2 quadcore 2GHz
myiq

3D design in SketchUp

I modified my original Raspberry Pi cluster design using the free version of SketchUp and built rough 3D templates of the NanoPC-T3’s, network switch, sockets, etc. I didn't bother to include ventilation slots/grids in the 3D model.

Case 3D model (front) Case 3D model (rear)

2D design in Inkscape

I used the free Inkscape application for 2D design, ready for exporting to the laser cutter. Each colour is a different pass of the laser, at different power/speed levels, so the green lines are cut first to make holes for ports/screws/ventilation, pink are extra cuts to help extract delicate parts, orange is text/lines that are etched and finally blue cuts the outside of each panel.

2D design of case panels

Download files for laser cutting on one 600×400×3mm sheet:

  1. SVG format Sheet or
  2. DXF format Sheet
Read more about the laser cutting and the screwless case-clipping system in my original article. I probably went a little overboard with so many ventilation holes, which meant the laser-cutting took 45 minutes to complete.

Design Changes from the Raspberry Pi 3 cluster

Although very similar to my cluster of Raspberry Pi 3s, I made a number of changes and improvements: Read about some of the design choices on the original Pi cluster.

Power, temperature & cooling

At idle, the entire system of five T3s, network switch & 5V fan sips a mere 13W, and at 100% load it still only uses 31W in total. There is the possibility of further reducing the power requirements by disabling WiFi, Bluetooth and HDMI?

Is a heatsink worth it? with double the number of cores, the T3 SoC can generate far more heat than the Pi3, so I'd suggest a heatsink is pretty much an essential purchase. Luckily FriendlyARM sell a substantial heatsink with thermal paste for only US$1.50 that securely clips onto the T3 board. It is much bigger than other aftermarket SBC heatsinks I've seen, and in my tests it reduced the SoC temperatures by a remarkable 10-35°C !

The power adaptor can supply up to 50W (2A per T3), which is more than enough for a couple of power-hungry external devices to be plugged into the USB ports. Using:

cat /sys/class/hwmon/hwmon0/device/temp_label
to measure the SoC core temperature, the cluster idles at 36°C (97°F) with cooling from the 5V fan.

At 100% load and the 5V fan, using:

sysbench --test=cpu --cpu-max-prime=200000 --num-threads=8 run &
the SoC core temperatures reached a stable 68°C (154°F). If you don't provide at least some active cooling, the SoCs will get as high as 85°C and automatically throttle down their clock speed, to avoid overheating. They can safely run long-term at that temperature, but you don’t get maximum performance.

Exactly the same case design should work with NanoPC T2s and T1s which run cooler than the T3, and so might not need a fan to cool them. For cooling a single T3 you could use a much smaller fan, perhaps 40-60mm.

Silent cooling:

To cool down the cluster I fitted a single 92mm fan inside the rear of the case. I used a (effectively) silent fan recommended by Quietpc.com, the Nanoxia Deep Silence (£10.15). At 5V I have to get my ear within 50-75mm (2-3") to hear even the slightest whisper from the fan, and the supplied rubber gromets definitely do a good job of isolating the case from any small vibrations.

descriptionheatsinks?idle100% load  performance   
Case, 12V fan, 1400 rpm    no39°C85°Cthrottles
Case, 12V fan, 1400 rpmyes30°C50°COK
Case, 7V fan, 800 rpmyes33°C59°COK
Case, 5V fan, ? rpmyes36°C68°COK

Unlike PC motherboards, a T3 doesn't have a standard 3 or 4-pin fan header, but it is quite easy to power the fan using the GPIO 5V power rail instead. WARNING you can't run anything that needs a lot of current this way – however a low-power fan should be fine. You do need to make sure you have a quality power supply, and not too many power-hungry USB devices plugged into your T3, otherwise you'll get crashes & rebooting. The main GPIO pins are for data, but using the VDD_5V power rail on pin 29 should work in theory.

This should be enough to run the fan with 5V, or if you need more cooling, splice a step-up/boost converter in the middle to adjust the speed of the fan, by controlling its voltage between 5V and 12V.

Building the T3 Cluster

  1. Remove network switch case (2 small screws)
    Attach the network switch to case base, using 4× 6mm brass spacers + 4× 14mm bolts + nuts. This only fits one way around
  2. Cut off only 5 (of the 6) plugs on the DC power splitter cable, and solder on 5 new 4.0/1.7mm right angled plugs
    Bolt DC socket port to case back
    Cut off the combined end of the splitter cable, and solder onto the DC screw mount socket.

    Building T3 Cluster case 2

  3. Screw 2 external LAN ports to inside of the case back (has “DC5V 10A” etched on the outside)
    Fit the 92mm case fan to inside of the case back using the supplied rubber grommets. The fan logo should face inwards if you want the fan to blow cold air into the case. The rubber grommets might need to be pushed into place with a small screwdriver/pen – don’t pull too hard!
    Clip case back to case base (marked C+D)
    Plug external LAN into network switch ports 1+3 (no room to use 1+2)

    Building T3 Cluster case 3

  4. Place the pads of heatsink compound to the SoC chip of each T3, and firmly clip on each heatsink
    Slide 5 T3’s onto 4 threaded rods using 48 nuts to secure. This might be faster with the rod in an electric screwdriver? Leave 30mm space at left end, space each T3 25mm apart. The LAN+USB side of the T3’s point upwards and towards the front of the case
    Attach case sides to T3 rods (EF+AB), secure with 8 metal nuts.

    Building T3 Cluster case 4

  5. Fit the 3-pin fan plug into the GPIO pins of one of the T3’s, so that black (ground) connects to pin 30, red (power 5-12V) to pin 29, and yellow (fan speed) hangs unconnected over the PCB.

    Building T3 Cluster case 5

  6. Plug T3 LAN cables into network switch ports 4-8 (be very careful if removing these – it is easy to break tiny plastic clips on the switch ports)
    Clip case sides to case bottom (E+F, A+B)

    Building T3 Cluster case 6

  7. Route HDMI cable through case
    Screw external twin USB to front case
    Bolt external HDMI to front case, 2 nuts
    Plug 2 external USBs + right-angle adaptors into any T3 (or 2 separate T3’s)
    Plug T3 LAN cables into T3’s
    Plug T3 DC power cables into T3’s
    Plug HDMI cable + right-angle adaptor into any T3

    Building T3 Cluster case 7

  8. Clip case front to case bottom (G+H)
    Clip case lid to case sides, front & back (M+N+O+P+Q+R+S+T)
    Attach self-adhesive rubber feet to underside of base

Bill of materials

Most of these parts were sourced from individual sellers on Amazon or eBay, which of course racks up the postage charges. If there were enough demand, it would be cheaper to bulk buy the parts and have a kit with everything you need to build the cluster.

Edimax ES-5800G V3 Gigabit Ethernet Switch£18.45
Flat 25cm Cat6 LAN cables (5 pack)£6.80
5V 10A AC-DC external power supply, 5.5/2.5mm plug£12.99
5.5/2.5mm chassis mount DC socket (1 from a 2 pack)£1.95
6-way DC power splitter cable£2.05
DC plug right angled 4/1.7mm (5 pack)£3.49
M3 steel screws 8mm (4 from a 10 pack)£1.10
RJ45 male to female screw mount (2 pack)£1.98
M3 steel hex nuts (4 from a 5 pack)£1.10
M3 steel bolts 14mm (4 from a 5 pack)£1.35
M3 brass female standoff 6mm (4 from a 10 pack)£0.99
M3 steel threaded bar 150mm inc. nuts (4 from a 5 pack)£5.50
0.5m HDMI male to female panel mount (inc. bolts)£2.39
Twin USB female socket to male cable (inc. screws)£2.19
USB right-angle male to female socket extender (2 pack)£1.98
M3 nylon hex nuts (48 from a 50 pack)£3.45
3mm extruded clear perspex 600×400mm£5.32
Laser cutting chargen/a
HDMI 270 degree adaptor£0.99
Nanoxia 92mm Deep Silence 1400rpm fan£10.15
Polyurethane rubber feet (4 from a 12 pack)£2.99
Subtotal inc P&P£87.21
NanoPC-T3 at US$60/each (5 pack)1£272.78
NanoPC-T3 heat sink 5mm (5 pack)£6.24
Total inc P&P£366.23

1The NanoPC-T3 is duty free to import into the UK, and only costs US$21 to ship 5 boards from China, but then there is UK VAT at 20%, bringing the total to £279.02.

The cluster of T3s (excluding the boards themselves) is slightly cheaper to build than the Pi3s: you don't need a USB hub, separate microUSB cables, SD cards for each board, etc. However it is a shame they used 4/1.7mm DC power connectors, rather than the far more common 5.5/2.5mm or 5.5/2.1mm sizes.

A cheaper high-performance option? the NanoPi Fire3 was announced by FriendlyARM after this T3 cluster was built, and looks like a great alternative for a low-cost, compact cluster. It has the same 8-core 1.4GHz SoC and gigabit Ethernet, but on a smaller board with fewer extra interfaces and nearly half the price – a 5-node cluster should give the same performance, but for a total of £250 instead of £366.

Show me the Benchmarks!!

I'm writing a separate article benchmarking this NanoPC-T3 cluster against my original Raspberry Pi 3 cluster, as well as detailed benchmarks comparing the individual boards. Watch this space...

Clusters of other Single Board Computers

So far I’ve also built: This NanoPC-T3 cluster design should in theory be compatible with the newer NanoPC-T3 Plus board, but I haven’t tested it myself yet.

The NanoPC-T3, Orange Pi Plus 2e and PINE A64+ clusters mostly share the same components, including the acrylic case panels – only the 2 side panels are unique because the boards are different sizes. I'm planning to revise my original Raspberry Pi cluster design so it will share most of these same case/components.

I’d like to build a small cluster of all the current crop of sub-$100 ARM SBCs, comparing the different features, and with detailed benchmarks. e.g., Odroid C2/XU4 and the Banana Pi M3. Please email me if you'd like to send boards for review.

Software to run on a cluster?

or... What is it for??

Education, training, blah, blah... well personally I’m just running a Debian Linux provided by FriendlyARM on each T3 for now, and I’m going to experiment with things like load-balanced web/database servers.

Running Docker on ARM on each node looks like an excellent way of controlling the cluster.


Fb Share this on Facebook
Nick Smith, June 2016.