PENGERTIAN KOMPUTASI PARALEL
2. Hukum Gustafson
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.
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.
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.
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.
Tujuan Komputasi Paralel
Tujuan dari komputasi paralel adalah meningkatkan kinerja
komputer dalam menyelesaikan berbagai masalah. Dengan membagi sebuah masalah
besar ke dalam beberapa masalah kecil, membuat kinerja menjadi cepat.
Berikut ini adalah gambar perbedaa 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.
Refrensi :
Tugas Softskill :
Bp. Arbi Pramana