DEV Community

Cover image for Membuat Cluster MPI
Rahmat
Rahmat

Posted on

Membuat Cluster MPI

Halo๐Ÿ‘‹๐Ÿผ
Artikel ini akan membahas bagaimana cara membuat MPI cluster dengan langkah-langkah yang disajikan. Tutorial ini menggunakan Ubuntu 22.04 sebagai operating system yang digunakan.

0. Sebelum Bekerja

  • Siapkan beberapa komputer. Tentukan satu komputer untuk master dan beberapa komputer untuk worker.

  • Pastikan seluruh komputer terhubung dalam satu jaringan (misalnya: terhubung dengan Wifi yang sama).

  • Update dan upgrade package sudo apt update && sudo apt upgrade.

  • Install beberapa package sebagai utilitas, yaitu net-tools dan vim (opsional).

sudo apt install net-tools vim
Enter fullscreen mode Exit fullscreen mode
  • Untuk memeriksa IP komputer, gunakan perintah ifconfig.

1. Konfigurasi File /etc/hosts

1.1 Untuk Master

Buka file /etc/hosts melalui vim (atau vi, nano, yang lainnya). Tambahkan beberapa IP dan aliasnya dari masing-masing komputer. Berikut contohnya.

192.168.1.100 master
192.168.1.200 worker1
192.168.1.300 worker2
Enter fullscreen mode Exit fullscreen mode

1.2 Untuk Worker

Sama seperti pada master, tambahkan IP dan aliasnya, namun hanya IP master dan IP komputer itu sendiri.

192.168.1.100 master
192.168.1.200 worker1
Enter fullscreen mode Exit fullscreen mode

2. Buat User Baru

2.1 Buat User

Lakukan di Master dan Worker

Buat user baru dengan nama yang sama di masing-masing komputer. Saya menamakannya mpiuser.

sudo adduser mpiuser
Enter fullscreen mode Exit fullscreen mode

2.2 Beri Akses Root

Lakukan di Master dan Worker

sudo usermod -aG mpiuser
Enter fullscreen mode Exit fullscreen mode

2.3 Masuk ke User yang Telah Dibuat

Lakukan di Master dan Worker

su - mpiuser
Enter fullscreen mode Exit fullscreen mode

3. Konfigurasi SSH

Lakukan konfigurasi SSH setelah masuk ke user yang telah dibuat sebelumnya.

3.1 Install SSH

Lakukan di Master dan Worker

sudo apt install openssh-server
Enter fullscreen mode Exit fullscreen mode

Anda dapat menghubungkan komputer dengan SSH.

ssh <nama user>@<host>
# Misal: ssh mpiuser@worker1
Enter fullscreen mode Exit fullscreen mode

3.2 Buat Key

Lakukan di Master

Ketik perintah di bawah.

ssh-keygen -t rsa
Enter fullscreen mode Exit fullscreen mode

Anda akan diminta memasukkan beberapa input, lewati semuanya.

SSH key akan disimpan di direktori ~/.ssh dalam bentuk id_rsa (privasi) dan id_rsa.pub (publik).

3.3 Salin Key Publik ke Worker

Lakukan di Master

Key publik perlu disalin ke masing-masing worker dan disimpan ke dalam file auhorized_keys. Hal ini dapat dilakukan di master dengan bantuan SSH.

cd ~/.ssh
cat id_rsa.pub | ssh <nama user>@<host> "mkdir .ssh; cat >> .ssh/authorized_keys"
Enter fullscreen mode Exit fullscreen mode

Ganti <nama user> dengan nama user dan <host> dengan worker. Lakukan perintah ini ke seluruh worker.

File authorized_keys akan muncul di direktori ~/.ssh.

4. Konfigurasi NFS

4.1 Buat Shared Folder

Lakukan di Master dan Worker

Buat folder dengan nama bebas, misalnya cloud. Disarankan untuk meletakkannya di direktori ~/ atau ~/Desktop.

mkdir ~/cloud
Enter fullscreen mode Exit fullscreen mode

4.2 Install NFS Server

Lakukan di Master

sudo apt install nfs-kernel-server
Enter fullscreen mode Exit fullscreen mode

4.3 Konfigurasi File /etc/exports

Lakukan di Master

Buka file /etc/exports dengan vim sudo vim /etc/exports (atau dengan text editor yang lainnya).

Tambahkan baris berkut.

<shared folder> *(rw,sync,no_root_squash,no_subtree_check)
# Misal: /home/mpiuser/cloud *(rw,sync,no_root_squash,no_subtree_check)
Enter fullscreen mode Exit fullscreen mode

Selanjutnya jalankan perintah berikut.

sudo exportfs -a
sudo systemctl restart nfs-kernel-server
Enter fullscreen mode Exit fullscreen mode

4.4 Install NFS Client

Lakukan di Worker

sudo apt install nfs-common
Enter fullscreen mode Exit fullscreen mode

4.5 Mount Folder

Lakukan di Worker

sudo mount <server host>:<shared folder di server> <shared folder di client>
# Misal: sudo mount master:/home/mpiuser/cloud /home/mpiuser/cloud
Enter fullscreen mode Exit fullscreen mode

Lakukan percobaan pembuatan file/folder di shared folder di salah satu komputer. File/folder tersebut seharusnya akan muncul di masing-masing komputer di folder yang sama.

5. MPI

5.1 Install MPI

Lakukan di Master dan Worker

sudo apt install openmpi-bin libopenmpi-dev
Enter fullscreen mode Exit fullscreen mode

5.2 Install Library mpi4py

Lakukan di Master dan Worker

Install mpi4py dengan pip. Install package python3-pip jika belum memiliki pip.

sudo apt install python3-pip
pip install mpi4py
Enter fullscreen mode Exit fullscreen mode

5.3 Testing MPI

Lakukan di Master

Buat dan edit file test.py di shared folder (cloud).

vim ~/cloud/test.py
Enter fullscreen mode Exit fullscreen mode

Tabahkan baris berikut.

from mpi4py import MPI
comm = MPI.COMM_WORLD
size = comm.Get_size()
worker = comm.Get_rank()
print("Hello world from worker", str(worker), "of", str(size))
Enter fullscreen mode Exit fullscreen mode

Jalankan file test.py dengan MPI.

mpirun -np <jumlah prosesor> -host <daftar host> python3 test.py
# Misal: mpirun -np 3 -host master,worker1,worker2 python3 test.py
Enter fullscreen mode Exit fullscreen mode

Output:

Hello world from worker 1 of 4
Hello world from worker 2 of 4
Hello world from worker 0 of 4
Enter fullscreen mode Exit fullscreen mode

Referensi

Tutorial untuk mpi4py bisa akses https://mpi4py.readthedocs.io/en/stable/tutorial.html

Referensi lebih lanjut:

Top comments (0)