PENGERTIAN KOMPUTASI PARALEL
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) dll.
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).
Terdapat
dua hukum yang berlaku dalam sebuah parallel processing. yaitu:
1.
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.”
2.
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.
Gambar
diatas merupakan contoh dari sebuah komputasi paralel, dimana pada gambar
diatas terdapat sebuah masalah, dari masalah tersebut dibagi lagi menjadi
beberapa bagian agar sebuah masalah dapat dengan cepat diatasi.
TUJUAN PEMROGRAMAN 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.
PERBEDAAN PARALEL DENGAN
MULTITASKING
Paralel
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 perbedaa antara komputasi tunggal dengan parallel komputasi :
a.
komputasi tunggal/serial
b.
komputasi parallel
PERBANDINGAN ANTARA SERIAL
KOMPUTASI DAN PARALEL 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
:













