Artikel ini dapat digunakan, disalin, dan disebarluaskan. Cukup cantumkan sumber asli. Jika isinya mengandung kebenaran, semoga memberi kebaikan bagi kita yang memanfaatkannya. Jika ada yang salah, mohon kiranya penulis dimaafkan. Dan sangat baik, jika kesalahan tersebut dapat diberitahukan kepada penulis.
Yanmarshus, 18 September 2007, yan[at]daunsalam[dot]net

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 :

Sedangkan pada komputer slave dibuat program PHP yang tugasnya :

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 minatnya nih ;)

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. Itu saja. :)