Pendahuluan
Parallel Processing
Pemrosesan paralel (parallel processing) adalah penggunakan lebih dari satu CPU untuk menjalankan sebuah program secara simultan. Idealnya, parallel processing membuat programberjalan lebih cepat karena semakin banyak CPU yang digunakan. Tetapi dalam praktek,seringkali sulit membagi program sehingga dapat dieksekusi oleh CPU yang berbea-beda tanpa berkaitan di antaranya.
Untuk melakukan berbagai komputasi maka diperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkan dengan jaringan dan berkerja secara parallel untuk menyelesaikan satu masalah. Selain jaringan, diperlukan software pendukung yang biasa disebut middleware yang berperan untuk mengatur distribusi pekerjaan antar komponen paralel, kemudian end user harus membuat program paralel untuk merealisasikan komputasi.
Komputasi paralel
Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Biasanyadiperlukan saat kapasitas yangdiperlukan sangat besar, baik karena harus mengolah data dalam jumlah besar ataupun karenatuntutan proses komputasi yang banyak. Untuk melakukan aneka jenis komputasi paralel inidiperlukan infrastruktur mesin paralel yang terdiri dari banyak komputer yang dihubungkandengan jaringan dan mampu bekerja secara paralel untuk menyelesaikan satu masalah. Untuk itudiperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai middleware yang berperan untuk mengatur distribusi pekerjaan antar node dalam satu mesin paralel. Selanjutnyapemakai harus membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel
Pemrograman Paralel sendiri adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah atau operasi secara bersamaan. Bila komputer yang digunakan secara bersamaan tersebut dilakukan oleh komputer komputer terpisah yang terhubung dalam satu jaringan komputer, biasanya disebut sebagai sistem terdistribusi. Sistem ini berjalan dengan bahasa pemrograman MPI (Message Passing Interface) atau PVM (Parralel Virtual Machine).
Pengertian lainnya tentang pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupunbanyak (prosesor ganda dengan mesin paralel) CPU. Tujuan utama dari pemrograman paralel adalah untuk meningkatkan performa komputasi. Semakin banyak hal yang bisa dilakukan secarabersamaan (dalam waktu yang sama), semakin banyak pekerjaan yang bisa diselesaikan.
Pembahasan
Komputasi paralel berbeda dengan multitasking. Multitasiking adalah satu unit sistem yang terdiri dari satu modul pengolah data tunggal yang mampu menjalankan beberapa tugas secara bersamaan. Sedangkan komputasi paralel adalah penggunaan beberapa modul pengolah data menjadi sebuah sistem yang digunakan untuk mengeksekusi tugas bersama sama. Dan komputasi paralel atau pemrosesan paralel jenis MIMD (Multiple Instruction, Multiple Data stream) yang akan kita bahas ini adalah suatu klasifikasi yang sering disebut Taksonomi Flynn.
Taksonomi Flynn, dalam dunia arsitektur komputer, adalah sebuah klasifikasi yang dibuat oleh Michael J. Flynn pada tahun 1966. Klasifikasi ini dibuat berdasarkan jumlah instruksi yang berjalan simultan dan konkuren, dan juga aliran data yang diprosesnya. Dalam Taksonomi Flynn, komputer dibagi menjadi empat buah kelas, yakni
- Single Instruction Single Data Stream (SISD), yaitu sebuah komputer yang tidak memiliki cara untuk melakukan paralelisasi terhadap instruksi atau data. Contoh mesin SISD adalah PC tradisional atau mainframe yang tua.
- Multiple Instruction, Single Data Stream (MISD), yaitu sebuah komputer yang dapat melakukan banyak instruksi terhadap satu aliran data. Komputer ini, tidak memiliki contoh, karena meski pernah dibuat, hal itu dibuat sebagai purwarupa (prototipe), dan tidak pernah dirilis secara massal.
- Single Instruction, Multiple Data Stream (SIMD), yaitu sebuah komputer yang mampu memproses banyak aliran data dengan hanya satu instruksi, sehingga operasi yang dilakukan adalah operasi paralel. Contoh dari SIMD adalah prosesor larik (array processor), atau GPU.
- Multiple Instruction, Multiple Data stream (MIMD), yaitu sebuah komputer yang memiliki beberapa prosesor yang bersifat otonomus yang mampu melakukan instruksi yang berbeda pada data yang berbeda. Sistem terdistribusi umumnya dikenal sebagai MIMD, entah itu menggunakan satu ruangan memori secara bersama-sama atau sebuah ruangan memori yang terdistribusi.
Berikut penjelasan lebih mendalam tentang MIMD (Multiple Instruction, Multiple Data stream)