PARALLELISM CONCEPT
- PENGERTIAN KOMPUTASI PARALEL
Secara umum Komputasi
paralel adalah salah satu teknik melakukan komputasi secara bersamaan
dengan memanfaatkan beberapa komputer independen secara bersamaan. Ini umumnya
diperlukan saat kapasitas yang diperlukan sangat besar, baik karena harus
mengolah data dalam jumlah besar (di industri keuangan, bioinformatika, dll)
ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum ditemui
di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika,
kimia dan lain-lain.
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.
Di dalam komputasi
parallel ada yang dinamakan dengan pemrograman parallel. 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.
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.
Prosesor dan memori
ini didalam mesin paralel dapat dihubungkan (interkoneksi) secara statis maupun
dinamis. Interkoneksi statis umumnya digunakan oleh distributed memory system
(sistem memori terdistribusi). Sambungan langsung peer to peer digunakan untuk
menghubungkan semua prosesor. Interkoneksi dinamis umumnya menggunakan switch
untuk menghubungkan antar prosesor dan memori.
Terdapat
dua hukum yang berlaku dalam komputasi parallel processing. yaitu:
a)
Hukum
Amdahl
Amdahl berpendapat, “Peningkatan kecepatan secara
paralel akan menjadi linear, melipatgandakan kemampuan proses sebuah komputer
dan mengurangi separuh dari waktu proses yang diperlukan untuk menyelesaikan
sebuah masalah.”
b)
Hukum
Gustafson
Pendapat yang
dikemukakan Gustafson hampir sama dengan Amdahl, tetapi dalam pemikiran
Gustafson, 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
2. TUJUAN
KOMPUTASI PARALEL
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.
3. PERBEDAAN
KOMPUTASI TUNGGAL DAN KOMPUTASI PARAREL
Untuk lebih memperjelas lebih dalam
mengenai perbedaan komputasi tunggal (menggunakan 1 processor) dengan komputasi
paralel (menggunakan beberapa processor), maka kita harus mengetahui terlebih
dahulu pengertian mengenai model dari komputasi. Ada 4 model komputasi yang
digunakan, yaitu:
a. 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. Beberapa contoh komputer
yang menggunakan model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP
1.
b. 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).
c. 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.
d. 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.
Berikut ini adalah gambar perbedaan antara komputasi
tunggal dan parallel komputasi :
·
komputasi
tunggal/serial
·
komputasi parallel
4. HUBUNGAN
KOMPUTASI MODERN DENGAN PARALEL 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 computer semakin cepat.
Kinerja komputasi dengan
menggunakan paralel processing itu menggunakan dan memanfaatkan beberapa
komputer atau CPU untuk menemukan suatu pemecahan masalah dari masalah yang
ada. Sehingga dapat diselesaikan dengan cepat daripada menggunakan satu komputer
saja. Komputasi dengan paralel processing akan menggabungkan beberapa CPU, dan
membagi-bagi tugas untuk masing-masing CPU tersebut. Jadi, satu masalah
terbagi-bagi penyelesaiannya. Tetapi ini untuk masalah yang besar saja,
komputasi yang masalah kecil, lebih murah menggunakan satu CPU saja.