Jumat, 17 Juni 2016

PEMROGRAMAN CUDA DAN GPU



      A.    Pemrograman CUDA dan GPU
GPU ( Graphical Processing Unit ) adalah sebuah prosesor yang berfungsi khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan semakin meningkatnya kebutuhan rendering, sebanding dengan kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini lebih cepat daripada peningkatan teknologi prosesor sesungguhnya/CPU, dan pada akhirnya GPU menjadi General Purpose, artinya tidak lagi hanya digunakan untuk melakukan rendering saja melainkan bisa untuk proses komputasi secara umum. 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 relatif murah dan di produksi secara missal untuk berbagai keperluan misalnya penelitian ilmiah. 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 efektif berjalan pada Multi GPU.
CUDA ( Compute Unified Device Architecture) merupakan suatu framework dari bahasa pemrograman yang mendukung bahas C language, dimana mampu berkomunikasi langsung dengan GPU dan secara realtime bekerjasama untuk segala multi-threading  parallel execution hampir diseluruh prosesor pada GPU. CUDA menggunakan konsep nvcc sebagai ORM (Objcet Relational Mapping) dalam object programmingnya. CUDA merupakan produk dari NVIDIA sebagai produsen graphic komputer ternama.

Sumber :


TikaNesia - Jasa Pembuatan Website

MESSAGE PASSING DAN OpenMP



     A.    Message Passing dan openMP

Massage passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman berorientasi objek, dan komunikasi interproses. Dalam model ini, proses atau benda dapat mengirimkan dan menerima pesan (yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode) ke proses lainnya. Dengan menunggu pesan, proses juga dapat di sinkronisasi. Secara umum massage passing menjadi 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.
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.
MPI (Message Passing Interface) 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.

Sumber :
http://seto.citravision.com/berita-50-parallel-computation--pengantar-message-passing-openmp.html
http://en.wikipedia.org/wiki/Message_passing


  TikaNesia - Jasa Pembuatan Website

THREAD PROGRAMMING



      A.    Thread Programming
Thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Dari program point-of-view, sebuah thread adalah informasi yang dibutuhkan untuk melayani satu pengguna individu atau permintaan layanan tertentu. Jika beberapa pengguna menggunakan program atau permintaan bersamaan dari program lain yang sedang terjadi, thread yang dibuat dan dipelihara untuk masing-masing proses. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Terdapat 2 Jenis Thread yaitu :

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. 


TikaNesia - Jasa Pembuatan Website

ARCHITECTURAL PARALEL COMPUTER ( ARSITEKTUR KOMPUTER PARALEL )


A.    Arsitektur Komputer Paralel
Arsitektur paralel komputer menurut Klasifikasi Flynn’s terbagi menjadi 4 klasifikasi Arsitektur Paralel yakni:

a) SISD - Single Instruction Single Data Stream 
Model ini hanya digunakan 1 processor saja. Oleh karena itu model ini bisa dikatakan sebagai model untuk komputasi tunggal

 


- Aliran Instruksi tunggal
- Prosesor tunggal
- Data disimpan dalam memori tunggal




b) SIMD - Single Instruction Multiple Data Stream
Model ini menggunakan banyak processor dengan instruksi yang sama, namun setiap processor mengolah data yang berbeda.


- berdasarkan lock step
- setiap pengolahan elemen memiliki hubungan dengan memori data 
- data dieksekusi oleh prosesor yang berbeda-beda dan prosessor vector dan array
- mensin instruksi tunggal
- mengontrol eksekusi secara serentak

c) MISD - Multiple Instruction Single Data Stream
Prosesor pipeline adalah prosesor MISD yang bekerja berdasarkan prinsip pipelining. Pada pipeline proses dapat dibagi menjadi beberapa tahap dan beberapa proses dapat dilaksanakan secara simultan. Pada gambar dibawah dapat dilihat perbedaan proses serial dengan pipeline

- rangkaian dari data
- dikirmkan kekumpulan prosesor
-setiap Prosesor mengeksekusi urutan instruksi yang berbeda
 

d) MIMD - Multiple Instruction Multiple Data Stream
Model ini menggunakan banyak processor dengan setiap processor memiliki instruksi yang berbeda dan mengolah data yang berbeda

- SMP,cluster dan sistem NUMA
- Kumpulan dari sejumlah prosessor
- mengeksekusi secara serentak data yang berbeda
 

Sumber :
http://seto.citravision.com/berita-48-parallel-computation--architectural-parallel-computer.html
http://repository.gunadarma.ac.id/bitstream/123456789/749/1/A26-29_Amien_Rusdiutomo.pdf



TikaNesia - Jasa Pembuatan Website