Komputasi paralel adalah salah satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan
beberapa komputer independen secara bersamaan.
Konsep komputasi Parallel Processing
Gambar diatas merupakan
contoh dari sebuah komputasi paralel, dimana pada gambar diatas terdapat sebuah
masalah, dari masalah tersebut dibagi lagi menjadi beberapa bagian agar sebuah
masalah dapat dengan cepat diatasi. Tujuan Komputasi Paralel. Tujuan dari
komputasi paralel adalah meningkatkan kinerja komputer dalam menyelesaikan
berbagai masalah. Dengan membagi sebuah masalah besar ke dalam beberapa masalah
kecil, membuat kinerja menjadi cepat. Formula komputasi paralel yang diajukan
pada hukum Amdahl.
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
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
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)
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. 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.
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.
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.
Concurrency platform ini menyediakan scheduler yang melakukan load balacing
secara otomatis. Walaupun platformnya masih dalam pengembangan namun 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 erat kaitannya dengan GPU atau Graphics
Processing Unit. GPU adalah sebuah processor khusus yang dirancang untuk
mempercepat, memanipulasi dan mengubah memori yang berfungsi mempercepat
pemuatan gambar.
CUDA merupakan suatu cara yang dibuat oleh NVIDIA
agar GPU yang ada tidak hanya untuk mengolah grafis melainkan juga dapat
untuk tujuan umum. CUDA sendiri mendukung pemrogrman bahasa C yang dimana dapat
terhubung langsung dengan GPU. untuk melihatnya dapat membuka
www.nvidia.com/cuda .
sumber :
http://bramantyadwicahyadi.blogspot.com/2015/05/komputasi-paralel.html