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.
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.
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.
SM : Shared Memory
IS : Instruction Stream
DS : Data Stream
v Beberapa Processor Unit (Processing Element) disupervisi oleh Control Unit yang sama.
v Semua Processing Element menerima instruksi yang sama dari control unit tetapi mengeksekusi data yang berbeda dari alur data yang berbeda pula.
v Subsistem memori berisi modul-modul memori.
v Processor vektor dan processor array termasuk dalam kategori ini.
U |
MIMD berarti banyak prosesor yang dapat mengeksekusi instruksi dan data yang berbeda-beda secara bersamaan. Lebih lanjut sebagai bagian dari komputer, prosesor memiliki otonom yang besar dalam melakukan operasinya. Secara umum MIMD digunakan ketika banyak permasalahan heterogen yang harus diselesaikan pada waktu yang sama. MIMD sangat baik digunkan untuk meneyelesaikan permasalahan yang besar, sebab melebihi data dan kontrol yang harus dilewatkan dari task ke task. Sebagai contoh dalam analogi sebuah Bank, MIMD akan menampilkan kerja terbaiknya ketika masing-masing teller memiliki beberapa transaksi yang harus diselesaikan satu persatu tanpa ada pembuangan waktu dan penghentian dari beberapa bagian transaksi. Tetapi pada sistem MIMD akan dibingungkan oleh aliran data (dataflow) paralel, karena aliran data tersebut harus dikerjakan oleh mesin MIMD secara terus menerus. Lalu mengapa digunakan sistem MIMD ?.
Pertama bahwa tiap-tiap prosesor bekerja secara independen kecuali untuk sistem sinkron tertentu harus menunggu. Prosesor menjalankan task yang pendek sebagai contoh selesainya mengevaluasi vektor satu elemen sebelum prosesor memproses task lebih jauh. Tentu saja prosesor dalam waktu yang singkat dapat melakukan beberapa pekerjaan yang berbeda, seperti waiting, comparing dan sending data.
Kedua, bahwa pada program paralel untuk menyelesaikan suatu task baik jumlahnya diketahui ataupun tidak, menggunakan prosesor yang jumlahnya tidak diketahui pula. Hal tersebut menggambarkan dua ciri mendasar dari sistem MIMD, yaitu :
1. Kelamahan pada sentralisasi dan mekanisme sistem sinkron secara umum,
2. Penggeneralisasian task yang heterogen yang dioperasikan secara bersamaan, contohnya dalam memproses operasi yang berbeda dengan data berbeda dan dalam jangka waktu yang berbeda pula.
Secara umum MIMD meliputi paradigma reduksi/dataflow. Pada kenyataannya juga secara umum meliputi SIMD, sebab kita dapat menemui sifat SIMD pada sebagian sifat MIMD. Sehingga menghasilkan Kinerja akhir dari simulasi satu bentuk mesin dengan bentuk lainnya. Untuk menggabungkannya, mesin MIMD mengubah SIMD prosesor dimana masing-masing prosesornya mampu mengerjakan banyak task dari aplikasi yang berbeda pada waktu yang sama.
CU : Control Unit
PU : Processor Unit
MM : Memory Modul
IS : Instruction Stream
DS : Data Stream ð Sejumlah prosesor secara simultan mengeksekusi rangkaian instruksi yang berbeda pada kumpulan data yang berbeda pula.
ð MIMD dapat berupa multiprosesor dengan memori yang dapat digunakan bersama (shared memory) atau multikomputer dengan memori yang terdistribusi.
ð Multiprosesor : MIMD dengan memori yang dapat digunakan bersama, semua prosesornya memiliki akses ke pool memori utama.
Multikomputer : MIMD dengan memori terdistribusi, setiap prosesornya memiliki memori khusus sendiri
ð Motivasi pembuatan organisasi multikomputer adalah untuk mengatasi keterbatasan skala multiprosesor.
ð Karena prosesor-prosesor multikomputer harus berkomunikasi, maka elemen penting perancangan multikomputer adalah jaringan interkoneksi yang harus dapat beroperasi seefisien mungkin.
ð Ada beberapa topologi interkoneksi untuk memberikan kinerja yang efisien.
ð Terdapat trade-off antara lintasan terpanjang dan jumlah koneksi fisik yang diperlukan.
Istilah-istilah dalam pemrograman paralel
· Embarasingly Parallel adalah pemrograman paralel yang digunakan pada masalah-masalah yang bisa diparalelkan tanpa membutuhkan komunikasi satu sama lain. Sebenarnya pemrograman ini bisa dibilang sebagai pemrograman paralel yang ideal, karena tanpa biaya komunikasi, lebih banyak peningkatan kecepatan yang bisa dicapai.
· Taksonomi dari model pemrosesan paralel dibuat berdasarkan alur instruksi dan alur data yang digunakan:
o SISD Single Instruction Single Datapath, ini prosesor tunggal, yang bukan paralel.
o SIMD Single Instruction Multiple Datapath, alur instruksi yang sama dijalankan terhadap banyak alur data yang berbeda. Maksudnya, sebuah instruksi (program) dijalankan pada beberapa (banyak) data.
o MISD Multiple Instruction Single Datapath, alur instruksinya banyak tapi beroperasi pada data yang sama.
> MIMD Multiple Instruction Multiple Datapath, alur instruksinya banyak, alur datanya juga banyak, tapi masing-masing bisa berinteraksi.
Download File
Tidak ada komentar:
Posting Komentar