SIGCSE 2015 Buildout
From BCCD 3.0
Once you have your LittleFe assembled, the next step is to install BCCD. BCCD is a live Debian Linux-based distribution that we develop for use on LittleFe, and also for general x86-based clusters.
The general philosophy for configuring BCCD is "just hit enter" - for the most part, that's all you have to do until you get to the desktop.
Insert the USB stick
The USB stick we provide is already setup with a BCCD bootable image, so just insert it into a USB port on the board with a hard drive, and turn it on. If you need to build more BCCD USB sticks, see the install instructions.
Set a bccd user password
The default user for BCCD is called "bccd". It has no password by default, but if you want to login remotely using SSH, you'll want to set a password when prompted. We usually just type "bccd" and hit enter. Note that it will not show you the letters you type.
Accept default networking
BCCD will try to find other BCCD systems on the same network. Since you have a lone BCCD system, it will not find anything, so just press enter until you're past the networking configuration.
At this point you will be in the BCCD desktop.
BCCD runs in a RAM disk by default. "Liberating" is the process of taking that RAM disk and writing it to the attached hard drive. To do that, type the following commands into one of the terminals that is in the desktop:
sudo su -
- Enter the BCCD password you set above
perl /root/liberate.pl --libdev=/dev/sda
- You might be prompted whether it is OK to destroy an existing operating system on the hard drive; say "y"es to that prompt.
- When the liberation is done, reboot:
shutdown -r now
- Remove the USB stick when prompted, and press Enter to complete the reboot.
BCCD is designed to coexist with other systems on the same network, and a BCCD system will not assign IP addresses to non-BCCD systems. Unfortunately, network booting is not compatible with this philosophy, so you will have to remove the safeties by running
bccd-reset-network. Since LittleFe operates in its own isolated network, this is safe, but the potential for danger is an exception to our "just hit enter" mantra, so please follow the following steps.
- In one of the terminals, enter
- Press Enter to get past the initial instructions.
- The next screen will have you choose a network interface for BCCD traffic; this should just show
eth0()so press Enter.
- This screen will say "No DHCP found" - Select No. This will cause BCCD to prompt to setup PXE booting.
- When prompted for "Make eth0 the PXE-capable NIC", say Yes.
At this point, the script will configure DHCP and PXE booting.
Turn on diskless nodes
After DHCP is setup to do PXE booting, you can start turning on each node. We recommend doing each in turn, with the monitor plugged in to see if any run into difficulties. If everything is OK, you should get to a login prompt that looks like "node011 login:". You do not need to log into this node; all your work can be done on the head node!
Run a cluster application
BCCD ships with a number of applications in the bccd user's home directory that can be used to demonstrate various aspects of high-performance and parallel computing. Many of these are built around the Message Passing Interface (MPI), which is an industry-standard API for writing portable, parallel code.
BCCD has a custom network service called "pkbcast" that will make other BCCD systems aware of each other's presence, and exchange SSH keys. You can use
bccd-snarfhosts to generate MPI machines files to pass to mpirun. Once all your nodes are up, you can run it, and you should get a
node000.bccd.net slots=4 node011.bccd.net slots=4 node012.bccd.net slots=4 node013.bccd.net slots=4 node014.bccd.net slots=4 node015.bccd.net slots=4
You can now try running one of the included cluster applications like GalaxSee using
mpirun, which is the standard name for the program to start a MPI application.
mpirun -np 24 -machinefile ~/machines-openmpi ~/GalaxSee/GalaxSee.cxx-mpi 1000 500 400
You can play with the contents of the machines file and the number of CPUs to see the effects of speedup.
Wireless support is not well-integrated with BCCD yet. This manual process will work for the SIGCSE network:
/usr/bin/wpa_passphrase SIGCSE xxxxxxxx > /var/tmp/wpa/SIGCSE.psk(fill in the conference password here)
sudo /sbin/iwconfig wlan0 essid SIGCSE
sudo /sbin/iwconfig wlan0 mode Managed
sudo /sbin/wpa_supplicant -B -iwlan0 -c/var/tmp/wpa/SIGCSE.psk -Dwext
sudo /sbin/dhclient wlan0