Parallel Computation
Komputasi paralel merupakan salah
satu teknik komputasi, dimana proses komputasinya dilakukan oleh beberapa
resources (komputer) yang independen, secara bersamaan. Komputasi paralel
biasanya diperlukan pada saat terjadinya pengolahan data dalam jumlah besar (di
industri keuangan, bioinformatika, dll) atau dalam memenuhi proses komputasi
yang sangat banyak.
A.
PARALLELISM CONCEPT
Inti dari
Parallelism Concept atau lebih umum disebut dengan Konsep Paralelisme adalah
pemrosesan yang dilakukan secara paralel pada prosesor. Pada prakteknya,
komputasi paralel memanfaatkan beberapa CPU untuk memproses operasi pada
perangkat lunak tertentu.
Contoh : Beberapa perangkat lunak
bekerja sangat lambat ketika ditangani oleh satu CPU karena operasinya yang
rumit atau prosesnya yang banyak. Prosesor dengan satu CPU seperti ini disebut
dengan single-core. Seiring berkembangnya penerapan ilmu paralel, prosesor
modern mulai menerapkan multi-core, dimana sebuah prosesor memiliki lebih dari
satu CPU, sehingga dapat memproses operasi lebih cepat.
B. Distributed
Processing
Merupakan bidang
ilmu komputer yang mempelajari sistem terdistribusi.Sebuah sistem terdistribusi
terdiri dari beberapa komputer otonom yang berkomunikasi melalui jaringan
komputer. Komputer yang saling berinteraksi untuk mencapai tujuan bersama.
Suatu program komputer yang berjalan dalam sistem terdistribusi disebut program
didistribusikan, dan didistribusikan pemrograman adalah proses menulis program
tersebut. Distributed computing juga mengacu pada penggunaan sistem
terdistribusi untuk memecahkan masalah komputasi. Dalam distributed computing,
masalah dibagi menjadi banyak tugas, masing-masing yang diselesaikan oleh satu
komputer.
Contoh : ATM, komputer yang dirancang
untuk tugas-tugas melaksanakan proyek, analisis finansial, penjadwalan waktu
dan akuntansi. Contoh lainnya, pengolahan data pada server yahoo yang tersebar
hampir di seluruh dunia secara distribusi, setiap wilayah mempunyai server
masing-masing. Seperti di indonesia mempunyai server tersendiri sehingga
pengolahan data tidak di pusat melainkan di wilayah masing-masing, dll.
C.
ARCHITECTURAL PARALLEL COMPUTER
Arsitektur
komputer paralel ada beberapa versi pengertian. Di sini saya akan menjelaskan
sedikit tentang arsitektur komputer menurut Flynn. Sesuai taksonomi Flynn,
seorang Designer Processor, Organisasi Prosesor dibagi menjadi 4 :
SISD : Single
Instruction – Single Data. Komputer ini memiliki hanya satu prosesor dan satu
instruksi yang dieksekusi secara serial.
SIMD : 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. Komputer vektor adalah salah satu komputer paralel yang
menggunakan arsitektur ini.
MISD : Multiple
Instructions – Single Data. Teorinya komputer ini memiliki satu prosesor dan
mengeksekusi beberapa instruksi secara paralel. Sampai saat ini belum ada
komputer yang menggunakan model MISD karena sistemnya tidak mudah.
MIMD : 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.
D. PENGANTAR
THREAD PROGRAMMING
Sebuah thread di
dalam pemrograman komputer adalah sebuah informasi terkait tentang penggunaan
sebuah program tunggal yang dapat menangani beberapa pengguna secara
bersamaan.Thread ini memungkinkan program untuk mengetahui bagaimana user masuk
ke dalam program secara bergantian dan user akan masuk kembali menggunakan user
yang berbeda. Multiple thread dapat berjalan bersamaan dengan proses lainnya
membagi sumberdaya menjadi memori, disaat proses lain tidak membaginya.
Contoh : Program komputer untuk
komputer sekuensial harus menyediakan sederetan operasi untuk dikerjakan oleh
prosesor tunggal. Program komputer untuk komputer paralel harus menyediakan
sederetan operasi untuk beberapa prosesor untuk dikerjakan secara paralel,
termasuk operasi untuk mengatur dan mengitegrasikan prosesor-prosesor yang
terpisah tersebut mengerjakan suatu komputasi yang koheren. Kebutuhan akan
pembuatan dan pengaturan berbagai aktivitas komputasi paralel menambah dimensi
baru proses dari pemrograman komputer.
E. PENGANTAR
MESSAGE PASSING, OPEN MP
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.
OpenMP adalah
Application Programing Interface (API) yang mendukung pemrograman
multiprosesing shared memory dalam bahasa C/C++ dan fortran pada berbagai
arsitektur dan sistem operasi diantaranya: Solaris, AIX, HP-UX,GNU/Linux, Mac
OS X, dan Windows.
Contoh : 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.
F. PENGANTAR
CUDA 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 missal untuk berbagai keperluan misalnya
peneilitian/ilmuah.
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.
CUDA merupakan produk dari NVIDIA sebagai produsen graphic komputer ternama.
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.
Daftar Pustaka :