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 (fisika komputasi), kimia (kimia komputasi)
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 (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.
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.
Yang perlu diingat adalah
komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah
komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan.
Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan
bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus,
melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat
komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi
paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan
beberapa processor atau komputer. Selain itu komputasi paralel tidak
menggunakan arsitektur Von Neumann.
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:
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. Beberapa contoh komputer yang menggunakan
model SISD adalah UNIVAC1, IBM 360, CDC 7600, Cray 1 dan PDP 1.
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.
Berikut ini adalah gambar
perbedaan antara komputasi tunggal dengan parallel komputasi :
a)
komputasi tunggal/serial

b)
komputasi parallel

Perbandingan antara serial
komputasi dan parallel komputasi
Pada sistem 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 komputer paralel 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.
Komunikasi data pada sistem paralel memori terdistribusi,
memerlukan alat bantu komunikasi. Alat bantu yang sering digunakan oleh sistem
seperti PC Jaringan pada saat ini adalah standar MPI (Message Passing
Interface) atau standar PVM (Parallel Virtual Machine)yang keduanya bekerja
diatas TCP/IP communication layer. Kedua standar ini memerlukan fungsi remote
access agar dapat menjalankan program pada masing-masing unit prosesor.
Salah satu protocol yang dipergunakan pada komputasi parallel
adalah Network File System (NFS), NFS adalah protokol yang dapat membagi sumber
daya melalui jaringan. NFS dibuat untuk dapat independent dari jenis mesin,
jenis sistem operasi, dan jenis protokol transport yang digunakan. Hal ini
dilakukan dengan menggunakan RPC. NFS memperbolehkan user yang telah diijinkan
untuk mengakses file-file yang berada di remote host seperti mengakses file
yang berada di lokal. Protokol yang digunakan protokol mount menentukan host
remote dan jenis file sistem yang akan diakses dan menempatkan di suatu
direktori, protokol NFS melakukan I/O pada remote file system. Protokol mount
dan protokol NFS bekerja dengan menggunakan RPC dan mengiri dengan protokol TCP
dan UDP. Kegunaan dari NFS pada komputasi parallel adalah untuk melakukan
sharing data sehingga setiap node slave dapat mengakses program yang sama pada
node master.
Software yang diperlukan untuk Parallel komputasi adalah PGI CDK,
dimana aplikasi ini telah dilengkapi dengan Cluster Development Kit dimana
software ini telah memiliki feature yang lengkap bila ingin melakukan komputasi
dengan parallel prosessing karena software ini telah mensupport MPI untuk
melakukan perhitungan komputasi.
Sumber :
http://mahadisuta.blogspot.com/2012/12/implementasi-komputasi-paralel-dalam.html
http://ceerfullvhye.wordpress.com/2011/03/15/komputasi-parallel-processing/