I thought it might come in handy for some people. Let’s get to it.
What is Rocks?
Rocks is a linux distribution based on CentOS. It’s intended for High-Performance Computing. It has the tools that helps managing the cluster, and it’s really easy to setup for a… I’m not going to say a “Mere Mortal”, but it shouldn’t be hard for an average computer science student.
Check Your System Requirements
You’ll need a minimum of two computers (the main node, and a compute node). Here are the system requirements for running Rocks:
- Disk Capacity: 30 GB
- Memory Capacity: 1 GB
- Ethernet: 2 physical ports (e.g., “eth0” and “eth1”)
- BIOS Boot Order: CD, Hard Disk
- Disk Capacity: 30 GB
- Memory Capacity: 1 GB
- Ethernet: 1 physical port (e.g., “eth0”)
- BIOS Boot Order: CD, PXE (Network Boot), Hard Disk
In other words, one main node with two ethernet ports, and n-number of compute nodes. Both should have loads of free space, and you will need some cables and switches to connect things together, depending on the number of nodes. And no minimum requirement for processor cores. Also, you can use the same installation process for virtual clusters.
Connect The Nodes Together
Connect all nodes to the main node, and connect the main node to the internet. Of course, you can configure the network connections to suit your application. Also, make sure that DHCP is disabled in all switches that connects the private network. Rocks relies on DHCP to boot (read more), connect and install the OS on compute nodes.
Download ROCKS! and Burn the DVD
I used the jumbo DVD, because it has everything. Rocks components are separated into multiple CDs. The big one is better because inserting CDs to the machine one-by-one can be annoying. Here is the link to the download page.
Install Rocks on the main node
Before doing so, make sure you set the right boot order as described in the system requirements. Insert the DVD, and boot it up.
As soon as the boot screen pops, type “frontend” and hit return. This will tell Rocks that this node is the frontend node, and will start the installation process accordingly.Wait a bit for installer to come into life. When it shows up.
This is the welcome screen. Choose CD/DVD-based roll.
Here is the rolls list. Choose the following rolls: Base, Ganglia, HPC, Kernel and OS. Those are rolls I needed to set up my cluster.
Check the rolls summary, and make sure that the right rolls are selected. Then, hit “Next”.
Here, Rocks requests some basic information about the cluster, such as host name and location.
Public network configuration. This should be configured depending on the router that connects to the internet. Double check the physical ports and make sure that you got the connections right. I chose “eth0” to be the public connection.
Private network configuration. Should be configure according to the switch that connects the network together. If it’s a virtual HPC cluster, change is not needed. Also, make sure that the network is in the right order. I chose “eth1” to be the private network.
Write your desired Gateway and DNS server. I chose the router.
Don’t forget the password. You’ll need it. Note: the root is the system admin. It can do anything and everything. You don’t want to forget the password.
Choose the proper timezone.
If the machine has the minimum disk requirement (30GB), manually partitioning won’t be needed.
Wait a bit for things to finish. Have a snack, maybe.
Voila! The main node is up. Time to set up the rest.
Install Rocks on the rest of the nodes
If you got network booting running in all compute nodes, things will be much easier and seamless:
- Open a terminal window on the frontend node.
- Run the
- Choose the device you want to connect. For now, it will be “Compute”.
- Turn on all compute nodes (make sure the boot order is set as specified in the requirements), and watch Rocks handles the rest.
- If network booting didn’t work, you’d have to boot the Installation DVD into each compute node. However, in this case, boot and leave Rocks handle the rest. No need to type anything on the boot screen.
A list of all detected nodes. Nodes are detected using DHCP.
insert-ethers will show nodes as they’re discovered.
Ganglia provides a monitoring solution for your cluster.
It monitors the cluster. Simply open the browser on the main node, and go to
http://localhost/ganglia/. It will be the way to check whether the setup on each node was completed, too.
I don’t know. You got yourself a cluster. Do whatever you want with it. Write some MPI app that folds proteins. Distribute a database of randomly generated records for fun. Break the world record on the number of PI digits you can calculate. Whatever.
I hope this helps. Leave me a question if you want. Hopefully, I’ll finish the NBody series.. I not going to say soon, but I hope I do.