Build your own Linux Cluster
Warning: page not complete.. I'm still working on it!
I only used open-source software to build the cluster. So everything
has been downloaded from the web. Disclaimer: I did this back in 2006,
so versions will have changed, and procedure might also have become simplified.
The aim of this page is only to give a general idea!
Hardware Requirements:
----------------------
Essentially any linux box with reasonable amount of RAM and hard disk would do.
To make life easier, it is best if one uses standard hardware and if all the
compute nodes are identical. Though this is not a necessity, heterogeneous
clusters are very much a reality.
Software Requirements:
----------------------
That's it! The core software is TORQUE, which is a open source fork of the PBS.
Head Node Configuration:
------------------------
Step 0: Assuming the head node is installed with the LINUX operating system.
Step 1: Start NIS service.
Step 2: Start NFS service.
Step 3: Download TORQUE (tar.gz) file, and uninstall into /usr/local/
cd /usr/local
tar -xvzf torque-2.1.2.tar.gz
cd torque-2.1.2
./configure
make
make install
make packages
./torque.set root
cd /var/spool/torque/server_priv
vi node
#Add node names one per line, for example:
node1
node2
node3
#To start PBS server, execute the command:
pbs_server #starts server
#Other PBS commands
qterm -t quick #shuts down server
pbs_mom #starts pbs client daemon.
pbs_sched #Starts native Scheduler. NOTE this is not required if
you are going to use MAUI.
pbsnodes -a # check node status
Client Node Configuration:
-------------------------
STEP 0: Make the node a NIS and NFS client of the Head node.
STEP 1: Copy these files "torque-package-mom-linux-i686.sh" and
"torque-package-clients-linux-i686.sh" to the clients.
STEP 2:
./torque-package-mom-linux-i686.sh --install
./torque-package-clients-linux-i686.sh --install
STEP 3:
vi /var/spool/torque/mom_priv/config
#Add the following two lines
$pbsserver headnode
$usecp *:/home1 /home1
#here /home1 is the common NFS directory, exported by the headnode.
# The user home directories
sit in this partition.
STEP 4:
Make sure the client host name and the server host names are given
in the /etc/hosts file.
STEP 5: Start the PBS client daemon
pbs_mom
OpenMPI Configuration:
----------------------
In order to make full use of the cluster for distributed computing, you
need to install OpenMPI.
In Server:
cd /usr/local/openmpi.x.x.x/
./configure CC=gcc CXX=g++ F77=g77 FC=gfortran --with-tm=/var/spool/torque --disable-shared --enable-static
The following line needs to be added to the user .bashrc
export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/usr/local/lib/"
In clients:
cd /usr/local/openmpi.x.x.x/
./configure --disable-shared --enable-static
SUBMISSION of JOBS:
------------------
In order to submit a job to the cluster, you have to make use of a "batch script". Essentially , this is a file containing the details of your job, how many
nodes it requires, how much memory, how long it will take, etc.. A sample script can be found here.
Essentially, that's it!!
The part that I have skipped is the automated client
installation. That means you install one "golden" client and using some
software (which I don't deal with here) copy it completely into the other
clients. It can be pretty tricky. So if you have only a few clients, and
just want to get a feel for the clustering, then the shortcut method is to
manually install all the clients!
Back to my Linux Page