Membuat Cluster RapsberryPi dengan OpenMPI

Standard

English version : click here

RaspberryPi versi 2 kini sudah cukup powerful. Quad-core 900 MHz, 1 GB RAM, dan bisa berjalan dengan power supply 1A 5V saja. Maka saya membeli 4 buah RaspberryPi (RPI) ini, dan membuat cluster berbasis OpenMPI : http://www.open-mpi.org/. Di luar dugaan saya, ternyata ini mudah sekali dilakukan 🙂

Nampaknya sudah tiba saatnya dimana kita bisa memanfaatkan RaspberryPi, dan komputer hemat energi lainnya, sebagai server. Dan lalu dimanfaatkan seperti superkomputer, dengan membuat cluster dari komputer-komputer ini. 🙂 (y)

Sekilas tentang OpenMPI, software ini bisa dipergunakan oleh software lainnya untuk menyebarkan beban kerjanya ke banyak komputer. Jadi, OpenMPI bertindak sebagai semacam koordinator. Dalam riset ini, saya akan menggunakan OpenMPI untuk menyebarkan beban kerja kompresi, yaitu dari software mpibzip2.

Silakan ikuti panduan berikut ini :


# ==========
# EXECUTE ON ALL RPI

### config
# GreenPi-1 = 192.168.1.171 = master
# GreenPi-2 = 192.168.1.172 = slave
# GreenPi-3 = 192.168.1.173 = slave
# GreenPi-4 = 192.168.1.174 = slave

# Standard tools
apt-get install screen mosh telnet htop iftop ethtool
# OpenMPI related
apt-get install openmpi-bin build-essential libbz2-dev libopenmpi-dev ssfs
# create SSH keys,
# then copy GreenPi-1’s key to all /root/.ssh/authorized_keys
# and all GreenPi keys to GreenPi-1 /root/.ssh/authorized_keys
ssh-keygen -t rsa -b 4096

# some preparations
mkdir /tmp1
export http_proxy=”http://192.168.1.10:3128/”

# Install OpenMPI
cd /tmp
wget http://compression.ca/mpibzip2/mpibzip2-0.6.tar.gz
tar xzvf mpibzip2-0.6.tar.gz
cd mpibzip2-0.6
# Need to edit Makefile
vi Makefile
## make sure the line with CC=c++ is changed into
# CC=mpic++
# Otherwise, we’ll get the following error message :
# mpibzip2.cpp:72:17: fatal error: mpi.h: No such file or directory

make
make install

#==========
#EXECUTE ON GreenPi-1

# Prepare the logfile to be compressed
mkdir /tmp1
cp /var/log/syslog /tmp1/

### Now do SSH from slaves to GreenPi-1 / 192.168.1.171,
### and say “yes” when asked to save its RSA fingerprint

### Then, do SSH from GreenPi-1 to all slaves,
### and say “yes” when asked to save its RSA fingerprint

# Then you can do the following,
# create SSHFS mount to GreenPi-1 on all slaves
ssh root@192.168.1.172 sshfs root@192.168.1.171:/tmp1//tmp1
ssh root@192.168.1.173 sshfs root@192.168.1.171:/tmp1//tmp1
ssh root@192.168.1.174 sshfs root@192.168.1.171:/tmp1//tmp1

### Test OpenMPI locally
### Yes, OpenMPI can be run on a single computer too,
### very handy for testing purposes
mpirun -v -n 4 mpibzip2 /tmp1/syslog

### Put all slaves IP address
echo “192.168.1.172” >> /etc/openmpi/openmpi-default-hostfile
echo “192.168.1.173” >> /etc/openmpi/openmpi-default-hostfile
echo “192.168.1.174” >> /etc/openmpi/openmpi-default-hostfile

###  Run mpibzip2 on ALL slaves
mpirun -v -n 16 –hostfile /etc/openmpi/openmpi-default-hostfile /usr/bin/mpibzip2 -v  /tmp1/syslog

# =================

Ini hasil yang saya dapatkan :
RaspberryPi 4-core = 643 detik
RaspberryPi 16-core = 163 detik

Penambahan kecepatannya nyaris linear 🙂 4x lipat lebih cepat. Bagus sekali.

Demikian, saya akan lanjutkan lagi dengan berbagai cara lainnya untuk memanfaatkan cluster RaspberryPi ini 🙂
Semoga bermanfaat.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s