Tampilkan postingan dengan label GNU/Linux. Tampilkan semua postingan
Tampilkan postingan dengan label GNU/Linux. Tampilkan semua postingan

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

April 20, 2017

Programming Lua part 2

Kemarin saya tulis tentang syntax dasar lua sekarang saya akan menulis tentang pembuatan fungsi pada lua, fungsi adalah subsquence yang kita gunakan untuk mengorganisir squence yang kita buat supaya kita bisa menggunakan squence tersebut tanpa menuliskannya berulang jadi kita tinggal memanggil fungsi tersebut kapanpun kita butuh.

Saya akan mencontohkan membuat fungsi untuk melakukan operasi faktorial dan saya akan menggunakan fungsi rekursif sekalian. Apa itu fungsi rekursif? Fungsi rekursif adalah fungsi yang memanggil dirinya sendiri dalam squencenya.

baiklah kita buat file faktorial.lua ketik aja pada terminal nano faktorial.lua

 #!/usr/bin/env lua5.2  
 function faktorial(x)  
   if x == 0 then  
    return 1;  
   else   
    return x * faktorial(x-1)  
   end  
 end  
 io.write("Masukkan Angka : ");  
 a = io.read("*number");  
 print(faktorial(a));  
 output:  
 Masukkan Angka : 2  
 2  

function faktorial(x) disini kita mendefinisikan faktorial sebagai fungsi dengan parameter x jadi untuk menggunakan fungsi faktorial ini kita harus memasukkan parameter agar fungsi ini berjalan sebagaimana mestinya, if else kita gunakan sebagai suatu percabangan dari kondisi yang dimiliki parameter tersebut misalnya si parameter x tadi bernilai 0 apa yang akan dikerjakan komputer jika fungsi itu 0 maka diperlukan percabangan untuk menentukan action tiap kondisi tersebut nah dalam contoh ini action kita mereturn 1 atau kita memberikan hasilnya kepada si pemanggil dengan nilai 1 kenapa 1 bukan 2,3,4 atau yang lainnya? karena kita mendefinisikan faktorial dimana faktorial 0 adalah 1, nah kalo ternyata si x ini bernilai 2 dan itu tidak memenuhi syarat dari si if yang mensyaratkan harus sama dengan 0 maka masuk ke bagian else nah di else kita membuat action me return si dengan hasil dari x dikalikan dengan faktorial dari x - 1 faktorial disini adalah fungsi yang kita buat jadi bisa dikatakan kita menggunakan fungsi faktorial kenapa musti minus satu kenapa tidak plus 1 karena untuk mencegah itu memanggil fungsi tersebut berulang-ulang tampa berkesudahan tapi kalo kita memasukkan parameter dengan x minus 1 maka dia akan berhenti di if x==0 yang mereturn 1 begitu kira-kira penjelasannya hehe, dalam contoh tersebut return yang kita berikan adalah sebagai berikut 2 kali faktorial(1) kemudian menjadi 2 kali 1 kali faktorial(0) yang pada ahirnya menjadi 2 kali 1 kali 1 = 2.

io.write() adalah fungsi yang digunakan untuk menampilkan kedalam monitor tanpa newline berbeda dengan print yang menyertakan newline
a = io.read("*number"); kita membaca inputan keyboard dan hanya mengambil yang angka  saja kemudian dimasukkan kedalam variabel a kalo kita masukkan huruf maka akan terjadi galat karena tidak ada yang diambil dan variabel a bernilai null aka nil dalam lua sehingga fungsi yang kita buat tidak berfungsi atau terjadi galat
print(faktorial(a)); kita mencetak hasil return dari fungsi faktorial yang kita buat dengan parameter a dimana a merupakan hasil dari inputan keyboard

demikian tulisan saya semoga mudah dipahami.

April 19, 2017

Programming lua part 1

Saya kemarin iseng-iseng nyari tau sesuatu yang bisa saya explore ahirnya saya menemukan lua, dan menurutku bahasa pemrograman lua cukup simple dan gampang dicerna. lua memang sengaja dirancang supaya dinamis, ringan dan ringkas dan yang paling penting tidak memiliki aturan yang ketat.

marilah kita mulai menulis skrip lua kita beri nama hello.lua

 #!/usr/bin/env lua5.2  
 print("Hello, Lua!");  
 -- ini sebuah komen satu baris  
 --[[ ini digunakan untuk membuat komen beberapa baris   
 dan tidak akan ditampilkan. ]] 
output: 
$ chmod +x hello.lua
$ ./hello.lua
Hello, Lua!
$

#!/usr/bin/env lua5.2 lua5.3 merupakan baris yang kita gunakan untuk pemberitahuan ke komputer kita bahwa kita ingin menggunakan intepreter lua5.2, lua5.3 dll bisa juga untuk python, bash dan semua script yang kita buat tapi karena kita membua script lua jadi kita memanggil intepreter lua sedangkan 5.2 atau 5.3 merupakan versi dari lua yang akan kita pake

print() merupakan sebuah fungsi atau method untuk mencetak tulisan kedalam monitor dalam hal ini pada terminal dan sekaligus create newline jika tidak ingin newline maka gunakanlah io.write().

begitulah aku harap dapat dipahami, aku sulit sekali menulis sesuatu yang bisa mudah ditangkap orang, pada part 2 nanti insya allah akan saya tuliskan mengenai pembuatan fungsi pada lua, terima kasih buat yang udah baca.

April 17, 2017

Install Zekr

Karena ALQuran saya dirumah kebanyakan rusak dimakan rayap jadi saya memutuskan utuk menginstall zekr pada armbian xenial xerus yang saya pasang pada Orange pi pc2. Saya memilih zekr karena tampilannya yang sederhana, mudah digunakan dan yang paling penting ada fiturmemutar audio murrotal para qari terkenal di seluruh dunia.

Saya menginstallnya dengan menggunakan sudo apt-get install zekr, kemudian ketika saya coba membuka zekr ternyata terdapat galat dan setelah saya browsing saya menemukan solusi yaitu dengan menginstall libwebkitgtk-1.0-0 maka saya memasang lib tersebut dengan sudo apt-get install libwebkitgtk-1.0-0 tunggu sampai proses instalasi selesai.

Jalankan kembali zekr maka tidak akan ada error lagi dan kita bisa memulai membaca alquuran dan mentadaburinya. Zekr merupakan aplikasi pilihan saya untuk aplikasi alquran karena saya benar-benar cocok dengan zekr.


gimana tertarik mencoba?

April 14, 2017

Armbian Xenial Xerus

Armbian Xenial Xerus merupakan distro ubuntu yang di optimalisasi untuk SBC bisa orange pi, bananapi, odroid, nanopi, pesaingnya yang bagus adalah dietpi raspbian secara default hanya untuk raspberry pi. Armbian xenial xerus menggunakan Desktop Environment XFCE sejauh ini cukup bagus dan menjanjikan.

Armbian Xenial Xerus ini aku pasang pada Orange Pi Pc2 , secara default menyediakan libre office writer tanpa calc dan impress, xterm sebagai default terminal, calculator, mpv media player, armbian monitor, sysbench, browser firefox, python,gcc, gnu assembler.

begitulah armbian xenial xerus yang saya install semua aplikasi yang ada pada armbian xenial xerus merupakan bawaan dari imagenya karena saya mengoperasikan secara offline.

April 11, 2017

Perbandingan Assembly aarch64 dengan arm 32

kemarin saya mencoba iseng membuat program dengan gnu assembler pada aarch64 dengan prosesor allwiner h5, lumayan rumit jika dibandingkan dengan assembly di allwiner h2 atau allwiner h3 berikut ini perbedaannya.

assembly untuk allwiner h2 /h3

 .text   
 .global main  
 main:  
     push {ip, lr}   
     mov r1, #15  
     ldr r0, =text  
     bl printf  
     pop {ip, pc}  
 .data  
 text: .asciz "hello, world %d\n"  

assembly aarch64 untuk allwiner h5

 .text  
 .global main  
 main:  
     stp x29, x30, [sp, -16]!  
     add x29, sp, 0  
     adrp x0,text  
     mov x1, 15  
     add x0, x0, :lo12:text  
     bl printf  
     mov w0, 0  
     ldp x29, x30, [sp], 16  
     ret  
 .data  
 text: .asciz "hello, world %d\n"  

jelas sekali kan arm 32 lebih sedikit daripada aarch64 keduanya menghasilkan output hello, world 15
tapi prosesnya lebih panjang aarc64.
demikianlah hasil iseng saya kemarin nantikan keisengan saya selanjutnya

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...