Selamat pagi agan dan
aganwati semua, sekarang saya ingin sedikit membahasa tentang Komputasi
Parallel. Disini akan mengulas konsep dari komputasi parallel itu sendiri,
pemrosesan terdistribusi , juga ada thread programming serta tentang CUDA GPU.
1. Konsep Paralelisme
Perkembangan yang terus
maju dalam arsitektur komputer ini bisa dikarenakan adanya konsep dari sebuah
pemrosesan parallel. Pemrosesan parallel adalah sebuag instruksi yang secara
bersamaan waktunya dalam mengeksekusi sesuuatu. Jika dengan komputer sekuensial
walaupun menggunakan teknologi prosessor yang sangat cepat tetap akan mengalami
keterbatasan. Dengan konsep parallelism ini, keterbatasan yang dimiliki oleh
komputer sekuensial bisa diatas, proses dalam mengeksekusi suatu kejadian
semakin lebih cepat.
2. Pemrosesan
Terdistribusi
Pemrosesan
Terdistribusi atau Sistem Terdistribusi adalah Sekumpulan komputer otonom yang
terhubung ke suatu jaringan, dimana bagi pengguna sistem terlihat sebagai satu
komputer. Maksud komputer otonomi adalah walaupun komputer tidak terhubung ke
jaringan, komputer tersebut tetap data berjalan. Dengan menjalankan sistem
terdistribusi, komputer dapat melakukan: Koordinasi Aktifitas, berbagi sumber
daya : hardware, software dan data
3.Arsitektur Komputer
Parallel
Paralelisme dalam suatu
komputer dapat diaplikasikan pada beberapa tingkatan, seperti berikut:
a. Tingkat
Pekerjaan
b. Tingkat
Prosedure
c. Tingkat
Instruksi
d. Tingkat
Aritmatika dan Bit
4. Pengantar Thread
Programming
Sebelumnya sudah tau
kah agan apa itu thread? Kalo belum mohon
dibaca baik baik ya hehe
Perbedaan antara proses dengan thread tunggal
dengan proses dengan thread yang banyak adalah proses dengan thread
yang banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu.
Thread adalah sebuah alur kontrol dari sebuah proses. Kontrol
thread tunggal ini hanya memungkinkan proses untuk menjalankan satu
tugas pada satu waktu. Banyak sistem operasi modern telah memiliki konsep yang
dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multi-threads,
agar dapat secara terus menerus mengetik dan menjalankan pemeriksaan ejaan
didalam proses yang sama, maka sistem operasi tersebut memungkinkan proses
untuk menjalankan lebih dari satu tugas pada satu waktu. Suatu proses yang
multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat
yang sama.
5. Pengantar Message Parsing, Open MP
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 parallel menghadapi permasalahan yang melibatkan
hubungan data irregular atau dinamis yang tidak begitu cocok dengan model data
paralel.
OpenMP
Open MP 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.
6. 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 (Compute Unified
Device Architecture) merupakan teknologi anyar dari produsen kartu grafis
Nvidia, dan mungkin belum banyak digunakan orang secara umum. Teknologi ini
dapat digunakan untuk menjalankan proses pengolahan gambar, video, rendering
3D, dan lain sebagainya. 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
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.
Reference:
http://en.wikipedia.org/wiki/Parallel_computing
http://devblogs.nvidia.com/parallelforall/introduction-cuda-dynamic-parallelism/
http://en.wikipedia.org/wiki/Distributed_computing
http://whatis.techtarget.com/definition/distributed-computing
http://seto.citravision.com/berita-49-parallel-computation---pengantar-thread-programming.html
http://ananda-syaifullah.blogspot.sg/2015/05/komputasi-parallel.html
http://en.wikipedia.org/wiki/OpenMP
https://developer.nvidia.com/cuda-gpus
https://developer.nvidia.com/about-cuda
http://en.wikipedia.org/wiki/CUDA