Komputasi paralel
Pemrograman
Paralel
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.
Terdapat dua hukum yang berlaku dalam sebuah
parallel processing. yaitu:
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
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.
Hubungan komputasi modern dengan parallel
processing
Komputasi
paralel berbeda dengan multitasking. Multitasking itu sendiri adalah komputer
dengan processor tunggal yang dapat mengeksekusi beberapa tugas secara
bersamaan. Sedangkan 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 4 model komputasi yang
digunakan, yaitu:
Merupakan singkatan dari Single
Instruction, Single Data yaitu satu-satunya yang menggunakan arsitektur Von
Neumann, karena pada model ini hanya menggunakan 1 processor saja. Oleh karena
itu model ini 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.
Merupakan singkatan dari Single
Instruction, Multiple Data. Model ini menggunakan banyak processor dengan
instruksi yang sama, namun dengan 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).
Merupakan singkatan dari Multiple
Instruction, Single Data. MISD menggunakan banyak processor dengan instruksi
yang berbeda namun mengolah data yang sama. Hal ini merupakan kebalikan dari
model SIMD. Sebagai contoh, dengan menggunakan kasus yang sama pada contoh
model SIMD namun cara untuk menyelesaikannya 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.
Pada Multiple Instruction, Multiple
Data biasanya 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.
Singkatnya
untuk perbedaan antara komputasi tunggal dengan komputasi paralel, bisa digambarkan
pada gambar. Dari perbedaan kedua gambar di atas, dapat kita simpulkan bahwa
kinerja komputasi paralel lebih efektif dan dapat menghemat waktu untuk
pemrosesan data yang banyak daripada komputasi tunggal.
Komentar
:
Artikel diatas menjelaskan tentang
komputasi modern dan komputasi pararel, dimana komputasi pararell, sangat
membantu meringankan kinerja terutama dalam jumlah yang besar atau banyak dan
juga waktu kerja yang relative lebih cepat, hanya saja untuk mendapatkan
komputasi paralle harus menggunakan hardware atau perangkat keras yang juga
membutuhkan daya yang lebih besar.