Apa itu Parallel Computation dan bagaimana konsepnya
?
Parallel computation
adalah salah satu pemrograman komputer yang memungkinkan untuk melakukan
eksekusi perintah secara bersamaan dan berbarengan dalam satu ataupun banyak
prosesor di dalam sebuah CPU. Parallel computation sendiri berguna untuk
meningkatkan performa komputer karena semakin banyak proses yang bisa
dikerjakan secara bersamaan maka akan makin cepat.
Komputasi paralel
biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar (
di industri keuangan, bioinformatika, dll ) atau dalam memenuhi proses
komputasi yang sangat banyak. Selanjutnya, komputasi paralel ini juga dapat
ditemui dalam kasus kalkulasi numerik dalam penyelesaian persamaan matematis di
bidang fisika ( fisika komputasi ), kimia ( kimia komputasi ), dll. Dalam menyelesaikan
suatu masalah, komputasi paralel memerlukan infrastruktur mesin paralel yang
terdiri dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja
secara paralel.
Konsep paralel adalah
sebuah kemampuan prosesor untuk melakukan sebuah tugas ataupun banyak tugas
secara simultan ataupun bersamaan, dengan kata lain prosesor mampu melakukan
satu ataupun banyak tugas dalam satu waktu.
Untuk melakukan aneka
jenis komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri
dari banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel untuk menyelesaikan satu masalah. Untuk itu diperlukan 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. Tidak
berarti dengan mesin paralel semua program yang dijalankan diatasnya otomatis
akan diolah secara parallel.
Apa
itu pemrograman Paralel ?
Pemrograman paralel adalah teknik pemrograman
komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan
(komputasi paralel), baik dalam komputer dengan satu (prosesor tunggal) ataupun
banyak (prosesor ganda dengan mesin paralel) CPU. Bila komputer yang digunakan
secara bersamaan tersebut dilakukan oleh komputer-komputer terpisah yang
terhubung dalam suatu jaringan komputer lebih sering istilah yang digunakan
adalah sistem terdistribusi (distributed computing).
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. Analogi yang paling gampang
adalah, bila anda dapat merebus air sambil memotong-motong bawang saat anda
akan memasak, waktu yang anda butuhkan akan lebih sedikit dibandingkan bila
anda mengerjakan hal tersebut secara berurutan (serial). Atau waktu yg anda
butuhkan memotong bawang akan lebih sedikit jika anda kerjakan berdua.
Performa dalam
pemrograman paralel diukur dari berapa banyak peningkatan kecepatan (speed up)
yang diperoleh dalam menggunakan tehnik paralel. Secara informal, bila anda
memotong bawang sendirian membutuhkan waktu 1 jam dan dengan bantuan teman,
berdua anda bisa melakukannya dalam 1/2 jam maka anda memperoleh peningkatan
kecepatan sebanyak 2 kali.
Parallel processing
berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program
sekaligus. Parallel processing disebut juga parallel computing. Pada system komputasi
parallel terdiri dari beberapa unit prosesor dan beberapa unit memori. Ada dua
teknik yang berbeda untuk mengakses data di unit memori, yaitu shared memory
address dan message passing. Berdasarkan cara mengorganisasikan memori ini
computer parallel dibedakan menjadi shared memory parallel machine dan
distributed memory parallel machine.
Paradigma
Komputasi Paralel
Taksonomi
Komputasi Parallel oleh T.G Lewis membagi 2 klasifikasi yaitu synchronous dan
asynchrounous. M.J Flynn menciptakan satu diantara sistem klasifikasi untuk
komputer dan program parallel, yang dikenal dengan Taksonomi Flynn.Beliau
membagi komputer dalam 4 model, yaitu :
SISD
(Single Instruction stream, Single Data stream) adalah satu CPU mengeksekusi
instruksi satu persatu dan satu CPU memanggil atau menyimpan data satu persatu.
Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1, IBM 360,
CDC 7600, Cray 1 dan PDP 1.
SIMD
(Single Instruction stream, Multiple Data stream) adalah satu contol unit
mengeksekusi aliran tunggal instruksi dan terdapat lebih dari satu processing
unit. Beberapa contoh komputer yang menggunakan model SIMD adalah ILLIAC IV,
MasPar, Cray X-MP, Cray Y-MP, Thingking Machine CM-2 dan Cell Processor (GPU).
MISD
(Multiple Instruction stream, Single Data stream) adalah terdapat beberapa
processing unit yang mengeksekusi instruksi berbeda dengan data yang sama dan
data mengalir ke processing unit serial. Sampai saat ini belum ada komputer
yang menggunakan model MISD.
MIMD (Multiple
Instruction stream, Multiple Data stream) adalah multiprocessor dan terdapat
lebih dari satu instruksi yang dapat dieksekusi terhadap data masing-masing.
Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq
AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Keuntungan
dan Kekurangan Komputasi Parallel
Keuntungan
:
- Waktu
eksekusi lebih cepat dan efisien
- Throughput
jadi lebih tinggi (throughput adalah banyaknya keluaran yang dihasilkan per
unit waktu)
- Dapat
memecahkan masalah yang lebih besar
Kekurangan
:
- Membutuhkan
daya yang besar untuk perangkat yang dibutuhkan
Implementasi
Komputasi Parallel
Penerapan
Komputasi Paralel Bisa di terapkan pada Bidang Ilmu Pengetahuan & Teknik
komputasi paralel telah dianggap sebagai “high end computing”, dan telah
digunakan untuk memodelkan masalah sulit dalam banyak bidang ilmu pengetahuan
dan teknik , sebagai contoh di terapakan pada :
- lmu
Fisika
- Bioteknologi
- Bioscience
- Pembuatan
Pesawat Luar Angkasa pada Bidang Teknik
-
Pembuatan Circuit
Untuk Elektronik