April 21, 2017

Clustering Orange pi pc2 dan orange pi zero dengan menggunakan dispy

Dispy merupakan framework clustering yang komprehensive dan sejauh ini mudah digunakan. dibuat untuk menjalankan komputasi secara paralel dan lintas multi prosesor dalam satu mesin (SMP), dispy juga baik untuk dipake untuk paradigma SMID.

dispy menggunakan assyncoro framework dalam proses assyncronous dan concurentnya, dispy dibuat menggunakan bahasa pemrograman python, jadi kita bisa menggunakan python untuk membuat program client yang mengakses cpu dari server dalam hal ini orange pi pc2 dan orange pi zero.

saya menggunakan in untuk riset pengetahuan seberapa powerfullkah SBC itu ternyata bagus juga untuk digunakan sebagai alternative pc mungkin baginya ngga punya dana besar pengen membuat superkomputer sbc bisa dijadikan alternatif meskipun tidak seratus persen sama dengan superkomputer tapi setidaknya kita sudah berusaha untuk membuat hal itu hehe malah jadi curhat, untuk informasi lebih lanjut soal dispy baca disini

sekarang kita unduh dan install terlebih dahulu dispy supaya bisa digunakan hehe, jika belum memiliki pip pasang terlebih dahulu pip dengan sudo apt install pip di armbian xenial xerus(ubuntu) / armbian jessie(debian) setelah itu install dispy dengan mengetikkan sudo pip install dispy.

setelah semuanya terinstall ketikkan ini pada sbc anda dispynode.py -i 192.168.43.115 (orange pi pc2) dan dispynode.py -i 192.168.43.56 (orange pi zero), 192.168.43.xxx merupakan ip sbc anda tulis sesuai ip sbc anda masing-masing hasilnya seperti digambar
sekarang pada client kita atau device lain yang kita gunakan untuk menjalankan program python karena saya menggunakan program python hehe, saya menggunakan thinkpad t420 sebagai client mari kita mulai ngoding

 import random, dispy  
 def compute(n):  
   import time, socket, random, math  
   name = socket.gethostname()  
   a, b = 0, 1  
   for i in range(0,n):  
    a, b= b, a + b  
   return (name, a)  
 if __name__ == '__main__':  
   cluster = dispy.JobCluster(compute, nodes=["192.168.43.56","192.168.43.115"], ip_addr="192.168.43.161")  
   jobs= []  
   for n in range(0,15):  
    job = cluster.submit(n)  
    if job is None:  
      print( 'creating job %s failed'% n )  
      continue  
    job.id = n  
    jobs.append(job)  
   cluster.wait()  
   for job in jobs:  
    if job.status == dispy.DispyJob.Finished:  
      print('%s compute: deret fibonacci ke-%s %s'% (job.result[0], job.id, job.result[1]))  
    else:  
      print(job.exception)  
   cluster.print_status()  
   cluster.close()  

untuk ip_addr="" isi dengan ip client yang kamu gunakan untuk membuat source code itu ip berapa hehe dalam nodes itu isi dengan ip sbcmu
hasilnya kurang lebih seperti gambar ini
jalankan source code yang kita namakan fibonacci.py dengan python fibonacci.py, dan liat lah hasilnya hehe semoga bermanfaat.

NB: untuk penjelasan source code nantikan aja ya kelanjutannya

Tidak ada komentar:

mencoba menggunakan zram di raspberry pi

saya beberapa hari yang lalu mencoba mengaktifkan zram untuk membuat cadangan jika ram udah hampir penuh untuk dipindah ke zram, sejauh ini...