Parallel Computation
Parallelism Concept
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.
Komputasi paralel adalah salah
satu teknik melakukan komputasi secara bersamaan dengan memanfaatkan beberapa
komputer independen secara bersamaan. Ini umumnya diperlukan saat kapasitas
yang diperlukan sangat besar, baik karena harus mengolah data dalam jumlah
besar ataupun karena tuntutan proses komputasi yang banyak. Kasus kedua umum
ditemui di kalkulasi numerik untuk menyelesaikan persamaan matematis di bidang
fisika (fisika komputasi), kimia (kimia komputasi) dll.
Untuk melakukan aneka jenis
komputasi paralel ini diperlukan infrastruktur mesin paralel yang terdiri dari
banyak komputer yang dihubungkan dengan jaringan dan mampu bekerja secara
paralel untuk menyelesaikan satu masalah. Maka diperlukan perangkat lunak
pendukung yang disebut middleware yang berperan untuk mengatur distribusi
pekerjaan antar node dalam satu mesin paralel. Selanjutnya pemakai harus
membuat pemrograman paralel untuk merealisasikan komputasi.
Pemrograman paralel adalah teknik
pemrograman komputer yang memungkinkan eksekusi perintah/operasi secara
bersamaan baik dalam komputer dengan satu (prosesor tunggal) ataupun banyak
(prosesor ganda dengan mesin paralel) CPU.
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.
Distributed Processing
Didistribusikan pengolahan
paralel menggunakan pemrosesan paralel pada beberapa mesin. Salah satu contoh
dari hal ini adalah bagaimana beberapa komunitas memungkinkan pengguna untuk
mendaftar dan mendedikasikan komputer mereka sendiri untuk memproses beberapa
data set yang diberikan kepada mereka oleh server. Ketika ribuan pengguna
mendaftar untuk ini, banyak data dapat diproses dalam jumlah yang sangat
singkat.
Parallel distributed computing
dapat dibentuk dari :
Ada : digunakan konsep pertemuan yang menggabungkan fitur RPC dan
monitor.
PVM (Parallel Virtual Machine) untuk mendukung workstation clusters
MPI (Message-Passing Interface) programming GUI untuk parallel computers.
Architectural Parallel Computer
1 1. Komputer
SISD (Single Instruction stream-Single Data stream)
Pada komputer jenis ini semua
instruksi dikerjakan terurut satu demi satu, tetapi juga dimungkinkan adanya
overlapping dalam eksekusi setiap bagian instruksi (pipelining).
2 2. Komputer
SIMD (Single Instruction stream-Multiple Data stream)
Pada komputer SIMD terdapat lebih
dari satu elemen pemrosesan yang dikendalikan oleh sebuah unit pengendali yang
sama. Seluruh elemen pemrosesan menerima dan menjalankan instruksi yang sama
yang dikirimkan unit pengendali.
3 3. Komputer
MISD (Multiple Instruction stream-Single Data stream)
Komputer jenis ini memiliki unit
pemroses yang masing-masing menerima dan mengoperasikan instruksi yang berbeda
terhadap aliran data yang sama, dikarenakan setiap unit pemroses memiliki unit
pengendali yang berbeda.
4 4. Komputer
MIMD (Multiple Instruction stream-Multiple Data stream)
Pada sistem komputer MIMD murni
terdapat interaksi di antara pemroses. Hal ini disebabkan seluruh aliran dari
dan ke memori berasal dari space data yang sama bagi semua pemroses.
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. Thread
memungkinkan program untuk mengetahui user sedang masuk didalam 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.
Terdapat 2 buah teknik pada
thread, yaitu :
1 1. 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. Sistem operasi
menempatkan satu thread pada prosesor dan menukarnya dengan thread lain yang
hendak menggunakan prosesor itu.
2 2. 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.
Pengantar Massage Passing, OpenMP
Massage 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 :
Banyak contoh dari paradigma
sekuensial dipertimbangkan bersama-sama.
Programmer membayangkan beberapa
prosesor, masing-masing dengan memori, dan menulis sebuah program untuk
berjalan pada setiap prosesor.
Proses berkomunikasi dengan
mengirimkan pesan satu sama lain.
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. OpenMP dikelola oleh nirlaba
teknologi konsorsium OpenMP Arsitektur Review Board (ARB atau OpenMP),
bersama-sama didefinisikan oleh sekelompok perangkat keras komputer utama dan
vendor perangkat lunak, termasuk AMD , IBM , Intel , Cray , HP , Fujitsu ,
Nvidia , NEC , Microsoft , Texas Instruments , Oracle Corporation , dan banyak
lagi.
PengantarPemrograman CUDA GPU
CUDA (Compute Unified Device
Architecture) merupakan suatu framework dari bahasa pemrograman yang mendukung
bahas C , 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.
GPU (Graphics Processing Unit)
merupakan prosesor yang didedikasikan untuk render cepat dalam pemrosesan
polygon baik itu texturing dan shading. Terdiri atas banyak core namun masih
menggunakan arsitektur yang sederhana, sehingga harganya relative murah dan di
produksi secara masal untuk berbagai keperluan misalnya peneilitian/ilmuah.
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). CUDA juga telah digunakan untuk mempercepat aplikasi non-grafis dalam biologi
komputasi , kriptografi dan bidang lainnya oleh urutan besarnya atau lebih.
Referensi
0 komentar:
Silakan Bekomentar.!!!
Semakin banyak berkomentar, semakin banyak backlink, semakin cinta Search Engine terhadap blog anda
:7: :8: :9: :10: :11: :12:
Posting Komentar