Laman

Kamis, 21 Mei 2015

Komputasi Paralel

Konsep Paralel
            Perkembangan baru dalam arsitektur komputer yang didasarkan oleh konep pemrosesan parallel. Pemrosesan parallel dalam komputer dijelaskan sebagai pelaksanaan instruksi waktu secara bersamaan. Hal tersebut dapat menyebabkan kejadian dalam interval waktu yang sama, waktu yang bersamaan atau rentang waktu yang saling tumpah tindih. Oleh karena itu dibuatlah konsep parallelism untuk menangani masalah dan aplikasi yang membutuhkan kecepatan pemrosesan yang cepat.

Pemrosesan Distribusi
            Merupakan ungkapan yang digunakan untuk merujuk kepada pembagian sistem komputer yang menggunakan lebih dari satu komputer (prosesor) untuk menjalankan sebuah aplikasi. Ini termasuk pemrosesan parallel dimana satu komputer menggunakan lebih dari satu CPU untuk mengeksekulsi program.
            Pemrosesan terdistribusi mengacu pada jaringan local (LAN), dirancang agar satu program dapat berjalan secara bersamaan diberbagai situs.

Arsitektur  Komputer Paralel
Terdapat dua sistem komputer konvensional, yaitu Prosesor dan Memory. Berikut penjelasan gambarnya:

Dua arsitektur komputer parallel yang sering digunakan, yaitu SIMD dan MIMD.
SIMD (Single Instruction Stream, Multiple Data Stream), peningkatan kecepatan SIMD proporsional dengan jumlah proses unit yang ada.

Struktur umum dari 16 elemen pemrosesan dan unit control tunggal dapat dilihat pada gambar dibawah ini:
 

MISD (Multiple Instruction Stream, Single Data Stream),  berdasarkan prinsip pipelining. Proses ini dibagi menjadi beberapa tahap dan beberapa proses (secara simultan).

MIMD (Multiple Instruction Stream, Multiple Data Stream),  merupakan sistem multiprosesing atau multicomputer. MIMD terdiri dari sistem tightly coupled (global memori) dan loosely coupled (local memori).
 


Pengantar Thread Programming
            Sebuah thread merupakan informasi yang berhubungan dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. Thread memungkinkan program untuk mengetahui user sedang masuk didalam program secara bergantian dan akan kembali masuk atas nama user yang berbeda.
            Terdapat dua teknik yang digunakan pada thread:
-       Static Threading, biasa digunakan untuk komputer dengan chip multiprosesor dan jenis komputer shared-memory lain. Teknik ini membolehkan berbagi memori yang tersedia, menggunakan program counter dan mengeksekusi program secara independen. Mekanisme ini bisa dibilang lambat karena berjalan secara static.
-       Dynamic Multithreading, merupakan pengembangan dari static threading yang digunakan untuk memudahkan programmer untuk berkomunikasi, load balancing dan kerumitan lainnya. Platformnya masih daam pengembangan dan secara umum mendukung dua fitur nested parallelism dan parallel loops.

Pengantar Message Passing, Open MP
            Message passing merupakan sebuah teknik cara mengatur suatu alur komunikasi messaging terhadap proses pada sistem. Message passing dalam ilmu komputer adalah bentuk komunikasi digunakan dalam komputasi parallel, pemrograman berorientasi objek dan komunikasi interproses,
            Paradigma Message Passing:
1.     Banyak contoh dari paradima sekuensial dipertimbangkan bersama-sama
2.     Programmer membayangkan beberapa prosesor, masing-masing dengan memori dan menulis sebuah program untuk berjalan pada setiap prosesor.
3.     Proses berkomunikasi dengan mengirimkan prsan satu sama lain.
OpenMP merupakan API yang mendukung multi-platform berbagai memori multiprosesing pemrograman C, C++ dan Fortran, kebanyakan arsitektur prosesor dan sistem operasi seperti Linux, Mac, Solaris, AIX, HP-UX. OpenMP dikelola oleh nirlaba teknologi konsorsium OpenMP Arsitektur Review Board (ARB/OpenMP).

Pengantar Pemrograman CUDA, GPU
            CUDA (Compute Unified Device Architecture) merupakan framework dari bahsa pemrigraman yang mendukung bahasa C, dimana mampu berkomunikasi langsung dengan GPU dan sangat mudah bekerjasama untuk segala multi-threading parallel execution hampir diseluruh prosesor GPU. CUDA menggunakan konsep nvcc sebagai ORM dalam objek programmingnya. CUDA merupakan produk dari NVDIA.
            GPU (Graphics Processing Unit) merupakan prosesor yang didedikasikan untuk ender ceprat dalam pemrosesan polygon baik itu texturing dan shading. Terdiri dari banyak core namun menggunakan arsitektur sederhana, sehingga harganya relative murah dan diproduksi secara masal.



Source:
http://www.academia.edu/7424831/Parallel_PROCESSING_Pemrosesan_paralel
http://www.webopedia.com/TERM/D/distributed_processing.html
http://seto.citravision.com/berita-49-parallel-computation---pengantar-thread-programming.html
http://seto.citravision.com/berita-50-parallel-computation--pengantar-message-passing-openmp.html
http://seto.citravision.com/berita-51-parallel-computation--pengantarpemrograman-cuda-gpu.html

PDF Dosen Algoritma dan Pengolahan Paralel