Software

I've already talked a bit about using openSUSE for the base image for the cluster. In addition, I'll start building the software stack with a JeOS image, which stands for "Just enough Operating System." This is a bit of a pain, because the initial install has almost nothing in terms of installed software. On the other hand, you probably didn't need the Lithuanian font package installed anyway (my apologies to any Lithuanians reading this). The point is, most distributions come with a large pile of preinstalled software that you don't need, and will probably never use. Starting from a completely stripped down system also gives you a good education on exactly which software you really need, and all the dependencies that are required to install and run that software.

Also note that I'm building everything using a Linux system, and the commands in my walkthrough reflect that. The same commands should work on any Linux or *nix type system. If you're using something different, you're on your own.

Let's start with the initial openSUSE JeOS image. You can find all ARM imges on the openSUSE download site As you can see, there are a lot of different images to choose from. The latest image available when I started this build is openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz. You should also download the SHA256 checksum and verify your image is complete and not corrupt. Here are the commands I ran to pull down the image and verify the checksum:

wget http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz

wget http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256

sha256sum openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz

cat openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256

Below is the output from running those commands. A note on the output: my command prompt has the command number (from my shell history) in square brackets, followed by the host name of the server I'm working on, followed by my user ID and a greater-than symbol. A typical command prompt looks similar to:

[207]shikoku::gpike>

Here's the complete output:

[14]shikoku::gpike> wget http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
--2018-09-16 11:51:18--  http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
Resolving download.opensuse.org (download.opensuse.org)... 195.135.221.134, 2620:113:80c0:8::13
Connecting to download.opensuse.org (download.opensuse.org)|195.135.221.134|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ftp.utexas.edu/opensuse/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz [following]
--2018-09-16 11:51:18--  http://ftp.utexas.edu/opensuse/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
Resolving ftp.utexas.edu (ftp.utexas.edu)... 146.6.54.21
Connecting to ftp.utexas.edu (ftp.utexas.edu)|146.6.54.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 273328176 (261M) [application/x-xz]
Saving to: ‘openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz’

100%[======================================>] 273,328,176 1.86MB/s   in 2m 12s 

2018-09-16 11:53:32 (1.98 MB/s) - ‘openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz’ saved [273328176/273328176]

[15]shikoku::gpike> wget http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256
--2018-09-16 11:53:57--  http://download.opensuse.org/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256
Resolving download.opensuse.org (download.opensuse.org)... 195.135.221.134, 2620:113:80c0:8::13
Connecting to download.opensuse.org (download.opensuse.org)|195.135.221.134|:80... connected.
HTTP request sent, awaiting response... 302 Found
Location: http://ftp.utexas.edu/opensuse/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256 [following]
--2018-09-16 11:53:57--  http://ftp.utexas.edu/opensuse/ports/aarch64/distribution/leap/15.0/appliances/openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256
Resolving ftp.utexas.edu (ftp.utexas.edu)... 146.6.54.21
Connecting to ftp.utexas.edu (ftp.utexas.edu)|146.6.54.21|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 595 [application/x-xz]
Saving to: ‘openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256’

100%[======================================>] 595         --.-K/s   in 0s      

2018-09-16 11:53:59 (34.1 MB/s) - ‘openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256’ saved [595/595]

[16]shikoku::gpike> sha256sum openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
8d60788a26c63304cf299944097d631f240faf26897b2dbd70fc54b84b37627a  openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz
[17]shikoku::gpike> cat openSUSE-Leap15.0-ARM-JeOS-raspberrypi3.aarch64-2018.07.02-Buildlp150.1.1.raw.xz.sha256 
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

8d60788a26c63304cf299944097d631f240faf26897b2dbd70fc54b84b37627a
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iQEVAwUBWzodk7iLL9Q9vcKEAQgGRwgAlITOW9ELCSFECVMTbA3oSDD6mkqrHDsJ
0rFGoEs454uYvIDnoLbyRiV66RCv7l/KEEjtaS9C32IAQyUcQUbWJ+mZ0dmg3T6I
kZOS6AaH1E43jntcYei/ig4UeR4rWOe8R3c4LlTPAce+7M4GAsYWdCqygyyL292o
8owr09MLX2pExKce6V3dgq0eFWVenv4hTbtqYYPPLKA4m8J1ac+A0RqKWSGFzm0w
SYH7mkwKdQPkF5GXy/3NRaxwyF6sfzasvdsHRIVtiC3SoDnrKj8GkFbJLxwEjUDg
jmKZqIId4k7bMgO5G6n5BMF/SO23YansMQKEn3QWSiTKTujHoUCnjA==
=KSig
-----END PGP SIGNATURE-----
[18]shikoku::gpike>

You may notice that even though I tried to download the image from download.opensuse.org, the actual file came from ftp.utexas.edu. This is because the openSUSE redirects you to the "best" (meaning closest, fastest) site it can find based on your location.

Also note that in terms of benchmarking, our download speed wasn't that great: under 2MB/s.
This is partly because the affiliate download sites act as mirrors for vast amounts of software, and partly because I downloaded this to my laptop over a shared wireless connection. In terms of benchmarking numbers, this isn't terribly interesting. The bandwidth will vary depending on your specific location and your local network attributes.