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 :
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.
E.
Pengantar Massage Passing dan OpenMP
1.
Message Passing Interface (MPI)
MPI adalah sebuah
standard pemrograman yang memungkinkan pemrogram untuk membuat sebuah 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-pertimbangan diantaranya adalah latensi dari
jaringan dan lama sebuah tugas dieksekusi oleh prosesor.
MPI ini merupakan
standard yang dikembangkan untuk membuat aplikasi pengirim pesan secara
portable. Sebuah komputasi paralel terdiri dari sejumlah proses, dimana
masing-masing bekerja pada beberapa data lokal. Setiap proses mempunyai
variabel lokal, dan tidak ada mekanismesuatu proses yang bisa mengakses secara
langsung memori yang lain. Pembagian data antar
proses dilakukan dengan message passing, yaitu dengan mengirim dan
menerima pesan antar proses. MPI
menyediakan fungsi-fungsi untuk menukarkan antar pesan. Kegunaan MPI yang lain
:
- Menulis kode paralel secara portable
- Mendapatkan performa yang tinggi dalam
pemrograman paralel
- Menghadapi permasalahan yang melibatkan
hubungan data irregular atau dinamis yang tidak
begitu cocok dengan model data paralel.
2.
OpenMP
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 :
Tidak ada komentar:
Posting Komentar