Kinerja
Komputasi dengan Parallel Processing
Komputasi Paralel merupakan salah
satu teknologi paling menarik sejak ditemukannya komputer pada tahun 1940-an.
Terobosan dalam pemorosesan parallel selalu berkembang dan mendapatkan tempat
disamping teknologi-teknologi lainnya sejak Era Kebangkitan (1950-an), Era
Mainframe (1960-an), Era Minis (1970-an), Era PC (1980-an), dan Era Komputer
Paralel (1990-an). Dengan berbagai pengaruh atas perkembangan teknologi
lainnya, dan bagaimana teknologi ini mengubah persepsi terhadap komputer, dapat
dimengerti betapa pentingnya komputasi parallel itu.
Pemrosesan paralel dapat mempersingkat waktu
eksekusi suatu program dengan cara membagi suatu program menjadi bagian yang
lebih kecil agar dapat dikerjakan pada masing-masing prosesor secara bersamaan.
Performa dalam pemrosesan paralel diukur dari beberapa banyak peningkatan
kecepatan yang diperoleh dalam menggunakan teknik paralel. Pada proses kerja
pemrosesan paralel yaitu membagi beban kerja dan mendistribusikannya pada
komputer-komputer lain yang terdapat dalam sistem untuk menyelesaikan masalah.
Sistem yang akan dibangun tidak akan menggunakan komputer yang didedikasikan
secara khusus untuk keperluan pemrosesan paralel melainkan menggunakan komputer
yang telah ada. Maksudnya sistem ini akan terdiri dari sejumlah komputer dengan
spesifikasi berbeda yang akan bekerja sama untuk menyelesaikan suatu masalah.
Komputasi paralel adalah salah satu teknik untuk melakukan
komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara
bersamaan. Biasanya diperlukan saat kapasitas yang diperlukan sangat besar,
baik karena harus mengolah data dalam jumlah besar ataupun karena tuntutan
proses komputasi yang banyak. 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.
Oleh karena itu semakin banyak hal yang bisa dilakukan secara bersamaan dalam
waktu yang sama, semakin banyak pekerjaan yang bisa diselesaikan. Pada
komputasi paralel dibutuhkan saat kapasitas yang diperlukan sangat besar untuk
memproses komputasi yang banyak. Di samping itu pemakai harus membuat
pemrograman paralel untuk dapat merealisasikan komputasi. Pemrograman paralel
memiki tujuan utama yaitu untuk meningkatkan performa komputasi.
Komputasi paralel merupakan salah satu
teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa
komputer juga secara bersamaan. Inti dari komputasi parallel yaitu hardware,
software, dan aplikasinya. Paralel prosesing merupakan suatu pemrosesan
informasi yang lebih mendekatkan pada manipulasi rata-rata dari elemen data
terhadap satu atau lebih penyelesaian proses dari sebuah masalah. Dengan kata
lain komputasi parallel adalah komputer dengan banyak processor dapat melakukan
parallel processing dengan cara membagi-bagi proses ke source-source yang
dimiliki.
Paradigma pemrosesan parallel bergantung
pada model SIMD (single instruction multiple data), dan paradigma functional
dataflow yang memperkenalkan konsep model MIMD (Multiple Instrution Multiple
Data). Suatu program parallel memerlukan koordinasi ketika sebuah tugas
bergantung pada tugas lainnya. Ada dua macam bentuk koordinasi pada komputer
parallel : asynchronous dan synchronous. Bentuk synchronous merupakan
koordinasi pada hardware yang memaksa semua tugas agar dilaksanakan pada waktu
yang bersamaan dengan mengesampingkan adanya ketergantungan tugas yang satu
dengan yang lainnya. Sementara bentuk asynchronous mengandalkan mekanisme
pengunci untuk mengkoordinasikan processor tanpa harus berjalan bersamaan.
Konsep keparalelan itu sendiri dapat
ditinjau dari aspek design mesin paralel, perkembangan bahasa pemrograman
paralel atau dari aspek pembangunan dan analisis algoritma paralel. Algoritma
paralel itu sendiri lebih banyak difokuskan kepada algoritma untuk menyelesaikan
masalah numerik, karena masalah numerik merupakan salah satu masalah yang
memerlukan kecepatan komputasi yang sangat tinggi.
Kemampuan sistem paralel tergantung dari
kemampuan pemrogram untuk membuat aplikasi terdistribusi ketika dijalankan pada
sistem paralel. Jika node slave mempunyai prosessor lebih dari satu maka
pemrogram harus memperhitungkan kemungkinan paralelisme 2 level : Paralelisme
di dalam slvae node (intra-node parallelism) dan paralelisme antar slave node
(inter-node parallelism). Inter-node parallelism menggunakan shared memory
dalam node sehingga tidak melakukan pertukaran data secara explicit. Sedangkan
inter-node parallelism melakukan pertukaran data lewat media yang menghubungkan
antara node slave yang ada.