Apa itu Parallel Computing ?
Parallel
Computing atau Komputasi Paralel merupakan salah satu Teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer independen secara
bersamaan. Pada umumnnya komputasi paralel diperlukan saat kapasitas yang
diperlukan sangan besar, baik karena pengolahan data dalam jumlah yang besar
ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua komputasi
paralel biasa ditemui pada kalkulasi numerik untuk menyelesaikan persamaan
matematis di bidang fisika, kimia, dll.
Konsep
paralel adalah sebuah kemampuan prosesor untuk melakukan sebuah tugas ataupun
banyak tugas secara bersamaan dengan kata lain prosesor mampu melakukan satu
ataupun banyak tugas dalam satu waktu.
Dalam
komputasi paralel ada yang dinamakan dengan pemrograman paralel. Pemrograman paralel
adalah Teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi
secara bersamaan, baik dalam prosesor tunggal ataupun banyak (prosessor ganda
dengan mesin paralel) CPU.
Apa sih tujuan utama dari pemrograman paralel ?
Tujuan
utama dari pemrograman paralel yaitu guna menginkatkan performa komputasi. Semakin
banyak hal yang dapat dilakukan secara bersamaan, maka semakin banyak pekerjaan
yang dapat diselesaikan dengan waktu yang lebih singkat. Performa dalam
pemrograman paralel diukur dari berapa banyak penigkatan kecepatan yang diperoleh
dalam menggunakan tehnik paralel.
Parallel
processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa
program sekaligus. Parallel processing disebut juga dengan parallel computing. Pada
sistem komputasi paralel terdiri dari beberapa unti 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, computer paralel dibedakan menjadi shared memory parallel dan
distributed memory parallel machine.
Prosesor
dan memori ini didala mesin paralel dapat dihubungkan secara statis maupun
dinamis. Interkoneksi statis pada umumnya digunakan oleh distributed memory
system. Sambungan langsung peer to peer digunakan untuk menghuungkan semua
prosesor. Interkoneksi dinamis umumnya menggunakan switch untuk menghubungkan
antar processor dan memory.
Message passing
Message
passing adalah paradigm fundamental untuk aplikasi DS. Suatu proses mengirimkan
message yang mewakili suatu request. Message disampaikan ke penerima yang
kemudian memproses request tersebut dan mengirim pesan balasan. Kemudian balasan
tersebut memicu request lainnya yang berlanjut pada balasan berikutnya dan
seterusnya. Operasi dasar yang dibutuhkan untuk mendukung paradigm message
passing adalah send and receive.
Apa itu Distributed Processing?
Distributed
Processing atau pemrosesan terdistribusi merupakan proses pendistribusian
pengelolahan paralel dalam pemrosesan paralel menggunakan beberapa mesin. Jadi,
dapat dikatakan bahwa kemampuan dari suatu komputer-komputer yang dijalankan
secara cepat bersamaan untuk memecahkan suatu masalah dengan proses yang cepat.
Menurut
Gystafson proses terdistribusi
adalah sebuah komputasi paralel berjalan dengan menggunakan dua atu lebih mesin
untuk mempercepat penyelesaian masalah dengan memperhatikan factor eksternal,
seperti kemampuan mesin dan kecepatan proses tiap-tiap mesin yang digunakan.
Contoh
dari proses terdistribusi adalah ketika terdapat macam massalah diberikan pada
satu master, maka dengan menggunakan komputer paralel massalah tersebut akan
terpecah menjadi beberapa bagian secara terdistribusi.
Architectural Parallel Computer
Menurut
seorang Designer Processor, taksonomi Flynn, Arsitektur Komputer dibagi menjadi
4 baguan, yaitu :
1. SISD
(Single Instruction, Single Data) adalah satu-satunya yang menggunakan
arsitektur Von Neumann. Ini dikarenakan pada model ini hanya digunakan 1
processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk
komputasi tunggal. Sedangkan ketiga model lainnya merupakan komputasi paralel
yang menggunakan beberapa processor.
2.
SIMD (Single Instruction,
Multiple Data) menggunakan banyak processor dengan instruksi yang sama, namun
setiap processor mengolah data yang berbeda. Sebagai contoh kita ingin mencari
angka 27 pada deretan angka yang terdiri dari 100 angka, dan kita menggunakan 5
processor. Pada setiap processor kita menggunakan algoritma atau perintah yang
sama, namun data yang diproses berbeda. Misalnya processor 1 mengolah data dari
deretan / urutan pertama hingga urutan ke 20, processor 2 mengolah data dari
urutan 21 sampai urutan 40, begitu pun untuk processor-processor yang lain.
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).
3.
MISD (Multiple Instruction,
Single Data) menggunakan banyak processor dengan setiap processor menggunakan
instruksi yang berbeda namun mengolah data yang sama. Hal ini merupakan
kebalikan dari model SIMD. Untuk contoh, kita bisa menggunakan kasus yang sama
pada contoh model SIMD namun cara penyelesaian yang berbeda. Pada MISD jika
pada komputer pertama, kedua, ketiga, keempat dan kelima sama-sama mengolah
data dari urutan 1-100, namun algoritma yang digunakan untuk teknik
pencariannya berbeda di setiap processor. Sampai saat ini belum ada komputer
yang menggunakan model MISD.
4. MIMD
(Multiple Instruction, Multiple Data) menggunakan banyak processor dengan setiap
processor memiliki instruksi yang berbeda dan mengolah data yang berbeda. Namun
banyak komputer yang menggunakan model MIMD juga memasukkan komponen untuk
model SIMD. Beberapa komputer yang menggunakan model MIMD adalah IBM POWER5,
HP/Compaq AlphaServer, Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.