DISTRIBUSI
PROCESSING
Definisi umum
dari pemrosesan terdistribusi merupakan cara untuk mempercepat pengolahan data
atau informasi dengan mendistribusikan pekerjaan atau intruksi ke banyak komputer
yang telah dipilih untuk memberi kekuatan pemrosesan yang lebih cepat. Tujuan
dari komputasi terdistribusi adalah menyatukan kemampuan dari sumber daya
(sumber komputasi atau sumber informasi) yang terpisah secara fisik, ke dalam
suatu sistem gabungan yang terkoordinasi dengan kapasitas yang jauh melebihi
dari kapasitas individual komponen-komponennya.
Tujuan lain yang
ingin dicapai dalam komputasi terdistribusi adalah transparansi. Kenyataan
bahwa sumber daya yang dipakai oleh pengguna sistem terdistribusi berada pada
lokasi fisik yang terpisah, tidak perlu diketahui oleh pengguna tersebut.
Transparansi ini memungkinkan pengguna sistem terdistribusi untuk melihat
sumber daya yang terpisah tersebut seolah-olah sebagai satu sistem komputer
tunggal, seperti yang biasa digunakannya. Dalam prosesnya setiap komputer
berinteraksi satu sama lain untuk mencapai tujuan bersama.
ARSITEKTUR
KOMPUTER PARALEL
Karakteristik
umum dari architectural parallel komputer adalah sebagai berikut:
§
Pertama
dalam hal pembagian memori pada komputer parallel yang sangat bervariasi, namun
pada umumnya memiliki kesamaan kemampuan untuk semua prosesor dalam mengakses
semua memori sebagai ruang alamat global.
§
Kedua
beberapa prosesor dapat beroperasi secara independen akan tetapi harus didukung
oleh berbagai sumber daya memori yang sama.
§
Ketiga
yaitu karakteristik yang terletak pada perubahan lokasi memori yang dipengaruhi
oleh satu prosesor yang terlihat oleh proses – prosesor lainnya.
§
Keempat,
karakteristiknya terlihat pada mesin memori bersama dapat dibagi menjadi dua
kelas utama berdasarkan waktu akses memori: UMA dan NUMA.
Sesuai taksonomi
Flynn, seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
v
SISD
(Single Instruction Single Data Stream)
v
Single
Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu
instruksi yang dieksekusi secara serial. Komputer ini adalah tipe komputer
konvensional. Menurut mereka tipe komputer ini tidak ada dalam praktik komputer
paralel karena bahkan mainframe pun tidak lagi menggunakan satu prosesor.
v
SIMD
(Single Instruction Multiple Data Stream). Single Instruction – Multiple Data.
Komputer ini memiliki lebih dari satu prosesor, tetapi hanya mengeksekusi satu
instruksi secara paralel pada data yang berbeda pada level lock-step.
v
MISD
(Multiple Instruction Single Data Stream). Multiple Instructions – Single Data.
Teorinya komputer ini memiliki satu prosesor dan mengeksekusi beberapa
instruksi secara paralel tetapi praktiknya tidak ada komputer yang dibangun
dengan arsitektur ini karena sistemnya tidak mudah dipahami.
v
MIMD
(Multiple Instruction Multiple Data Stream). Multiple Instructions – Multiple
Data. Komputer ini memiliki lebih dari satu prosesor dan mengeksekusi lebih
dari satu instruksi secara paralel. Tipe komputer ini yang paling banyak
digunakan untuk membangun komputer paralel, bahkan banyak supercomputer yang
menerapkan arsitektur ini.
THREAD
PROGRAMMING
Secara umum
model pemrograman ini adalah jenis pemrograman memori yang digunakan secara
bersamaan. Dalam Thread Programming Paralel, sebuah proses tunggal dapat
memiliki beberapa jalur eksekusi yang konkuren. Implementasi thread bukanlah
hal baru dalam teknik komputasi, Secara historis, perusahaan hardware menerapkan
thread versi mereka sendiri. Implementasi tersebut berada secara substansial
dari satu sama lain sehingga sulit bagi programmer untuk mengembangkan aplikasi
yang thread portabel.
MESSAGING
PASSING, OPEN MP
Jenis model ini
menunjukkan karakteristik sebagai berikut:
§
Tugas
pertukaran data melalui komunikasi dengan mengirim dan menerima pesan.
§
Transfer
data biasanya memerlukan kerjasama operasi yang akan dilakukan oleh
masing-masing proses.
(Open
Multi-Processing) adalah sebuah antarmuka pemrograman aplikasi (API) yang
mendukung multi processing shared memory pemrograman di C, C++ dan Fortran pada
berbagai arsitektur, termasuk UNix dan Microsoft Windows platform. OpenMP
Terdiri dari satu set perintah kompiler, perpustakaan rutinitas, dan variabel
lingkungan yang mempengaruhi run-time. Banyak Aplikasi dibangun dengan model
hibrida pemrograman paralel dapat dijalankan pada komputer cluster dengan
menggunakan OpenMP dan Message Passing Interface (MPI), atau lebih transparan
dengan menggunakan ekstensi OpenMP non-shared memory systems.
PEMROGRAMAN
CUDA (GRAPHICAL PROCESSING UNIT)
Sebagaimana
telah kita ketahui bahwa Cuda adalah platform komputasi paralel dan model
pemrograman yang diciptakan oleh perusahaan perangkat keras dunia yaitu NVIDIA.
hal ini memungkinkan peningkatan dramatis dalam kinerja komputasi dengan
memanfaatkan kekuatan dari Graphics Processing Unit(GPU).
Sebuah GPU
(Graphical Processing Unit) pada awalnya adalah sebuah prosesor yang berfungsi
khusus untuk melakukan rendering pada kartu grafik saja, tetapi seiring dengan
semakin meningkatnya kebutuhan rendering, terutama untuk mendekati waktu proses
yang realtime /sebagaimana kenyataan sesungguhnya, maka meningkat pula
kemampuan prosesor grafik tersebut. akselerasi peningkatan teknologi GPU ini
lebih cepat daripada peningkatan teknologi prosesor sesungguhnya (CPU), dan
pada akhirnya GPU menjadi General Purpose, yang artinya tidak lagi hanya untuk
melakukan rendering saja melainkan bisa untuk proses komputasi secara umum.
Penggunaan Multi
GPU dapat mempercepat waktu proses dalam mengeksekusi program karena
arsitekturnya yang natively parallel. Selain itu Peningkatan performa yang
terjadi tidak hanya berdasarkan kecepatan hardware GPU saja, tetapi faktor yang
lebih penting adalah cara membuat kode program yang benarbenar bisa efektif
berjalan pada Multi GPU.
CUDA merupakan
singkatan dari Compute Unified Device Architecture,didefinisikan sebagai sebuah
arsitektur komputer parallel, dikembangkan oleh Nvidia. Teknologi ini dapat
digunakan untuk menjalankan proses pengolahan gambar, video, rendering 3D, dan
lain sebagainya. VGA – VGA dari Nvidia yang sudah menggunakan teknologi CUDA
antara lain : Nvidia GeForce GTX 280, GTX 260,9800 GX2, 9800 GTX+,9800 GTX,9800
GT,9600 GSO, 9600 GT,9500 GT,9400 GT,9400 mGPU,9300 mGPU,8800 Ultra,8800
GTX,8800 GTS,8800 GT,8800 GS,8600 GTS,8600 GT,8500 GT,8400 GS, 8300 mGPU, 8200
mGPU, 8100 mGPU, dan seri sejenis untuk kelas mobile (VGA notebook).
Singkatnya, CUDA
dapat memberikan proses dengan pendekatan bahasa C, sehingga programmer atau
pengembang software dapat lebih cepat menyelesaikan perhitungan yang komplek.
Bukan hanya aplikasi seperti teknologi ilmu pengetahuan yang spesifik. CUDA
sekarang bisa dimanfaatkan untuk aplikasi multimedia. Misalnya meng-edit
film dan melakukan filter gambar. Sebagai contoh dengan aplikasi multimedia,
sudah mengunakan teknologi CUDA. Software TMPGenc 4.0 misalnya membuat aplikasi
editing dengan mengambil sebagian proces dari GPU dan CPU. VGA yang dapat
memanfaatkan CUDA hanya versi 8000 atau lebih tinggi.
Keuntungan
dengan CUDA sebenarnya tidak luput dari teknologi aplikasi yang ada. CUDA akan
mempercepat proses aplikasi tertentu, tetapi tidak semua aplikasi yang ada akan
lebih cepat walaupun sudah mengunakan fitur CUDA.
Sumber :
http://nazaruddin.blog.unigha.ac.id/2013/08/24/pengertian-komputasi-paralel/
http://seto.citravision.com/berita-48-parallel-computation–architectural-parallel-computer.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://organisasiarsitekturkomputernaro.blogspot.com/
http://luckritzh.blogspot.com/2013/07/parallel-computation.html
https://erarahma.wordpress.com/2015/06/26/distribusi-processing/