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. Di dalam komputasi parallel ada yang dinamakan dengan pemrograman parallel. Pemrograman paralel adalah teknik pemrograman komputer yang memungkinkan eksekusi perintah atau 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 digunakanadalah sistem terdistribusi (distributed computing). Perlu diingat adalah komputasi paralel berbeda dengan multitasking. Pengertian multitasking adalah komputer dengan processor tunggal mengeksekusi beberapa tugas secara bersamaan. Walaupun beberapa orang yang bergelut di bidang sistem operasi beranggapan bahwa komputer tunggal tidak bisa melakukan beberapa pekerjaan sekaligus, melainkan proses penjadwalan yang berlakukan pada sistem operasi membuat komputer seperti mengerjakan tugas secara bersamaan. Sedangkan komputasi paralel sudah dijelaskan sebelumnya, bahwa komputasi paralel menggunakan beberapa processor atau komputer.Selain itu komputasi paralel tidak menggunakan arsitektur Von Neumann. Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, Paralel Processingadalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.
Komputasi Parallel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan. Komputasi Paralel membutuhkan :
Contoh komputasi pralel
Pada gambar diatas terdapat sebuah masalah, dimana masalah tersebut dibagi menjadi beberapa bagian lalu bagian dari masalah tersebut dibagikan ke-tiga CPU untuk diselesaikan secara bersamaan. Untuk mempermudah pengembangan program di lingkungan komputasi paralel, dikembangkan model pemrograman yang menjadi cara untuk menggambarkan struktur algoritma paralel, sesuai dengan pilihan metode dekomposisi dan pemetaan proses. Model-model tersebut akan menjadi pendekatan dalam melakukan desain komputasi paralel. Model-model pemrograman tersebut adalah:
Tujuan utama penggunaan komputasi paralel adalah untuk mempersingkat waktu eksekusi program yang menggunakan komputasi serial. Beberapa alasan lain yang menjadikan suatu program menggunakan komputasi paralel antara lain :
Penggunaan komputasi paralel sebagai solusi untuk mempersingkat waktu yang dibutuhkan untuk eksekusi program mempunyai beberapa hambatan. Hambatan-hambatan tersebut antara lain adalah :
Taksonomi Flynn membagi arsitektur komputer paralel dengan menggunakan sudut pandang instruksi dan data, sehingga terdapat empat jenis arsitektur komputer paralel :
Pada umumnya, ada dua buah arsitektur memori pada komputer paralel, yaitu shared memory dan distributed memory.
Arsitektur ini menyediakan global addressing sehingga berbagai prosesor mempunyai cara pengaksesan memori yang seragam. Setiap perubahan pada suatu lokasi memori oleh suatu prosesor akan selalu terlihat oleh prosesor lain. Kelebihan dari arsitektur ini antara lain adalah pengaksesan memori yang user friendly dan performansi yang baik dalam penggunaan data bersama antar task. Sedangkan kekurangannya antara lain adalah kurangnya skalabilitas ketika terjadi penambahan prosesor, di mana akan terjadi peningkatan traffic antara prosesor ke shared memory dan antara cache coherent system dengan memori sebenarnya.
Arsitektur ini mempunyai karakteristik di mana setiap prosesor memiliki memorinya masing-masing, sehingga eksekusi instruksi dapat berjalan secara independen antara satu prosesor dengan yang lain. Prosesor akan menggunakan jaringan ketika membutuhkan akses ke memori non lokal. Akses ini sepenuhnya menjadi tanggung jawab penulis program. Kelebihan dari arsitektur ini adalah terjaganya skalabilitas ketika terjadi penambahan prosesor. Sedangkan kekurangannya adalah penulis program harus berurusan dengan detail komunikasi data antara prosesor dan memori non lokal. Distributed Processing atau Distributed Computing System adalah sekumpulan peralatan pemrosesan yang saling terhubung melalui jaringan komputer dan saling bekerjasama untuk mengerjakan tugas-tugas tertentu. Yang dimaksud dengan peralatan pemrosesan dataadalah peralatan komputasi yang dapat mengeksekusi sendiri sebuah program. Sekumpulan peralatan yang saling terhubung akan mendistribusikan berbagai macam hal, dianataranya adalah:
Kriteria Distributed Processing Pemrosesan terdistribusi (Distributed Processing) dapat dikelompokkan berdasarkan beberapa kriteria, yaitu:
Threading / Thread adalah sebuah alur kontrol dari sebuah proses. Konsep threading adalah menjalankan 2 proses ( proses yang sama atau proses yang berbeda ) dalam satu waktu. Contoh: Sebuah web browser mempunyai thread untuk menampilkan gambar atau tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network. Threading dibagi menjadi 2, yaitu :
GPU (Graphic Processing Unit) sendiri merupakan sebuah alat/hardware, yang berfungsi sebagai render grafis terdedikasi dalam kesatuan sistem hardware PC atau Notebook. GPU bisa berada pada Video Card khusus (VGA Card) atau terintegrasi dalam Motherboard berupa Integrated GPU. GPU berfungsi untuk mengolah dan memanipulasi grafis pada CPU (Central Processing Unit), untuk nantinya ditampilkan dalam bentuk Visual Grafis pada Monitor (output). CUDA (Compute Unified Device Architecture) adalah arsitektur komputasi paralel yang dikembangkan oleh NVIDIA. CUDA adalah mesin komputasi dalam pemrosesan grafis NVIDIA unit (GPU) yang dapat diakses oleh pengembang perangkat lunak melalui varian dari bahasa pemrograman standar industri. CUDA merupakan kumpulan program-program yang menerjemahkan teks dalam bentuk bahasa komputer (computer language) berupa source language/source code, ke dalam bentuk bahasa komputer yang lain (target language/object code). Arsitektur CUDA memungkinkan GPU (yang telah support CUDA) menjadi arsitektur terbuka seperti layaknya CPU (Central Processing Unit atau Processor). Hanya, tidak seperti CPU, GPU memiliki arsitektur banyak-inti yang pararel. Setiap inti memiliki kemampuan untuk menjalankan ribuan “thread” secara simultan. Jika aplikasi yang dijalankan sesuai dengan arsitektur ini, GPU dapat menyediakan keuntungan yang lebih besar dari segi performa proses aplikasi tersebut. Komponen Pendukung CUDA Secara umum, komponen-komponen pendukung CUDA adalah:
http://fadliiman.blogspot.com/2016/06/komputasi-paralel.html http://akhmadilman46.blogspot.com/2013/05/komputasi-paralel.html
https://loraanisya.wordpress.com/2017/06/06/parallel-computation-komputasi-paralel/ Page 2
|