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. 




Baca SelengkapnyaParallel Computation 2

Parallel Computation 1

Konsep Paralelisme

Paralelisme berasal dari pendekatan yang biasa para perancang sistem pergunakan dalam menerapkan pemrosesan konkuren. Dengan teknik ini dapat meningkatkan kecepatan proses dengan cara memperbanyak jumlah modul pada perangkat keras yang beroperasi secara simultan disertai dengan membentuk proses  yang bekerja secara simultan pada modul-modul perangkat keras tersebut. pemrosesan paralel sebuah bentuk efisien pemrosesan informasi yang menekankan pada eksploitasi dari konkurensi kejadian-kejadian dalam proses komputasi. 

Distributed Processing

Komputasi terdistribusi adalah bidang ilmu komputer yang mempelajari mengenai sistem terdistribusi. Sistem terdistribusi terdiri dari beberapa komputer otonom yang berkomunikasi melalui suatu jaringan komputer. Suatu program komputer yang berjalan di dalam sistem terdistribusi disebut program didistribusikan yang merupakan proses menulis program. Distributed Computing mengacu pada penggunaan sistem terdistribusi untuk memecahkan masalah-masalah komputasi, dengan sistem terdistribusi masalah dibagi menjadi beberapa tugas, masing-masing diselesaikan oleh satu komputer.

Kegiatan ini merupakan kumpulan beberapa komputer yang terhubung untuk melaksanakan pendistribusian, seperti mengirim dan menerima data serta interaksi antar komputer dengan memanfaatkan jaringan. Semua dilakukan dengan cloud computing yang memberikan layanan dengan informasi yang disimpan di server secara pemanen serta disimpan di komputer klien secara temporary.

Architectural Parallel Computer


Michael J Flynn menciptakan sistem klasifikasi untuk komputer dengan program paralel yang dikenal dengan taksonomi Flynn. Flynn mengelompokkan komputer dan program berdasarkan banyaknya set instruksi yang dieksekusi dan banyaknya set data yang digunakan oleh instruksi tersebut.

1. SISD (Single Instruction stream, Single Data stream)

Komputer tunggal yang memiliki satu unit kontrol, satu unit prosesor dan satu unit memori instruksi dilaksanakan secara berurut atau overlap. Dalam tahapan eksekusi (overlap) satu alur instruksi didecode untuk alur data tunggal.

2. SIMD (Single Instruction stream, Multiple Data stream

komputer yang memiliki beberapa unit prosesor di bawah satu supervisi satu unit common control. Setiap prosesor menerima instruksi yang sama dari unit kontrol, tetapi beroperasi pada data yang berbeda

3. MISD (Multiple Instruction stream, Single Data stream


4. MIMD (Multiple Instruction stream, Multiple Data stream

Organisasi komputer yang memiliki kemampuan untuk memproses beberapa program dalam waktu yang sama.




Sumber :
1. http://anditaajah.blogspot.co.id/2011/01/memaksimalkan-prosesor.html
2. http://ridwanraa.blogspot.co.id/2015/10/distributed-computation-dalam-cloud.html
3. http://myblogisland.blogspot.co.id/2013/04/parallel-computation.html



Baca SelengkapnyaParallel Computation 1