Selasa, 10 Mei 2016

Parallel Computation 2


Pengantar Thread Programming


Dalam pemrograman komputer, thread merupakan informasi yang berkaitan 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 baik individu atau permintaan layanan tertentu. Thread memungkinkan program untuk untuk megetahui pengguna sedang masuk di dalam program secara bergantian dan akan kembali masuk atas nama pengguna yang berbeda. Salah satu informasi thread disimpan dengan cara menyimpannya di daerah data khusus dan menempatkan alamat dari daerah data dalam register. Sistem operasi selalu menyimpan isi register saat program interrupted dan restores ketika memberikan program kontrol lagi. 

Static Threading

Teknik yang biasa digunakan untuk komputer dengan chip multiprocessors dan jenis komputer shared-memory lainnya. Static Threading memungkinkan 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 adalah pengembangan dari teknik static threading yang bertujuan untuk memudahkan, 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 balancing secara otomatis. Walaupun platformnya masih dalam pengembangan namun sudah mendukung nested parallelism dan parallel loops.

Pengantar Message Passing, Open MP


Message Passing merupakan teknik bagaimana mengatur suatu alur komunikasi messaging terhadap proses pada sistem. Message passing dalam ilmu komputer adalah suatu bentuk komunikasi yang digunakan dalam pemrograman berorientasi objek, komputasi paralel, dan komunikasi interprocess. Pada model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau segmen kode ke proses lainnya dan dapat melakukan sinkronisasi. 

Terdapat beberapa metode dalam pengiriman pesan, yaitu :

1. Synchronous Message Passing 

Pengirim menunggu untuk mengirim pesan sampai penerima siap untuk menerima pesan. Karena itu tidak ada buffering, dan pengirim tidak dapat mengirim untuk dirinya sendiri.

2. Asynchronous Message Passing

Pengirim dapat mengirim pesan kapan saja, dan tidak peduli ketika penerima belum siap untuk menerima pesan. Karena itu butuh buffering untuk menampung pesan sementara sampai penerima siap menerima pesan, selain itu pengirim dapat pesan untuk dirinya sendiri.

OpenMP

OpenMP (Open Multiprocessing) adalah Application Programming Interface (API) yang mendukung pemrograman multiprocessing shared memory dalam bahasa program C/C++ dan fortran pada berbagai arsitektur dan sistem operasi : Solaris, AIX, GNU/Linux, Mac OS X, Windows dan HP-UX. 

OpenMP merupakan model portabel dan skalabel yang memberikan interface sederhana dan fleksibel bagi programmer shared memory dalam mmebangun aplikasi paralel. OpenMP akan memberikan kemudahan pemrograman serta membantu dalam menghindari kesalahan pada program.

Pengantar Pemrograman CUDA GPU


Graphics Processing Unit merupakan prosesor yang didefinisikan untuk render cepat dalam pemrosesan polygon baik itu texturing dan shadeing. Terdiri atas banyak core dengan arsitektur sederhana, karena itu harganya relatif murah dan diproduksi untuk berbagai keperluan, seperti penelitian. 

CUDA

Compute Unified Device Architectural adalah suatu framework dari bahasa pemrograman yang mendukung bahasa C, dimana mampu berkomunikasi langsung dengan GPU dan mudah bekerjasama untuk segala multithreading parallel execution hampir di seluruh prosesor pada GPU. CUDA menggunakan konsep nvcc sebagai ORM dalam object programming. CUDA adalah produk NVIDIA sebagai produsen graphic komputer ternama. 




Tidak ada komentar:

Posting Komentar