1. Definisi Komputasi Paralel
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. Kasus kedua umum ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang fisika (fisika komputasi), kimia (kimia komputasi) dll.
Pada dasarnya komputasi paralel digunakan untuk menyelesaikan suatu permasalahan besar, dengan memecah-mecah permasalahan tersebut menjadi bagian- bagian dari permasalahan yang lebih kecil (sub-masalah). Kemudian sub-masalah tersebut di selesaikan oleh kumpulan-kumpulan dari prosesor (multi-processors) yang nantinya terlibat dalam pengeksekusian masalah tersebut. Dimana setiap bagian dari sub-masalah di selesaikan oleh satu prosesor (single-processor).
Sehingga kita dapat mengambil kesimpulan jika sebuah masalah yang diselesaikan oleh satu prosesor
membutuhkan berapa banyak sub-masalah dan berapa lama waktu yang dihutuhkan oleh prosesor tersebut. Kemudian dilakukan perbandingan dengan masalah yang sama, jika masalah tersebut diselesaikan oleh banyak prosesor.
Tujuan utama komputasi paralel adalah untuk mempersingkat waktu eksekusi program yang menggunakan komputasi serial. Beberapa alasan lain yang menjadikan suatu program mcnggunakan komputasi paralel antara lain:
1. Untuk komputasi yang sangat kompleks, terkadang sumber daya (resource) yang ada sekarang belum cukup mampu untuk mendukung penyelesaian terhadap
permasalahan secara cepat.
2. Adanya keterbatasan memori pada mesin untuk komputasi serial.
3. Adanya sumber daya non-lokal yang dapat digunakan melalui jaringan lokal
atau internet.
4. Penghematan biaya pengadaan perangkat keras, dengan menggunakan beberapa
mesin yang murah sebagai alternatif penggunaan satu mesin yang bagus tapi
mahal, walaupun menggunakan P-Processor (Multicore).
Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan, namun untuk eksekusi program mempunyai beberapa hambatan.
Hambatan-hambatan tersebut antara lain adalah:
1. Hukum Amdahl, yaitu percepatan waktu eksekusi program dengan menggunakan komputasi paralel tidak akan pernah mencapai kesempurnaan karena selalu ada bagian program yang harus dieksekusi secara serial.
2. Hambatan yang diakibatkan karena beban jaringan, dalam eksekusi program secara paralel, prosesor yang berada di mesin yang berbeda memerlukan pertukaran data melalui jaringan. Untuk program yang dibagi menjadi task-task membutuhkan sinkronisasi, network latency (keterlambatan jaringan) menjadi masalah utama. Permasalahan ini muncul karena ketika suatu task membutuhkan data dari task yang lain, bagian ini dikirimkan melalui jaringan dimana kecepatan transfer data kurang dari kecepatan prosesor yang mengeksekusi instruksi task tersebut. Hal ini menyebabkan task tersebut harus menunggu sampai data tiba terlebih dahulu, sebelum mengeksekusi instruksi selanjutnya.
3. Hambatan yang terkait dengan beban waktu untuk inisialisasi task, terminasi task, dan sinkronisasi.
Parallel processing berbeda dengan multitasking, yaitu satu CPU mengeksekusi beberapa program sekaligus. Parallel processing disebut juga parallel computing.
Contoh struktur pengiriman permintaan dan jawaban dari parallel processing
Komputasi paralel membutuhkan:
- Algoritma
- Bahasa pemrograman
- Compiler
2. Pemrograman Paralel adalah Teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak (prosesor ganda dengan mesin paralel) CPU.
3. Bahasa Pemrograman yang digunakan pada Pemrograman Parallel
A. MPI (Message Passing Interface)
Sebuah standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah aplikasi yang dapat dijalankan secara paralel. Suatu standar protokol yang digunakan untuk pemrograman paralel dan terdistribusi.
Kegunaan MPI
1. Menyediakan fungsi-fungsi untuk menukar pesan.
2. Menulis kode paralel secara portable.
3. Mendapatkan performa yang tinggi dalam pemrograman paralel.
4. Menghadapi permasalahan yang melibatkan hubungan data irregular atau dinamis yang
tidak begitu cocok dengan model data paralel.
Implementasi MPI
- MPICH (MPI/Chameleon)
- MPICH2 adalah implementasi Message Passing Interface (MPI).
- MPI merupakan standar spesifikasi library untuk program message-passing, yang diajukan
- sebagai standar oleh vendor, implementor, dan user
- PVM (Parallel Virtual Machine)
B. PVM (Private Virtual Machine)
Perangkat lunak yang memungkinkan sekumpulan komputer yang heterogen terlihat seperti satu sistem komputer paralel dan dapat digunakan sebagai sebuah sumber daya komputasi yang koheren. Istilah virtual machine mengacu pada konfigurasi komputer dengan memori tersebar, sedangkan istilah host ditujukan untuk komputer yang merupakan anggota dari virtual machine. Host dapat terdiri dari komputer yang berbeda-beda dan terpisah lokasinya secara fisik.
Komponen PVM
- PVM daemon
- PVM libraries
Implementasi PVM
Secara umum, langkah implementasi komputasi parallel sebagai berikut:
1. Jalankan PVM daemon pada setiap mesin dalam cluster
2. Jalankan program master pada master daemon
3. Master daemon akan menjalankan proses slave.
4. Arsitektur Komputer Parallel
A. Berdasarkan simetrinya, multiprocessing dapat dibagi ke dalam:
1. Asymmetric Multiprocessing (ASMP)
2. Symmetric Multiprocessing (SMP)
3. Non-uniform memory access (NUMA) multiprocessing
4. Clustering
B. Berdasarkan jumlah instruksi dan datanya, dapat dibagi ke dalam (lihat Taksonomi Flynn)
Taksonomi Flynn dan model pemrosesan parallel
Keempat kelompok komputer tersebut adalah:
(1) Komputer SISD (Single Instruction stream-Single Data stream)
Komputer ini memiliki hanya satu prosesor dan satu instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer konvensional.
(2) Komputer SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama yang dikirimkan unit pengendali, namun melakukan operasi terhadap himpunan data yang berbeda yang berasal dari aliran data yang berbeda pula.
(3) Komputer MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki n unit pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit pengendali yang berbeda. Keluaran dari satu pemroses menjadi masukan bagi pemroses berikutnya. Belum ada perwujudan nyata dari komputer jenis ini kecuali dalam bentuk prototipe untuk penelitian.
(4) Komputer MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni terdapat interaksi di antara n pemroses. Hal ini disebabkan seluruh aliran dari dan ke memori berasal dari space data yang sama bagi semua pemroses. Komputer MIMD bersifat tightly coupled jika tingkat interaksi antara pemroses tinggi dan disebut loosely coupled jika tingkat interaksi antara pemroses rendah.
Kesimpulan
Pemrosesan paralel dipergunakan untuk memudahkan user dalam berinteraksi darisatu sistem ke sistem yang lain, dengan tujuan untuk membagi beban yang terdapat padasuatu sistem sehingga satu masalah dipecahkan secara bersama-sama. Dan keberhasilan pemrosesan paralel itu dapat dilihat dari kecepatan (speed up) yang diperoleh dari teknik paralel yang digunakan.
0 comments:
Post a Comment