Komputasi paralel menurut sumber yang saya baca adalah suatu penggunaan simultan sumber daya komputasi ganda yang bertujuan untuk memecahkan masalah secara komputasi. Banyak Komputasi paralel digunakan untuk memecahkan sebuah peristiwa yang kompleks, contoh saja dalam peristiwa alam seperti perubahan iklim, pergerakan planet dan letak tata surya bima sakti.
Alasan kenapa komputasi digunakan adalah :
- Yang pertama Hemat waktu atau biaya. Karena pembangunan komputasi parallel bisa dibuat dengan komoditas yang murah sehingga hal itu bisa menekan biaya yang murah.
- Alasan yang kedua seperti tujuan utamanya bahwa komputasi parallel dapat memecahkan masalah yang lebih rumit dan berskala besar.
- Yang ketiga karena memberikan sebuah Concurrency, yang artinya bahwa sumber daya komputasi tunggal dapat melakukan suatu hal pada satu waktu secara bersamaan. Contohnya seperti ditemukannya Internet yang cangkupannya dunia (Collaborative Network). Dengan jaringan internet berskala dunia maka seluruh orang-orang didunia dapat bertemu dan melakukan pekerjaan secara virtual.
Lalu siapa saja yang membutuhkan komputasi parallel ini ?
Biasanya yang membutuhkan hal-hal berkaitan dengan komputasi parallel adalah para Ilmuan dan teknisi karena meraka bekerja di bidang-bidang yang memang membutuhkan proses yang cepat dan efisian. Bukan hanya itu, komputasi parallel juga dibutuhkan oleh perusahaan-perusahaan besar seperti halnya Perusahaan “Google” yang salah satunya memiliki mesin pencarian berbasis web.
Penemu konsep pertama kali komputasi parallel adalah John von Neumann, seorang jenius dari Hungaria yang menemukan konsep tersebut pada tahun sekitar 1940-an. Kemudian dikembangkan Kembali sehingga muncul klasifikasi baru. Salah satu klasifikasi yang lebih banyak digunakan sejak 1966, disebut Flynn's Taxonomy.
Taksonomi Flynn membedakan arsitektur komputer multi-prosesor berdasarkan bagaimana mereka dapat diklasifikasikan di sepanjang dua dimensi independen dari Instruction Stream dan Data Stream . Masing-masing dimensi ini hanya dapat memiliki satu dari dua status yang mungkin: Tunggal atau Banyak
Mendefinisikan 4 klasifikasi yang mungkin menurut Flynn :
- Single Instruction, Single Data (SISD), Komputer serial (non-paralel). Instruksi Tunggal: Hanya satu aliran instruksi yang dijalankan oleh CPU selama satu siklus satu jam. Data Tunggal: Hanya satu aliran data yang digunakan sebagai input selama satu siklus satu jam Eksekusi deterministik, Ini adalah tipe komputer tertua
Contoh: mainframe generasi lama, minicomputer, workstation dan prosesor tunggal / PC inti.
- Single Instruction, Multiple Data (SIMD), Intruksi tunggal, Banyak Data, Paling cocok untuk masalah khusus yang ditandai dengan tingkat keteraturan yang tinggi, seperti pemrosesan gambar / gambar. Sebagian besar komputer modern, terutama yang memiliki unit prosesor grafis (GPU) menggunakan instruksi dan unit eksekusi SIMD.
Contoh:
Susunan Prosesor: Mesin Berpikir CM-2, MasPar MP-1 & MP-2, ILLIAC IV.
Pipa Vektor: IBM 9000, Cray X-MP, Y-MP & C90, Fujitsu VP, NEC SX-2, Hitachi S820, ETA10.
- Multiple Instruction, Single Data (MISD), Setiap unit pemrosesan beroperasi pada data secara independen melalui aliran instruksi terpisah dan Aliran data tunggal.
- Multiple Instruction, Multiple Data (MIMD), Intruksi berganda, Banyak Data : Setiap prosesor dapat bekerja dengan aliran data yang berbeda, dan Eksekusi dapat sinkron atau asinkron, deterministik atau non-deterministik. jenis komputer paralel yang paling umum kebanyakan adalah superkomputer modern termasuk dalam kategori ini. banyak arsitektur MIMD juga menyertakan sub-komponen eksekusi SIMD.
Contoh: sebagian besar komputer super saat ini, jaringan komputer paralel dan "grid", komputer SMP multi-prosesor, PC multi-core.
Ada beberapa Arsitektur memori pada komputasi parallel, antara lain :
- Share Memory
Berbagi memori yang memiliki karakteristik umum dimana memiliki memori parallel yang bervariasi dan memiliki kemampuan prosessor yang sama untuk mengakses semua memori sebagai ruang alamat global. Beberapa prosessor juga dapat beroperasi secara independe tetapi masih dalam memori yang sama. Secara historis juga mesin memori ini telah dikalsifikasikan sebagai Uniform Memory Access (UMA) dan Non-Uniform Memory Access (NUMA).
Keuntungan & kerugian penggunaan Share memory :
• Berbagi data antar tugas berlangsung cepat dan seragam karena kedekatan memori dengan CPU.
• Kerugian utama adalah kurangnya skalabilitas antara memori dan CPU. Menambahkan lebih banyak CPU dapat secara geometris meningkatkan lalu lintas di jalur memori-CPU bersama, dan untuk sistem cache yang koheren, secara geometris meningkatkan lalu lintas yang terkait dengan manajemen cache / memori.
- Distributed MemorySeperti sistem Shared Memori, sistem memori terdistribusi sangat bervariasi tetapi berbagi karakteristik umum. Sistem memori terdistribusi memerlukan jaringan komunikasi untuk menghubungkan memori antar-prosesor. Prosesor memiliki memori lokal mereka sendiri, Karena setiap prosesor memiliki memori lokal sendiri, ia beroperasi secara independen. Perubahan yang dilakukan pada memori lokal tidak berpengaruh pada memori prosesor lain. Karenanya, konsep koherensi cache tidak berlaku. Ketika prosesor membutuhkan akses ke data dalam prosesor lain, biasanya tugas programmer untuk secara eksplisit menentukan bagaimana dan kapan data dikomunikasikan. Sinkronisasi antar tugas juga merupakan tanggung jawab programmer.
Lalu keuntungan & kerugian dari Distributed memory :
• Setiap prosesor dapat dengan cepat mengakses memorinya sendiri tanpa gangguan dan tanpa mengeluarkan biaya overhead dengan mencoba mempertahankan koherensi cache global.
• Efektivitas biaya: dapat menggunakan komoditas, prosesor dan jaringan off-the-shelf.
• Programmer bertanggung jawab atas banyak detail yang terkait dengan komunikasi data antar prosesor.
• Waktu akses memori yang tidak seragam . Data yang berada di node jauh membutuhkan waktu lebih lama untuk diakses daripada data lokal node.
- Hybrid Distributed-Shared Memory
Komponen memori terdistribusi adalah jaringan beberapa mesin memori / GPU bersama, yang hanya tahu tentang memori mereka sendiri, bukan memori pada komputer lain. Oleh karena itu, komunikasi jaringan diperlukan untuk memindahkan data dari satu mesin ke mesin lainnya. Tren saat ini tampaknya menunjukkan bahwa jenis arsitektur memori ini akan terus menang dan meningkat pada komputasi tingkat tinggi untuk masa yang akan datang.
Keuntungan & kerugian :
• Peningkatan skalabilitas merupakan keuntungan.
• Dan meningkatnya kompleksitas programmer adalah kelemahannya.
Terima Kasih
Sumber : https://computing.llnl.gov/tutorials/parallel_comp/