A.Komputasi
Pararel
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.
Untuk
melakukan aneka jenis komputasi paralel ini diperlukan
infrastruktur mesin paralel yang terdiri dari banyak komputer
yang dihubungkan dengan jaringan dan mampu
bekerja secara paralel untuk menyelesaikan
satu masalah.
Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai
middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin
paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan
komputasi. Tidak berarti dengan mesin paralel semua
program yang dijalankan diatasnya
otomatis akan
diolah secara parallel.
Contoh
:
Komputer SISD
B.Parallelism
Consept
Ada dua
bentuk umum paralelisme: paralelisme instruksi-level dan paralelisme prosesor-level. Pada bentuk pertama, paralelisme dimanfaatkan dalam instruksi-instriuksi individu agar dapat mngeksekusi lebih banyak instruksi per detikdari mesin tersebut. Pada betuk kedua, berbagai
macam CPU bersama-sama menangani masalah yang sama. Setiap pendekatan
memiliki keunggulannya masing-masing.
Contoh :
Multikomputer dan Multiprosessor
C. Distributed Processing
Adalah
kemampuan menjalankan semua proses pengolahan data secara bersama antara komputer yang berfungsi sebagai pusat dengan beberapa
komputer yang lebih kecil dan saling
dihubungkan melalui jalur komunikasi. Setiap komputer tersebut memiliki prosesor mandiri sehingga mampu mengolah sebagian data secara terpisah, kemudian hasil pengolahan tadi digabungkan menjadi satu penyelesaian
total. Jika salah satu prosesor mengalami
kegagalan atau masalah maka prosesor
yang lain akan mengambil alih tugasnya. Dalam proses distribusi sudah mutlak diperlukan perpaduan yang mendalam antara teknologi komputer dan telekomunikasi,
karena selain proses yang harus didistribusikan, semua host komputer wajib melayani terminal-terminalnya dalam satu perintah dari
komputer pusat
Contoh
:
Jaringan Client server
D.Architectur
Parallel Computer
Arsitektur
Komputer Paralel Beserta Jenis Arsitekturnya
Komputasi
paralel adalah salah satu teknik
melakukan komputasi secara bersamaan dengan memanfaatkan beberapa komputer secara bersamaan.
Biasanya diperlukan saat kapasitas yang diperlukan sangat besar, baik karena
harus mengolah data dalam jumlah besar
ataupun karena tuntutan proses komputasi yang banyak. Untuk melakukan aneka
jenis komputasi paralel ini diperlukan
infrastruktur mesin paralel yang terdiri dari banyak komputer
yang dihubungkan dengan jaringan dan mampu
bekerja secara paralel untuk menyelesaikan
satu masalah. Untuk itu diperlukan aneka perangkat lunak pendukung yang biasa disebut sebagai
middleware yang berperan untuk
mengatur distribusi pekerjaan antar node dalam satu mesin
paralel. Selanjutnya pemakai harus membuat pemrograman paralel untuk merealisasikan
komputasi.
Contoh
:
Taksonomi Flyn yaitu SISD,SIMD,MISD,MIMD
E.Pengantar
Thread Programming
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. Contohnya
sebuah web browser mempunyai
thread untuk menampilkan gambar atau tulisan
sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Threading dibagi menjadi 2 :
1.Static
Threading
Teknik
ini biasa digunakan untuk komputer dengan chip
multiprocessors dan jenis komputer shared-memory lainnya. Teknik ini memungkinkan
thread berbagi memori yang tersedia, menggunakan program
counter dan mengeksekusi
program secara independen. Sistem operasi menempatkan satu thread pada prosesor dan
menukarnya dengan thread
lain yang hendak menggunakan
prosesor itu.
2.Dynamic
Multithreading
Teknik
ini merupakan pengembangan dari teknik sebelumnya yang bertujuan untuk kemudahan karena dengannya programmer tidak harus pusing dengan
protokol komunikasi, load
balancing, dan kerumitan
lain yang ada pada static
threading. Concurrency platform ini menyediakan scheduler yang melakukan load balacing secara otomatis. Walaupun platformnya masih dalam pengembangan
namun secara umum mendukung dua fitur : nested parallelism dan parallel
loops.
Contoh
:
Java
F. Pengantar Massage
Passing dan OpenMP
Message Passing merupakan sebuah bentuk dari
komunikasi yang digunakan
di komputasi paralel, OOT
(Object Oriented Programming) atau Pemrograman Berbasis Objek dan komunikasi
interproses. Massage Passing
merupkan suatu teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada system.
Message passing dalam ilmu komputer adalah suatu bentuk komunikasi
yang digunakan dalam komputasi paralel , pemrograman-berorientasi objek , dan komunikasi
interprocess. Objek didistribusikan dan metode sistem remote doa seperti ONC RPC , CORBA , Java RMI , DCOM , SOAP , . NET Remoting ,
CTO , QNX Neutrino RTOS , OpenBinder , D-Bus , Unison
RTOS dan serupa pesan lewat sistem.
Paradigma
Message passing yaitu :
1. Banyak
contoh dari paradigma sekuensial dipertimbangkan bersama-sama.
2. Programmer membayangkan beberapa prosesor, masing-masing dengan memori, dan menulis sebuah
program untuk berjalan pada setiap prosesor.
3. Proses berkomunikasi dengan mengirimkan pesan satu sama
lain
MPI
adalah sebuah standard pemrograman yang memungkinkan pemrogram untuk membuatsebuah aplikasi yang dapat dijalankan secara paralel.
Proses yang dijalankan oleh
sebuah aplikasi dapat dibagi untuk
dikirimkan ke masing – masing compute node yang
kemudian masing – masing compute node tersebut mengolah dan mengembalikan
hasilnya ke komputer head node.Untuk merancang aplikasi paralel tentu membutuhkan
banyak pertimbangan - pertimbangandiantaranya adalah latensi dari jaringan
dan lama sebuah tugas dieksekusi oleh prosesor.
OpenMP
merupakan API yang mendukung
multi-platform berbagi memori
multiprocessing pemrograman C , C + + , dan Fortran , pada kebanyakan arsitektur prosesor dan system operasi , termasuk Solaris , AIX
, HP-UX , GNU / Linux , Mac OS X , dan Windows
platform. Ini terdiri dari satu set perintah
kompiler, rutinitas
library, dan variable lingkungan
yang mempengaruhi perilaku
run-time. OpenMP dikelola oleh nirlaba teknologi
konsorsium OpenMP Arsitektur Review Board (ARB atau
OpenMP), bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan vendor perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu , Nvidia , NEC , Microsoft , Texas Instruments , Oracle
Corporation , dan banyak lagi.
Contoh
:
C++ , C , dan Fotran.
G. PEMROGRAMAN CUDA GPU
Graphics Processing
Unit merupakan prosesor
yang didedikasikan untuk
render cepat dalam pemrosesan polygon baik itu texturing dan shading. Terdiri atas banyak core namun masih menggunakan
arsitektur yang sederhana, sehingga harganya relative murah dan di produksi
secara missal untuk berbagai keperluan misalnya peneilitian/ilmuah.
CUDA, Compute Unified
Device Architecture merupakan suatu
framework dari bahasa pemrograman yang mendukung bahas C language, dimana mampu berkomunikasi langsung dengan GPU dan sangat mudah
bekerjasama untuk segala multi-threading parallel execution hampir diseluruh prosesor pada GPU. CUDA menggukan konsep nvcc sebagai ORM dalam object programmingnya. CUDA merupakan produk
dari NVIDIA sebagai produsen graphic komputer ternama.
Bukan
hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA
sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya
meng-edit film dan melakukan filter gambar. Sebagai contoh dengan aplikasi
multimedia, sudah mengunakan
teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat memanfaatkan
CUDA hanya versi 8000 atau lebih tinggi.
Contoh
:
Visual Studio
Sumber:
1. http://akhmadilman46.blogspot.com/2013/05/komputasi-paralel.html
2. http://zulfadli-0635.blogspot.com/2009/01/proses-paralel-dalam-sistim-komputer.html
3. http://arifbudimanhsb.blogspot.com/2016/06/distributed-processing-adalah.html
4. https://pandanwulan.wordpress.com/2015/06/28/konsep-distribusi-processing-arsitektur-komputer-paralel-thread-programming-message-passing-atau-openmp-dan-pemrograman-cuda-pada-gpu/
5. http://maladawatunnajah.blogspot.com/2015/11/pengantar-thread-programming.html
6. https://muhammad-ridho94.blogspot.com/2016/06/message-passing-dan-openmp.html
7. https://syifaadeka.wordpress.com/2016/06/18/pemrograman-cuda-gpu/