Tag Archives: EXECUTE

GreenICT : Membuat Cluster RapsberryPi dengan OpenMPI

:: 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 : 
# pibzip2.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.

Post imported by Google+Blog for WordPress.