6

I’m a software engineer interested (and doing research) in machine learning. For some of my machine learning models, I need more computational power than which offered by a single computer.

Presently, I’m planning to buy few GPUs or build a small cluster using few number of cheap computers. However, recently I came access this nice article which shows how to build a small computing cluster using Raspberry Pi.

Steps to make a Raspberry Pi Supercomputer

Since I don't have previous experience in Raspberry Pi, I just want to know that such a cluster is suitable for high-performance computing applications such as machine learning with big datasets.

Thank You in Advance

Upul

Upul Bandara
  • 163
  • 1
  • 1
  • 5

4 Answers4

11

The pi seems like an economical device for developing systems of that sort and experimenting with them, but I don't think it is so feasible to then put such a cluster to use on real world problems and expect it to do well against some obvious options.

If your end cost is ~$50 per pi (the board, an SD card, some cables for power and ethernet), then $400 will net you a cluster of 8 700 Mhz ARM processors with 1/2 GB RAM each.

For about the same money, you could set up a 3.0 Ghz quadcore i5 board with 4 GB of RAM and a power supply. Then you just need a hard drive.

My feeling is a 3.0 Ghz quadcore machine will outperform 8 raspberry pis at anything. The pi is just slow. It is not a number cruncher. It was not designed for this purpose. You are not going to find server farms populated by the pi, etc. Part of what you are paying for is the GPU, but that's useless in this context: there is no openCV implementation that would allow you to exploit it.

goldilocks
  • 58,859
  • 17
  • 112
  • 227
  • 1
    1 plus also - does this include hyper-threading or not, and what about 32-bit or 64-bit? :-) – Wilf Nov 22 '13 at 14:24
6

It really depend on computation model and your goals. I'm working on cluster for machine learning and my computation model focus on double precision matrix multiplication (best benchmark for cluster performance is linpack). Raspberry Pi after overclocking can give about 64 MFLOPS (double precision) in comparison my Notebook (Core Duo T9600 2.8 GHz) gives 1.9 GFLOPS.

If you care more about performance/watt RaspberryPi is not a bad choice but you can probably find something better meybe like teensy3.1, if you care more about performance/$ you should invest in CUDA or OpenCL hardware (GPUs, APUs, or high end CPU).

Interesting details about RaspberyPi cluster you can find here

In summary Raspberry Pi cluster can be good if you want to learn parallel programming, cluster building and configuring, but I will not recommend it for HPC unless you trying to get something low power and small size (embedded HPC).

BTW there is unleashed power in Raspberry Pi GPU (theoretically 24 GFLOPS - single precision). You can read more about it here.

Piotr Król
  • 346
  • 3
  • 14
1

As others have said, you need to consider your compute model. Pis in cluster format work best for experimentation, but serious computing often requires more resources. See my previous answer on Pis and clustering to learn more.

Fred
  • 4,552
  • 18
  • 29
0

A cluster would be a good idea for small calculations, but if you calculate the other costs its not worth it. My advise would be to use your computer with a dedicated GPU for making models, then use the saved models on the pi. The other option is rent a cloud gpu for computation to make models then use those on the pi. There are many options for the cloud to name two, there is Amazon AWS and Google GPU.

Daniel
  • 46
  • 4