Senin, 31 Mei 2021

About MIMD (Multiple Instruction Multiple Data stream)

 










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)

MIMD (Multiple Instruction, Multiple Data stream)














Dalam komputasi , MIMD (Multiple Instruction, Multiple Data stream) adalah teknik yang digunakan untuk mencapai paralelisme. Mesin yang menggunakan MIMD memiliki sejumlah prosesor yang berfungsi secara tidak sinkron dan independen. Setiap saat, prosesor yang berbeda dapat menjalankan instruksi yang berbeda pada bagian data yang berbeda.

Arsitektur MIMD dapat digunakan di sejumlah area aplikasi seperti desain berbantuan komputer / manufaktur berbantuan komputer , simulasi , pemodelan , dan sebagai sakelar komunikasi.Mesin MIMD dapat berupa  shared memory atau distributed memory . Klasifikasi ini didasarkan pada bagaimana prosesor MIMD mengakses memori. Shared memory machines mungkin berjenis bus-based, extended, atau hierarchicalDistributed memory machines mungkin hypercube atau mesh interconnection schemes.

Contoh : Sistem MIMD adalah Intel Xeon Phi, yang diturunkan dari mikroarsitektur LarrabeeProsesor ini memiliki beberapa inti pemrosesan (hingga 61 pada 2015) yang dapat menjalankan instruksi berbeda pada data yang berbeda. Sebagian besar komputer paralel, pada 2013, adalah sistem MIMD.


Shared Memory Model

Dalam model shared memory, semua prosesor terhubung ke memori yang "tersedia secara global", baik melalui software maupun hardware. Sistem operasi biasanya mempertahankan memory coherence.

Dari sudut pandang programmer, model memori ini lebih dipahami daripada model distributed memoryKeuntungan lainnya adalah memory coherence dikelola oleh sistem operasi dan bukan program tertulis. Dua kelemahan yang diketahui adalah : skalabilitasnya sulit karena melebihi tiga puluh dua prosesor , dan model  shared memory kurang fleksibel daripada model distributed memory.

Bus-based

MIMD dengan shared memory memiliki prosesor yang berbagi memori pusat yang sama. In the simplest form, all processors are attached to a bus which connects them to memory. Dalam bentuk yang paling sederhana, semua prosesor dipasang ke bus yang menghubungkannya ke memori. Ini berarti bahwa setiap mesin shared memory berbagi CM (Central Memory) tertentu, sistem bus umum untuk semua klien.

Misalnya, jika kita menganggap bus dengan klien A, B, C terhubung di satu sisi dan P, Q, R terhubung di sisi yang berlawanan, salah satu klien akan berkomunikasi dengan yang lain melalui antarmuka bus di antara mereka.

Hierarchical

MIMD dengan hierarchical shared memory menggunakan hierarchy dari bus (seperti, misalnya, dalam  "fat tree") untuk memberi prosesor akses ke memori satu sama lainProsesor pada different boards dapat berkomunikasi melalui inter-nodal buses.  Bus mendukung komunikasi antar boards. Dengan jenis arsitektur ini, mesin dapat mendukung lebih dari sembilan ribu prosesor.

Distributed Memory

Dalam  distributed memory MIMD machines,  setiap prosesor memiliki lokasi memori tersendiri. Setiap prosesor tidak memiliki pengetahuan langsung tentang memori prosesor lainnya. Untuk data yang akan dibagikan, itu harus diteruskan dari satu prosesor ke prosesor lainnya sebagai pesan. Karena tidak ada shared memory, pertengkaran bukanlah masalah besar dengan mesin ini. Secara ekonomi tidak layak untuk menghubungkan sejumlah besar prosesor secara langsung satu sama lain. Cara untuk menghindari banyak koneksi langsung ini adalah dengan menghubungkan setiap prosesor ke beberapa prosesor lainnyaJenis desain ini dapat menjadi tidak efisien karena waktu tambahan yang diperlukan untuk meneruskan pesan dari satu prosesor ke prosesor lainnya di sepanjang jalur pesan. Jumlah waktu yang dibutuhkan prosesor untuk melakukan perutean pesan sederhana bisa sangat besar. Sistem dirancang untuk mengurangi kehilangan waktu ini dan hypercube dan mesh adalah salah satu dari dua interconnection schemes yang populer.

Contoh distributed memory (multiple computers) termasuk MPP (Massively Parallel Processors)COW (Clusters of Workstations) dan NUMA (Non-Uniform Memory Access). The former is complex and expensive: Banyak super-computers yang digabungkan dengan broad-band networks.  Contohnya termasuk hypercube dan mesh interconnections. COW adalah versi "buatan sendiri" untuk sebagian kecil dari harga.

Hypercube interconnection network

Dalam mesin MIMD yang menggunakan distributed memory dengan hypercube yang berisi empat prosesor, prosesor dan memory module ditempatkan di setiap simpul persegi. Diameter sistem adalah jumlah langkah minimum yang diperlukan satu prosesor untuk mengirim pesan ke prosesor yang paling jauh.Jadi, misalnya, diameter kubus 2 adalah 2. Dalam sistem hypercube dengan delapan prosesor dan setiap prosesor dan memory module ditempatkan di titik kubus, diameternya adalah 3. Secara umum, sistem yang berisi 2^N prosesor dengan masing-masing prosesor terhubung langsung ke N prosesor lain, diameter sistem adalah N. Salah satu kelemahan sistem hypercube adalah harus dikonfigurasi dalam kekuatan dua, jadi mesin harus dibangun yang berpotensi memiliki lebih banyak prosesor daripada yang benar-benar dibutuhkan untuk aplikasi.

Mesh interconnection network

Dalam MIMD distributed memory machine dengan mesh interconnection networkprosesor ditempatkan dalam kisi dua dimensi. Setiap prosesor terhubung ke empat tetangga terdekatnya. Bungkus koneksi dapat disediakan di tepi mesh. Salah satu keuntungan dari mesh interconnection network melalui hypercube adalah bahwa sistem mesh tidak perlu dikonfigurasi dalam powers of two. Kerugiannya adalah diameter mesh network lebih besar daripada hypercube untuk sistem dengan lebih dari empat prosesor.

Tidak ada komentar:

Posting Komentar