PARALLEL
PROCESSING
Pengertian
Pemrosesan paralel
(parallel processing)
adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara
simultan. Idealnya, parallel processing membuat program berjalan lebih cepat karena semakin
banyak CPU yang digunakan. Tetapi dalam praktek,seringkali
sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda
tanpa berkaitan di antaranya.
Komputasi parallel adalah salah satu teknik melakukan komputasi secara
bersamaan denganmemanfaatkan beberapa komputer secara bersamaan.
Biasanyadiperlukan saat kapasitas yangdiperlukan sangat besar, baik karena
harus mengolah data dalam jumlah besar ataupun karenatuntutan proses komputasi
yang banyak. Untuk melakukan aneka jenis komputasi paralel inidiperlukan
infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkandengan
jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah.
Untuk itudiperlukan aneka perangkat lunak
pendukung yang biasa disebut sebagai Middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin paralel.
Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan
komputasi.
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 paraleladalah untuk meningkatkan
performa komputasi. Semakin banyak hal yang bisa dilakukan
secara bersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang
bisa diselesaikan.Komputasi paralel membutuhkan:· algoritma· bahasa
pemrograman· compiler Sebagai besar
komputer hanya mempunyai satu CPU, namun ada yang mempunyai lebih darisatu. Bahkan juga ada komputer dengan
ribuan CPU. Komputer dengan satu CPU dapatmelakukan
parallel processing dengan menghubungkannya dengan komputer lain pada jaringan. Namun, parallel processing ini memerlukan software
canggih yang disebut distributed processing software.Parallel processing berbeda dengan multitasking,
yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel
processing disebut juga parallel computing.
Contoh struktur pengiriman
permintaan dan jawaban dari parallel processing
Aristektur Komputer Parallel
Taksonomi Flynndan model pemrosesan parallel
Keempat kelompok komputer tersebut
adalah :
1. Komputer
SISD (Single Instruction stream-Single Data stream)
Pada komputer
jenis ini semua instruksi dikerjakan terurut satu demi satu, tetapi jugadimungkinkan adanya overlapping dalam
eksekusi setiap bagian instruksi (pipelining ). Padaumumnya komputer SISD berupa komputer yang
terdiri atas satu buah pemroses (single processor ). Namun komputer SISD juga mungkin memiliki lebih
dari satu unit fungsional(modul
memori, unit pemroses, dan lain-lain), selama seluruh unit fungsional tersebut
beradadalam kendali sebuah unit pengendali. Skema arsitektur global
komputer SISD dapat dilihat padagambar .1 (a).
2. Komputer
SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih
dari satu elemen pemrosesan yang dikendalikan oleh sebuahunit pengendali yang sama. Seluruh elemen
pemrosesan menerima dan menjalankan instruksiyang sama yang dikirimkan
unit pengendali, namun melakukan operasi terhadap himpunan datayang berbeda
yang berasal dari aliran data yang berbeda pula. Skema arsitektur global
komputer SIMD dapat dilihat pada gambar .1 (b).
3. Komputer
MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis
ini memilikiunit pemroses yang masing-masing menerima danmengoperasikan instruksi yang berbeda terhadap aliran data
yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang
berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer
jenis ini kecuali dalam bentuk prototipe untuk penelitian. Skema
arsitektur global komputer MISD dapat dilihat padagambar .1 (c).
4. Komputer
MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni
terdapat interaksi di antara pemroses. Hal ini disebabkanseluruh aliran dari dan ke memori berasal dari
space data yang sama bagi semua
pemroses.Komputer MIMD bersifat tightly
coupled jika tingkat interaksi
antara pemroses tinggi dandisebut loosely coupled jika tingkat
interaksi antara pemroses rendah
Paralel prosessing komputasi
adalah proses atau pekerjaan komputasi di komputer denganmemakai suatu bahasa pemrograman
yang dijalankan secara paralel pada saat bersamaan. Secara umum komputasi paralel diperlukan untuk
meningkatkan kecepatan komputasi biladibandingkan dengan pemakaian
komputasi pada komputer tunggal
Berikut
ini adalah gambar perbedaan antara komputasi tunggal dengan parallel komputasi
:
a)Komputasi Tunggal / serial
b)Komputasi Paralel
Message Passing
Interface (MPI).
MPI adalah
sebuah standard pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat dijalankan secara paralel. Proses
yang dijalankan oleh sebuah aplikasidapat
dibagi untuk dikirimkan ke masing - masing compute node yang kemudian masing -masing compute node tersebut mengolah dan
mengembalikan hasilnya ke komputer head node.Untuk merancang aplikasi paralel
tentu membutuhkan banyak pertimbangan - pertimbangandiantaranya adalah
latensi dari jaringan dan lama sebuah tugas dieksekusi oleh prosesor.
MPI ini merupakan standard yang
dikembangkan untuk membuat aplikasi pengirim pesan secara portable. Sebuah
komputasi paralel terdiri dari sejumlah proses, dimana masing-masing bekerja pada beberapa data lokal. Setiap proses
mempunyai variabel lokal, dan tidak ada mekanismesuatu proses yang bisa mengakses
secara langsung memori yang lain. Pembagian data antar proses
dilakukan dengan message passing, yaitu dengan mengirim dan menerima pesan
antar proses.MPI menyediakan fungsi-fungsi untuk menukarkan
antar pesan. Kegunaan MPI yang lain adalah1. menulis kode paralel secara
portable,2. mendapatkan performa yang tinggi dalam pemrograman paralel, dan3.
menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis
yang tidak begitu cocok dengan model data paralel.
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 mesinvirtual masing-masing komputer.
Mesin virtual akan dibuat, ketika User mengeksekusi aplikasiPVM. PVM dapat dieksekusi melalui prompt UNIX
disemua host. Bagian kedua adalah libraryinterface rutin yang mempunyai banyak fungsi untuk komunikasi antar task
. Library ini berisikan rutin
yang dapat dipanggil untuk pengiriman pesan, membuat proses baru, koordinasitask
dan konfigurasi mesin virtual.Salah aturan
main yang penting dalam PVM adalah adanya mekanisme program master
danslave/worker. Programmer harus membuat Kode master yang menjadi koordinator
proses danKode 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-masingkomputer. Jika arsitektur komputer untuk komputasi
paralel semua sama, (misalnya pentium 4 semua), maka program cukup
dikompilasi pada satu komputer saja. Selanjutnya hasil kompilasididistribusikan 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 kefilesystem semua komputer. Akses kefile system dilakukan melalui
protokol rsh yang berjalan diunix 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 padakomputer C1, C2,C3 dan C4,
maka hostfile ini boleh tidak ada. Hostfile ini dapat digunakan bilanama 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
dankemudian melahirkan proses lain. PVM
memanggil rutin pvm_spawn() untuk melahirkan satuatau dua proses lebih yang
sama. Fungsi-fungsi untuk PVM versi bahasa C mempunyai rutinawalan pvm.
Pengiriman dan penerimaan task diidentifikasi dengan TID (Task Identifier). TIDini bersifat unik dan digenerate oleh pvmd lokal.
PVM berisi beberapa rutine yangmengembalikan nilai TID sehingga aplikasi
user dapat mengidentifikasi task lain disistem.
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.
http://en.wikipedia.org/wiki/Parallel_computing
http://nanxkurniawan.wordpress.com/2010/05/25/komputasi-paralel/
http://ajuarna.staff.gunadarma.ac.id/Downloads/files/9254/ArtikelEpilog.pdf
Tidak ada komentar:
Posting Komentar