Pengertian Parallel Computing
Parallel Computing merupakan suatu metode komputasi
yang prosesnya membutuhkan beberapa komputer secara bersamaan untuk mendapatkan
suatu informasi, biasanya hal tersebut terjadi dalam bidang misalnya keuangan,
teknik informasi, atau hal-hal yang membutuhkan kapasitas besar baik dalam
proses maupun komputasi yang banyak.
Untuk melakukan komputasi jenis parallel ini
diperlukannya suatu infrastruktur yang terdiri dari beberapa komputer yang
terhubung satu sama lainnya melalui jaringan secara parallel demi mendapatkan
suatu informasi atau menyelesaikan suatu pekerjaan, hal ini bisa disebut
sebagai sistem terdistribusi. Maka dari itu diperlukan suatu software guna
mendukung dalam kegiatan parallel computing ini, perlu adanya middleware yang
dimaksudkan sebagai pengatur distribusi pekerjaan antar node dalam satu
paralel.
Namun, untuk merealisasikan parallel computing ini
harus dibuatkannya pemrograman paralel terlebih dahulu, karena hal tersebut
tidak bisa dilakukan secara otomatis. Adapun tujuan utama dari komputasi
paralel itu sendiri yaitu untuk meningkatkan suatu performa komputasi yang
dilakukan oleh banyak komputer.
Semakin banyak jumlah komputer yang dipakai dalam
parallel computing, maka akan semakin cepat suatu pekerjaan dapat diselesaikan.
Hal itu terjadi karena secara penjabaran bila suatu pekerjaan diselesaikan oleh
banyak orang, maka akan semakin cepat pula pekerjaan tersebut selesai,
begitupun sebaliknya.
Yang perlu diketahui adalah bahwa Parallel computing
jelas berbeda dengan multitasking, hal ini karena arti dari multitasking
sendiri adalah beberapan pekerjaan dapat dilakukan dalam satu waktu, tetapi
arti dari parallel computing adalah suatu pekerjaan dapat dikerjakan oleh
beberapa komputer yang saling terhubung dengan jaringan. Ada 2 teknik beberbeda
yang digunakan untuk mengakses data, yaitu shared memory address dan message
passing. Berdasarkan dari cara mengorganisasikan memori tersebut, computer
parallel dibedakan menjadi shared memory parallel machine dan distributed
memory parallel machine.
Adapun
bahasa populer yang dipakai dalam pemrograman parallel, yaitu:
MPI (Message Passing Interface)
MPI merupakan pemrograman berbasis interface yang
memungkinkan seorang terjadinya komunikasi antar komputer pada network dalam
menyelesaikan suatu tugas.
OpenMP (Open Multi-Processing)
OpenMP adalah sebuah pemrograman berbasis interface
yang mendukung multi processing shared memory di suatu pemrograman, pada
dasarnya OpenMP tidak jauh berbeda dengan MPI, namun OpenMP lebih mudah
digunakan.
Dalam pemodelan komputasi, terdapat 4 macam
jenisnya; yaitu SISD (Single Instruction, Single Data), SIMD (Single
Instruction, Multiple Data), MISD (Multiple Instruction, Single Data), dan MIMD
(Multiple Instruction, Multiple Data). Adapun penjabaran secara jelasnya
sebagai berikut:
SISD
: SISD menggunakan 1 prosesor sebagai
model untuk komputasi tunggal. SISD juga satu-satunya yang menggunakan
arsitektur model Von Neumann.
SIMD
: SIMD menggunakan banyak prosesor dengan instruksi yang sama, namun setiap
prosesor mengolah data yang berbeda-beda.
MISD
: MISD menggunakan banyak prosesor dengan setiap prosesor menggunakan instruksi
yang berbeda pula, namun mengolah data yang sama.
MIMD
: MIMD menggunakan banyak prosesor dengan setiap prosesor memiliki instruksi
yang berbeda, dan juga mengolah data yang berbeda pula.
Compute Unified Device Architecture
(CUDA)
CUDA merupakan platform parallel computing dan model
pemrograman yang telah dibuat oleh NVIDIA dan diimplementasikan oleh Graphic
Processing Unit (GPU). CUDA memberikan akses pengembangan untuk kumpulan visual
instruction dan ingatan dari parallel computasional elemen CUDA GPU.
CUDA adalah komputasi paralel Platform dan model
aplikasi pemrograman interface (API) yang dibuat oleh Nvidia. Hal ini
memungkinkan pengembang perangkat lunak dan insinyur perangkat lunak untuk
menggunakan graphics processing unit CUDA-enabled (GPU) untuk tujuan umum
pemrosesan dengan pendekatan yang disebut GPGPU (General-Purpose Graphics
Processing Unit). Platform CUDA adalah lapisan perangkat lunak yang memberikan
akses langsung ke set instruksi virtual GPU dan elemen komputasi paralel, untuk
pelaksanaan penghitungan kernel.
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.
Platform CUDA dapat diakses oleh pengembang
perangkat lunak melalui library CUDA-accelerated , perintah kompiler (seperti
OpenACC ), dan ekstensi untuk bahasa pemrograman standar industri, termasuk C,
C++ dan Fortran . C / C++ programmer menggunakan CUDA C / C + +, yang disusun
dengan "nvcc", NVIDIA LLVM berbasis C / C++ compiler, dan Fortran
programmer dapat menggunakan 'CUDA Fortran', yang disusun dengan PGI CUDA
Fortran compiler dari The Portland Grup. Selain library, arahan compiler, CUDA
C / C++ dan CUDA Fortran, platform CUDA mendukung interface komputasi lainnya,
termasuk Khronos Grup 's OpenCL , Microsoft DirectCompute , dan C++ AMP .
Pemrograman pihak ketiga juga tersedia untuk Python , Perl , Fortran , Java ,
Ruby , Lua , Haskell, Matlab , IDL , dan dukungan asli di Mathematica.
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
:
Comments
Post a Comment