At Inzura we collect and process huge amounts of data for each our insurance clients each month. We manage GPS location data for telematics, app usage data, policy document photos, vehicle and property data as well as video files from dashcams. We generate insight from this data to help with tactical issues like cost savings and fraud detection but also do aggregate analysis for longer term strategic product planning and pricing. We are constantly looking for ways to enhance the data-driven intelligence and insight we deliver to our insurer and broker customers.
As with any fast moving industry field it’s useful to experiment with new tools and techniques before committing to large scale remote and expensive cloud-based deployments. As such, we set out to build our very own data science cluster supercomputer…
What is a supercomputer?
You might ask what a supercomputer is compared to the high-powered desktop you already use in your office today. We have some pretty powerful water cooled multicore, SSD based, GPU equipped workstations in our office. These are great for machine learning and AI training and go a long way in delivering the computing power we need for many R&D tasks. The problem is that these desktop computers have a finite amount of computing power available and for some tasks that include complex analysis of processing very large data sets, these single computer solutions struggle. A supercomputer and specifically a cluster computer is a collection of hundreds of smaller computers (nodes) all working in parallel on different parts of the same analysis task. This collective effort means the work is done quickly but on low cost commodity hardware. If the task needs to be done more quickly, more nodes can be added to the cluster.
Essentially a cluster computer is another tool available to the data scientist for certain types of large-scale big data analysis.
Our supercomputer requirements
The aim of this project was to give our data science team the freedom to experiment with new algorithms and tools, but with enough power to do useful data analysis work and at low cost.
We listed these points are our main criteria:
- Scalable and cluster based using commodity single board computers (SBCs)
- Linux based OS supporting Python / Spark / Hadoop
- Modular and expandable to 1000 CPU cores and 1TB of RAM when fully populated
- Low cost - under £20,000 fully populated, £3,000 for base configuration
- Aesthetic, compact and quiet (because it will be in our office)
We don’t do things by half at Inzura
Technical requirements aside, as is always our way we also wanted to inject some creative flare to the building of our supercomputer. We decided to 3D print the chassis parts with our Lulzbot Taz6 3D printer, use lots of bright LEDs and (quiet) RGB fans. Fairly early in the project we settled on using the Raspberry Pi 4 for the compute nodes. The new Pi4 is very powerful and now boasts up to 4GB of RAM, 4 CPU ARM cores that can be reliably overclocked from 1.5GHz to 1.75GHz. They also have an gigabit ethernet port so networking is full speed. Each RPi4 costs just £54 ($68) so 1000 cores (250 Pi4’s) would cost just £13,500 – the price of one high end AI/ML workstation.
Join us on our supercomputer journey
In this series of blogs, I will take you through the various development stages of building our cluster supercomputer, from the chassis, power distribution, cooling, networking, operating system and data science work we will do. We will publish the 3D CAD files too so you can follow along and build your own if you dare! Remember you can scale this to whatever size fits your budget, desk size or office. My advice? Start at 16 nodes and scale up as you wish.
Check out the next Inzura Data Science post for the start where we look to take you through our overall design plan and prototype chassis components. I will also share the 3D CAD designs and many of the build lessons learned. See you next time.