Saat ini penggunaan komputer untuk menyelesaikan
masalah sudah merasuk ke segala bidang. Hal ini karena komputasi dianggap lebih
cepat dibandingkan dengan penyelesaian masalah secara manual. Seiring dengan
hal tersebut, semakin dituntut proses komputasi yang semakin cepat. Untuk
meningkatkan kecepatan proses komputasi, dapat ditempuh dua cara :
- peningkatan kecepatan perangkat keras,
- peningkatan kecepatan perangkatlunak.
Komponen utama perangkat keras komputer
adalah processor. Saat ini, peningkatan kecepatan processor benarbenar luar
biasa. Processor Pentium 4 yang dikeluarkan Intel kecepatannya sudah mencapai
1.8 GHz. Meskipun kecepatan processor dapat ditingkatkan terus, namun karena
keterbatasan materi pembuatnya, tentu ada suatu batas kecepatan yang tak
mungkin lagi dapat dilewati. Karena itu timbul ide pembuatan komputer
multiprocessor. Dengan adanya banyak processor dalam satu komputer, pekerjaan
bisa dibagi-bagi kepada masing-masing processor. Dengan demikian lebih banyak
proses dapat dikerjakan dalam satu saat. Perubahan arsitektur komputer menjadi
multiprocessor memang bisa membuat lebih banyak proses bisa dikerjakan
sekaligus, namun tetap tidak bisa meningkatkan kecepatan masing-masing proses.
Peningkatan kecepatan setiap proses bisa dicapai melalui peningkatan kecepatan
perangkat lunak. Kecepatan perangkat lunak sangat ditentukan oleh algoritmanya.
Usaha untuk mencari algoritma yang lebih cepat tidaklah mudah, namun dengan
adanya komputer multiprocessor, dapatlah dirancang algoritma yang lebih cepat,
yaitu dengan memparalelkan proses komputasinya. Saat ini komputer
multiprocessor masih jarang dan mahal harganya. Hal ini menyebabkan algoritma
paralel yang ada sukar diimplementasikan. Untuk mengatasinya dirancanglah mesin
paralel semu. Mesin paralel semua ini sebenarnya adalah jaringan komputer yang
dikendalikan oleh sebuah perangkat lunak yang mampu mengatur pengalokasian
proses-proses komputasi kepada processor-processor yang tersebar dalam jaringan
tersebut. Pada makalah ini dibuat dua aplikasi dari komputasi paralel. Tujuan
dari pembuatan aplikasi ini hanyalah untuk menunjukkan peningkatan kecepatan
yang diperoleh dari paralelisasi algoritma sekuensial, sehingga sengaja dipilih
aplikasi yang sederhana. Karena ketiadaan perangkat keras komputer paralel,
maka kedua aplikasi tersebut dibuat dengan menggunakan PVM (Parallel Virtual
Machine), suatu sistem perangkat lunak yang bekerja pada jaringan komputer dan
mampu mensimulasikan kerja komputer paralel. Program dibuat dengan bahasa
pemroraman C pada sistem operasi Red Hat Linux. Terdapat dua aplikasi sederhana
yang dipilih untuk diimplementasikan, yaitu penjumlahan n bilangan secara
paralel dan pengurutan n bilangan dengan menggunakan suatu sorting network yang
disebut Bitonic Sort. Untuk masing-masing aplikasi akan dibandingkan dengan
algoritma sekuensialnya. . Dengan PVM bisa ditentukan berapa
jumlah processor yang akan dilibatkan dalam proses komputasi.
Komputasi Paralel merupakan teknik untuk melakukan
komputasi secara bersamaan dengan memanfaatkan beberapa komputer yang
independen secara bersamaan. Biasanya digunakan untuk kapasitas yang pengolahan
data yang sangat besar (lingkungan industri, bioinformatika dll) atau karena
tuntutan komputasi yang banyak. Pada kasus yang kedua biasanya ditemukannya
kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika
(fisika komputasi), kimia (kimai komputasi) dll. Untuk melakukan berbagai jenis
komputasi paralel diperlukan infrastruktur mesin paralel yang terdiri dari
banyak komputer yang nantinya dihubungkan dengan jaringan dan mampu bekerja
secara paralel untuk menyelesaikan suatu masalah. Untuk itu maka digunakannya
perangkat lunak pendukung yang biasa disebut middleware yang berperan untuk mengatur
distribusi antar titik dalam satu mesin paralel. Selanjutnya pemakai harus
membuat pemrograman paralel untuk merealisasikan komputasi. Salah satu
middleware yang asli dikembangkan di Indonesia adalah OpenPC yang dipelopori
oleh GFTK LIPI dan diimplementasikan di LIPI Public Center.
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:
- SISD
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.
- SIMD
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).
- MISD
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.
- MIMD
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.
Sumber :