Tuesday, May 26, 2015

Komputasi Paralel

Konsep Komputasi Paralel

Paralel Processing adalah kemampuan menjalankan tugas atau aplikasi lebih dari satu aplikasi dan dijalankan secara simultan atau bersamaan pada sebuah komputer. Secara umum, ini adalah sebuah teknik dimana sebuah masalah dibagi dalam beberapa masalah kecil untuk mempercepat proses penyelesaian masalah.
Terdapat dua hukum komputasi paralel yaitu:
a. Hukum Amdahl
b. Hukum Gustafon

Pemrosesan Distribusi

Pemrosesan terdistribusi adalah ungkapan yang digunakan untuk merujuk kepada berbagai sistem komputer yang menggunakan lebih dari satu komputer (atau prosesor) untuk menjalankan sebuah aplikasi. Ini termasuk pemrosesan paralel di mana satu komputer menggunakan lebih dari satu CPU untuk mengeksekusi program.

2. Arsitektur Komputer Parallel
Sesuai taksonomi Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
A.    SISD (Single Instruction Single Data Stream)
Arus Instruksi Tunggal dan Data Tunggal
B.    SIMD (Single Instruction Multiple Data Stream)
Arus Instruksi Tunggal dan Multiple Data
C.    MISD (Multiple Instruction Single Data Stream)
Arus Multiple Instruksi dan Data Tunggal
D.    MIMD (Multiple Instruction Multiple Data Stream)
Arus Multiple Instruksi dan Multiple Data
 1.  Organisasi Prosesor SISD
  • Prosesor tunggal
  • Aliran instruksi tunggal
  • Data disimpan dalam memori tunggal
  • Uni-processor
Keterangan:
CU      : Control Unit
IS        : Instruction Stream (Arus Instruksi)
PU      : Processing Unit (Unit Pengolah yang biasa disebut ALU)
DS      : Data Stream (Arus Data)
MU     : Memory Unit (Unit Memori)
2.  Single Instruction, Multiple Data Stream – SIMD
  • Single machine instruction
  • Mengontrol eksekusi secara simultan
  • sejumlah elemen-elemen pengolahan
  • Berdasarkan Lock-step
  • Setiap pengolahan elemen memiliki hubungan dengan memori data
  • Setiap instruksi dieksekusi pada kumpulan data yang berbeda oleh prosesor yang berbeda
  • Prosesor Vector and array
3.  Multiple Instruction, Single Data Stream – MISD
  • Rangkaian dari data
  • Dikirimkan ke kumpulan prosesor
  • Setiap prosesor mengeksekusi urutan instruksi yang berbeda
  • Belum pernah diimplementasikan (komesial)
4.   Multiple Instruction, Multiple Data Stream- MIMD
  • Kumpulan/sejumlah prosesor
  • Mengeksekusi secara simultan urutan instruksi yang berbeda
  • Kumpulan data yang berbeda
  • SMP, Cluster and sistem NUMA
Pengantar Thread Programming

Dalam pemrograman komputer, sebuah thread adalah informasi terkait dengan penggunaan sebuah program tunggal yang dapat menangani beberapa pengguna secara bersamaan. 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.

Pengantar Message Passing, Open MP

A. Message Passing
Message Passing merupkan 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. Dalam model ini, proses atau benda dapat mengirim dan menerima pesan yang terdiri dari nol atau lebih byte, struktur data yang kompleks, atau bahkan segmen kode ke proses lainnya dan dapat melakukan sinkronisasi.
Paradigma Message passing yaitu :

1. Banyak contoh dari paradigma 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 pesan satu sama lain

B. Open MP
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.

Pengantar CUDA dan GPU

A. CUDA (Compute Unified Device Architecture)
merupakan suatu framework dari bahasa pemrograman yang mendukung bahas C language, dimana mampu berkomunikasi langsung dengan GPU dan sangat mudah bekerjasama untuk segala multi-threading  parallel execution hampir diseluruh prosesor pada GPU. CUDA menggukan konsep nvcc sebagai ORM dalam object programmingnya. CUDA merupakan produk dari NVIDIA sebagai produsen graphic komputer ternama.

B. GPU (Graphic Processing Unit)
Dalam permainan komputer industri, GPU yang digunakan tidak hanya untuk rendering grafis tetapi juga dalam perhitungan fisika permainan (efek fisik seperti puing-puing, asap, api, cairan), contoh termasuk PhysX dan Bullet . CUDA juga telah digunakan untuk mempercepat aplikasi non-grafis dalam biologi komputasi , kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.


Sumber: