Sabtu, 17 April 2010

Komputasi Parallel dengan PHP

Tulisan ini adalah uraian tentang sebuah konsep. Belum ada pembuktian. Pada beberapa tulisan lain yang berkaitan dengan PHP biasanya saya menyertakan kode program, kali ini untuk sementara tidak ada. Mudah-mudahan ada kesempatan untuk mencobanya dengan program yang bisa berjalan dan berguna tentu saja.
Bagi yang pernah mempelajari dan membuat program dengan model parallel, kemungkinan besar pernah menggunakan PVM (Parallel Virtual Machine) atau MPI (Message Passing Interface). Dua software/library tersebut cukup luas digunakan dalam komputasi parallel, dan memang didesain untuk keperluan komputasi parallel. Sedangkan PHP, yang sangat terkenal dalam dunia aplikasi web, apakah mungkin dimanfaatkan untuk model komputasi seperti itu? Gagasan ini tampaknya bisa.
Mari kita lihat sebuah diagram sederhana berikut ini


Komputasi parallel yang akan dilakukan menggunakan model master-slave. Ada satu buah komputer yang bertindak sebagai master, yang akan membagi pekerjaan pada sejumlah komputer slave. Setelah pekerjaan dibagi, komputer slave memprosesnya, lalu hasilnya dikembalikan pada komputer master.
Masing-masing komputer tersebut diinstal dengan PHP, beserta webserver, misalnya Apache. Library cURL untuk PHP juga diperlukan untuk proses pengiriman data antar komputer. Untuk cara yang sederhana, pada komputer master kita buat sebuah program PHP yang tugasnya adalah :
  • menerima upload data (dari user) yang akan diproses secara parallel
  • setelah data diterima, data tersebut dibagi ke sejumlah komputer slave
  • menerima data yang sudah dikerjakan oleh komputer slave
Sedangkan pada komputer slave dibuat program PHP yang tugasnya :
  • menerima data dari komputer master
  • melakukan pengolahan data yang diterima dari master
  • mengirim data yang sudah diproses ke komputer master
Dengan cara di atas, kita perlu membuat kode program PHP yang berguna untuk memproses data, lalu memasangnya pada semua komputer slave. Tentu hal ini agak merepotkan juga, jika ada proses kalkulasi baru, perlu memasang lagi ke semua komputer slave. Bagaimana kalau dibuat sebuah framework untuk keperluan ini. Aha, kalau ada kata framework ini tampaknya para penggemar PHP agak meningkat.


Daripada setiap kali ada sebuah proses kalkulasi yang baru harus memasang programnya ke komputer slave, tampaknya bisa dengan melakukan upload satu kali ke komputer master. Kode program yang diperlukan untuk memproses data diupload ke komputer master, kemudian komputer master yang akan mengirim kode program tersebut ke semua komputer slave untuk dieksekusi bersama dengan data yang juga diberikan oleh komputer master.

Dengan membuat sebuah framework yang sederhana seperti di atas, maka kita cukup instal sekali framework ini untuk master dan semua slave. Lalu sistem ini sudah siap menerima program untuk melakukan proses kalkulasi data secara parallel.
Dalam konsep ini, semua komputer ada dalam sebuah LAN, dan masih dalam bentuk sangat sederhana. Belum mempertimbangkan masalah kecepatan, skalabilitas, reliabilitas, keamanan, atau hal "rumit" lainnya. Yang penting dengan PHP bisa melakukan komputasi parallel.

sumber : http://daunsalam.net/artikel/parallelphp.htm

Tidak ada komentar:

Posting Komentar