GNU Parallel ( Sebuah Uji Coba )

Anggaplah saya memiliki sebuah tugas yang mendesak dan harus diselesaikan dengan cepat, untuk mengumpulkan data klimatologi, data yang harus saya kumpulkan tentunya relatif banyak meskipun ukuran data dari sumber sebenarnya relatif kecil, tetapi secara akumulatif data tersebut biasanya menjadi besar. sebagai seorang pemulung professional saya harus menemukan metoda yang paling efisien untuk menyelesaikan pekerjaan tersebut.

Semalaman kemarin saya membaca sebuah manual mengenai suatu perangkat lunak yang memungkinkan kita mendistribusikan pekerjaan yang mungkin dikerjakan secara parallel baik dalam satu komputer ataupun lebih, di http://www.gnu.org/software/parallel/man.html. dari pemaparan dalam manual tersebut meyakinkan saya bahwa inilah perangkat yang saya cari.

Penggunaan dasarnya tidak terlalu sulit, jika kita terbiasa menggunakan xargs ataupun tee, bahkan sebagai panduan awal penulis manual memberikan panduan berupa video. panduan tersebut cukup membantu dalam proses perkenalan saya dengan perangkat lunak ini.

akhirnya sebagai uji coba saya melakukan pengunduhan file yang berlokasi di ftp://disc2.nascom.nasa.gov/data/TRMM/VIRS_Fire/data/ saya kurang paham data apa yang ada disana namun yang jelas data-data tersebut memenuhi syarat sebagai sarana ujicoba saya yaitu jumlah file tidak terlalu banyak (150 file) dengan besar sekitar (3 MB). kemudian saya mempersiapkan duabuah lingkungan ujicoba yang didalamnya terpasang Sistem operasi Linux, lynx, dan Gnu Parallel sebuah lingkungan menggunakan  distro Ubuntu natty dual core processor, sistem kedua menggunakan distro Blankon Ombilin

Instalasi lynx dapat dilakukan dengan “$sudo apt-get install lynx” sedangkan untuk instalasi GNU Parallel karena didalam repositori tidak tersedia maka lakukan unduh dan kompilasi manual. setelah semua terpasang dengan baik, kemudian saya melakukan konfigurasi layanan ssh supaya kedua mesin saya dapat berkomunikasi dengan mudah, karena percobaan yang akan saya lakukan kali ini akan mendistribusikan pekerjaan mirror data kepada dua komputer. selanjutnya saya membuat one line script sebagai berikut :

lynx -listonly -dump ftp://disc2.nascom.nasa.gov/data/TRMM/VIRS_Fire/data/ | egrep -o “ftp(.)*” | parallel -j+0  –sshlogin Ombilin,: –trc VIRS_Fire/data/ wget -nH –cut-dirs=2 -m {} \;

skrip ini di eksekusi di lingkungan Ubuntu natty dan Blankon Ombilin sebagai slave, menurut manual operasi seperti ini dapat dilakukan di banyak server, akan saya coba berikutnya.

Penjelasan dari proses yang terjadi kurang lebih adalah :

  1. lynx akan mengambil daftar berkas yang akan di unduh
  2. kemudian karena daftar yang dihasilkan oleh lynx belum bersih maka dilakukan penyaringan dengan egrep dan regular expression
  3. setelah itu data keluaran akan di parsing untuk dilakukan pengunduhan secara parallel dengan memanfaatkan sebanyak mungkin proses yang mungkin dibuat (-j+0) , di server lokal dan server Ombilin, perintah dikirimkan ke server ombilin adalah perintah pengunduhan dengan metode mirroring ( “ wget -nH –cut-dirs=2 -m {} \;” ), apabila pengunduhan telah selesai maka data yang dikerjakan di server Ombilin yang berlokasi di (“VIRS_Fire/data/”) akan dikirimkan kembali ke server lokal dan kemudian data dalam direktori tersebut di server ombilin akan dibersihkan.
  4. dan pada akhirnya data terkumpul seluruhnya di server lokal

Happy Hacking, 😀

Iklan

2 thoughts on “GNU Parallel ( Sebuah Uji Coba )

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s