D. 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 :
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.
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.
E. Pengantar Message Passing,
Open MP
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 . Dalam model ini, proses atau benda dapat mengirim dan menerima
pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau
bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. 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
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.
F. Pengantar Pemrograman
CUDA GPU
GPU ( Graphical Processing Unit ) awalnya adalah sebuah
prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik
saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, terutama
untuk mendekati waktu proses yang realtime, maka meningkat pula kemampuan
prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat
daripada peningkatan teknologi prosesor sesungguhnya ( CPU ), dan pada akhirnya
GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk melakukan
rendering saja melainkan bisa untuk proses komputasi secara umum.
Penggunaan Multi GPU dapat mempercepat waktu proses dalam
mengeksekusi program karena arsitekturnya yang natively parallel. Selain itu
Peningkatan performa yang terjadi tidak hanya berdasarkan kecepatan hardware
GPU saja, tetapi faktor yang lebih penting adalah cara membuat kode program
yang benarbenar bisa efektif berjalan pada Multi GPU.
CUDA merupakan teknologi anyar dari produsen kartu grafis
Nvidia, dan mungkin belum banyak digunakan orang secara umum. Kartu grafis
lebih banyak digunakan untuk menjalankan aplikasi game, namun dengan teknologi
CUDA ini kartu grafis dapat digunakan lebih optimal ketika menjalankan sebuah
software aplikasi. Fungsi kartu grafis Nvidia digunakan untuk membantu
Processor (CPU) dalam melakukan kalkulasi dalam proses data.
CUDA merupakan singkatan dari Compute Unified Device
Architecture, didefinisikan sebagai sebuah arsitektur komputer parallel,
dikembangkan oleh Nvidia. Teknologi ini dapat digunakan untuk menjalankan
proses pengolahan gambar, video, rendering 3D, dan lain sebagainya. VGA – VGA dari Nvidia yang sudah
menggunakan teknologi CUDA antara lain : Nvidia GeForce GTX 280, GTX 260,9800
GX2, 9800 GTX+,9800 GTX,9800 GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400
mGPU,9300 mGPU,8800 Ultra,8800 GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600
GT,8500 GT,8400 GS, 8300 mGPU, 8200 mGPU, 8100 mGPU, dan seri sejenis untuk
kelas mobile ( VGA notebook ).
Singkatnya, CUDA dapat memberikan proses dengan pendekatan
bahasa C, sehingga programmer atau pengembang software dapat lebih cepat
menyelesaikan perhitungan yang komplek. 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.
Sumber :
·
http://maladawatunnajah.blogspot.co.id/2015/11/pengantar-thread-programming.html?m=1
http://www.seto.citravision.com/berita-50-parallel-computation--pengantar-message-passing-openmp.html
·
https://krustybrain.wordpress.com/2013/05/25/tugas-4-softskill-pengantar-komputasi-modern-sem-8/