Komputasi paralel
merupakan salah satu teknik komputasi, dimana proses komputasinya dilakukan
oleh beberapa resources ( komputer ) yang independen, secara bersamaan.
Komputasi paralel biasanya diperlukan pada saat terjadinya pengolahan data
dalam jumlah besar ( di industri keuangan, bioinformatika, dll ) atau dalam
memenuhi proses komputasi yang sangat banyak. Selanjutnya, komputasi paralel
ini juga dapat ditemui dalam kasus kalkulasi numerik dalam penyelesaian
persamaan matematis di bidang fisika ( fisika komputasi ), kimia ( kimia
komputasi ), dll. Dalam menyelesaikan suatu masalah, komputasi paralel
memerlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang
dihubungkan dengan jaringan dan mampu bekerja secara paralel.
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 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 yang
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.
Distributed Computing
Distributed
computing merupakan bidang ilmu
komputer yang mempelajari sistem terdistribusi.Sebuah sistem terdistribusi
terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan
komputer. Komputer yang saling berinteraksi untuk mencapai tujuan
bersama. Suatu program komputer yang berjalan dalam sistem terdistribusi
disebut program didistribusikan, dan didistribusikan pemrograman adalah proses
menulis program tersebut. Distributed computing juga mengacu pada penggunaan
sistem terdistribusi untuk memecahkan masalah komputasi. Dalam distributed
computing, masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan
oleh satu komputer.
Architectural parallel computer
Michael J. Flynn menciptakan satu diantara sistem klasifikasi untuk komputer dan program paralel, yang dikenal dengan sebutan Taksonomi Flynn. Flynn mengelompokkan komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan banyaknya set data yang digunakan oleh instruksi tersebut.
1.
SISD
Single Instruction – Single Data. Komputer ini memiliki hanya satu
prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah
tipe komputer konvensional. Menurut mereka tipe komputer ini tidak ada dalam
praktik komputer paralel karena bahkan mainframe pun tidak lagi menggunakan
satu prosesor. Klasifikasi ini sekedar untuk melengkapi definisi komputer
paralel. Beberapa contoh komputer yang menggunakan model SISD adalah UNIVAC1,
IBM 360, CDC 7600, Cray 1 dan PDP 1.
2.
SIMD
Single Instruction – Multiple Data. Komputer ini memiliki lebih
dari satu prosesor, tetapi hanya mengeksekusi satu instruksi secara paralel
pada data yang berbeda pada level lock-step. Komputer vektor adalah salah satu
komputer paralel yang menggunakan arsitektur ini. 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 Instructions – Single Data. Teorinya komputer ini
memiliki satu prosesor dan mengeksekusi beberapa instruksi secara paralel
tetapi praktiknya tidak ada komputer yang dibangun dengan arsitektur ini karena
sistemnya tidak mudah dipahami. Sampai saat ini belum ada komputer yang
menggunakan model MISD.
4.
MIMD
Multiple Instructions – Multiple Data. Komputer ini memiliki lebih
dari satu prosesor dan mengeksekusi lebih dari satu instruksi secara paralel.
Tipe komputer ini yang paling banyak digunakan untuk membangun komputer
paralel, bahkan banyak supercomputer yang menerapkan arsitektur ini. Beberapa
komputer yang menggunakan model MIMD adalah IBM POWER5, HP/Compaq AlphaServer,
Intel IA32, AMD Opteron, Cray XT3 dan IBM BG/L.
Sistem komputer
paralel dibedakan dari cara kerja memorinya menjadi shared memory dan distributed
memory. Shared memory berarti memori tunggal diakses oleh satu atau lebih
prosesor untuk menjalankan instruksi sedangkan distributed memory berarti
setiap prosesor memiliki memori sendiri untuk menjalankan instruksi. Adapun
komponen-komponen utama dari arsitektur komputer paralel cluster PC antara
lain:
- Prosesor (CPU). Bagian paling penting dalam sistem, untuk multicore terdapat lebih dari satu core yang mengakses sebuah memori (shared memory).
- Memori. Bagian ini dapat diperinci lagi menjadi beberapa bagian penyusunnya seperti RAM, cache memory dan memori eksternal.
- Sistem Operasi. Software dasar untuk menjalankan sistem komputer.
- Cluster Middleware. Antarmuka antara hardware dan software.
- Programming Environment dan Software Tools. Software yang digunakan untuk pemrograman paralel termasuk software pendukungnya.
- User Interface. Software yang menjadi perantara hardware dengan user.
- Aplikasi. Software berisi program permasalahan yang akan diselesaikan.
- Jaringan. Penghubung satu PC (prosesor) dengan PC yang lain sehingga memungkinkan pemanfaatan sumberdaya secara simultan




0 comments:
Post a Comment