Tugas PKM 3 -- Komputasi dan Paralel Processing


Komputasi Paralel

Secara umum ilmu komputasi merupakan ilmu yang mempunyai perhatian pada penyusunan model matematika dan teknik penyelesaian numeric serta penggunaan komputer untuk menganalisis dan dalam memecahkan suatu masalah. Komputasi merupakan suatu penyelesaian masalah terhadap data input (sebuah masukan yang berasal dari luar lingungan sistem dalam berbagai bidang pekerjaan
Komputasi Paralel merupakan suatu teknik untuk melakukan komputasi secara bersamaan menggunakan komputer sebagai alat pemrosesannya. Elemen eleman dalam sebuah sistem komputer yaitu terdiri dari hardware, software dan user sebagai pengolahnya, Komputasi parallel tentunya memerlukan sebuah sistem komputer yang handal untuk mendukung kerja dari sebuah proses parallel dalam komputer. Infrastruktur komputer pada komputasi parallel terhubung oleh jaringan, yang menhubungkan satu komputer dengan komputer lainnya.

Paralel Processing

Parallel Processing atau pemrograman paralel merupakan suatu program yang dijalankan secara simultan dengan penggunaan lebih dari satu CPU. Idealnya, parallel processing dapat membuat program berjalan lebih cepat karena banyaknya CPU yang digunakan.


Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Dikenal dua hukum yang berlaku dalam sebuah parallel processing. yaitu:     

1.      Hukum Amdahl dinyatakan bahwa Peningkatan kecepatan secara paralel akan menjadi linear yaitu dapat melipat gandakan kemampuan proses sebuah komputer dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan masalah.
2.      Hukum Gustafson dinyatakan bahwa sebuah komputasi paralel berjalan dengan menggunakan dua atau lebih mesin untuk mempercepat penyelesaian masalah dengan memperhatikan faktor eksternal, seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan. Jadi pendapat yang dikemukakan Gustafson hampir sama dengan Amdahl. Dibawah ini adalah  gambar sebuah contoh  komputasi parallel terdistribusi.

Hubungan antara Komputasi Modern dengan Parallel Processing
Hubungan antara komputasi modern dan parallel processing sangat berkaitan, karena penggunaan komputer saat ini atau komputasi dianggap lebih cepat dibandingkan dengan penyelesaian masalah secara manual. Dengan begitu peningkatan kinerja atau proses komputasi semakin diterapkan, dan salah satu caranya adalah dengan meningkatkan kecepatan perangkat keras. Dimana komponen utama dalam perangkat keras komputer adalah processor. Sedangkan parallel processing adalah penggunaan beberapa processor (multiprocessor atau arsitektur komputer dengan banyak processor) agar kinerja komputer semakin cepat.

Contoh Penerapan Komputasi Modern
PVM (Parallel Virtual Machine) adalah paket software yang mendukung pengiriman pesan untuk komputasi parallel antar komputer. PVM dapat berjalan diberbagai macam variasi UNIX atau pun windows dan telah portable untuk banyak arsitektur seperti PC, workstation, multiprocessor dan superkomputer.
Sistem PVM terbagi menjadi dua. Pertama adalah daemon, pvmd, yang berjalan pada mesin virtual masing-masing komputer. Mesin virtual akan dibuat,  ketika User mengeksekusi aplikasi PVM. PVM dapat dieksekusi melalui prompt UNIX disemua host. Bagian kedua adalah library interface rutin yang mempunyai banyak fungsi untuk komunikasi antar task . Library ini berisikan rutin yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasi task dan konfigurasi mesin virtual.
Salah aturan main yang penting dalam PVM adalah adanya mekanisme program master dan slave/worker. Programmer harus membuat Kode master yang menjadi koordinator proses dan Kode slave yang menerima, menjalankan, dan mengembalikan hasil proses ke komputer master. Kode master dieksekusi paling awal dan kemudian melahirkan proses lain dari kode master. Masing-masing program ditulis menggunakan C atau Fortran dan dikompilasi dimasing-masing komputer. Jika arsitektur komputer untuk komputasi paralel semua sama, (misalnya pentium 4  semua), maka program cukup dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasi didistribusikan kekomputer lain yang akan menjadi node komputasi parallel. Program master hanya berada pada satu node sedangkan program slave berada pada semua node.
Komunikasi dapat berlangsung bila masing-masing komputer mempunyai hak akses ke filesystem semua komputer. Akses kefile system dilakukan melalui protokol rsh yang berjalan di unix atau windows. Berikut adalah langkah pengaturan pada masing-masing komputer :
1.   Buat file hostfile yang berisi daftar node komputer dan nama user yang akan dipakai untuk komputasi parallel. Bila nama user pada semua komputer sama misalnya nama user riset pada komputer C1, C2,C3 dan C4, maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bila nama user di masing-masing komputer berbeda.
2.   Daftarkan IP masing-masing komputer pada file /etc/hosts/hosts.allow dan /etc/hosts/hosts.equiv.
3.   Penambahan dan penghapusan host secara dinamis dapat dilakukan melalui konsole PVM. Bila IP tidak didefinisikan pada hostfile¸ cara ini dapat digunakan.
Program PVM terdiri dari master dan slave, dimana program master dieksekusi paling awal dan kemudian melahirkan proses lain. PVM memanggil rutin pvm_spawn() untuk melahirkan satu atau dua proses lebih yang sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutin awalan pvm. Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TID ini bersifat unik dan digenerate oleh pvmd lokal. PVM berisi beberapa rutine yang mengembalikan nilai TID sehingga aplikasi user dapat mengidentifikasi task lain disistem.

Program PVM

Secara umum, langkah implementasi komputasi parallel sebagai berikut :
1.      Jalankan PVM daemon pada setiap mesin dalam cluster
2.      Jalankan program master pada master daemon
3.      Master daemon akan menjalankan proses slave.


Sumber:
https://www.scribd.com/doc/32982265/Parallel-Processing
http://srifitri07.blogspot.co.id/2014/06/hubungan-komputasi-modern-dengan.html
http://blog.ub.ac.id/fauziahmayasari/2012/07/25/implementasi-parallel-processing/

Komentar