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 :
- SISD (Single Instruction Single Data Stream)
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.
- 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.
- 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.
- 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.
REFRENSI :